Ringkasan penyesuaian hyperparameter

Halaman ini menjelaskan konsep yang terlibat dalam penyesuaian hyperparameter, yang merupakan peningkat model otomatis yang disediakan oleh Pelatihan AI Platform. Penyesuaian hyperparameter memanfaatkan infrastruktur pemrosesan Google Cloud untuk menguji berbagai konfigurasi hyperparameter saat melatih model Anda. Penyesuaian ini dapat memberi Anda nilai yang dioptimalkan untuk hyperparameter, yang memaksimalkan akurasi prediktif model Anda.

Apa itu hyperparameter?

Hyperparameter berisi data yang mengatur proses pelatihan itu sendiri.

Aplikasi pelatihan Anda menangani tiga kategori data saat melatih model Anda:

  • Data input Anda (juga disebut data pelatihan) adalah kumpulan data individu (instance) yang berisi fitur yang penting untuk masalah machine learning Anda. Data ini digunakan selama pelatihan untuk mengonfigurasi model Anda agar dapat secara akurat membuat prediksi tentang instance baru dari data serupa. Namun, nilai dalam data input tidak pernah langsung menjadi bagian dari model Anda.

  • Parameter model Anda adalah variabel yang digunakan teknik machine learning pilihan Anda untuk menyesuaikan dengan data Anda. Misalnya, jaringan neural dalam (DNN) terdiri dari node pemrosesan (neuron), masing-masing dengan operasi yang dilakukan pada data saat berpindah melalui jaringan. Saat DNN dilatih, setiap node memiliki nilai bobot yang memberi tahu model Anda seberapa besar dampak model tersebut terhadap prediksi akhir. Bobot tersebut adalah contoh parameter model Anda. Dalam banyak hal, parameter model Anda adalah model—parameter inilah yang membedakan model tertentu dari model lain dengan jenis sama yang bekerja pada data serupa.

  • Hyperparameter Anda adalah variabel yang mengatur proses pelatihan itu sendiri. Misalnya, bagian dari penyiapan jaringan neural dalam adalah menentukan jumlah lapisan node tersembunyi yang akan digunakan antara lapisan input dan lapisan output, serta jumlah node yang harus digunakan oleh setiap lapisan. Variabel ini tidak terkait langsung dengan data pelatihan. Variabel ini adalah variabel konfigurasi. Perlu diperhatikan bahwa parameter berubah selama tugas pelatihan, sementara hyperparameter biasanya konstan selama tugas.

Parameter model dioptimalkan (Anda bisa mengatakan "disesuaikan") oleh proses pelatihan: Anda menjalankan data melalui operasi model, membandingkan prediksi yang dihasilkan dengan nilai aktual untuk setiap instance data, mengevaluasi keakuratannya, dan menyesuaikannya hingga Anda menemukan nilai terbaik. Hyperparameter disesuaikan dengan menjalankan seluruh tugas pelatihan, melihat akurasi agregat, dan menyesuaikannya. Pada kedua kasus tersebut, Anda memodifikasi komposisi model dalam upaya menemukan kombinasi terbaik untuk menangani masalah.

Tanpa teknologi otomatis seperti penyesuaian hyperparameter Pelatihan AI Platform, Anda perlu melakukan penyesuaian manual pada hyperparameter melalui banyak pelatihan untuk mendapatkan nilai yang optimal. Penyesuaian hyperparameter membuat proses penentuan setelan hyperparameter terbaik menjadi lebih mudah dan tidak melelahkan.

Cara kerja penyesuaian hyperparameter

Penyesuaian hyperparameter berfungsi dengan menjalankan beberapa uji coba dalam satu tugas pelatihan. Setiap uji coba merupakan eksekusi menyeluruh dari aplikasi pelatihan Anda dengan nilai untuk hyperparameter yang Anda pilih, yang ditetapkan sesuai batas yang Anda tentukan. Layanan pelatihan AI Platform Training memantau hasil setiap uji coba dan membuat penyesuaian untuk uji coba berikutnya. Saat tugas selesai, Anda dapat mendapatkan ringkasan semua uji coba beserta konfigurasi nilai yang paling efektif sesuai dengan kriteria yang Anda tentukan.

Penyesuaian hyperparameter memerlukan komunikasi eksplisit antara layanan pelatihan Pelatihan AI Platform dan aplikasi pelatihan Anda. Aplikasi pelatihan Anda menentukan semua informasi yang dibutuhkan model Anda. Anda harus menentukan hyperparameter (variabel) yang ingin disesuaikan, dan nilai target untuk setiap hyperparameter.

Untuk mempelajari cara Pelatihan AI Platform menggunakan pengoptimalan Bayesian untuk penyesuaian hyperparameter, baca postingan blog berjudul Hyperparameter Tuning di Cloud Machine Learning Engine menggunakan Bayesian Optimization.

Selain pengoptimalan Bayesian, Pelatihan AI Platform juga dioptimalkan di seluruh tugas penyesuaian hyperparameter. Jika Anda melakukan penyesuaian hyperparameter terhadap model serupa, hanya dengan mengubah fungsi objektif atau menambahkan kolom input baru, Pelatihan AI Platform dapat meningkat seiring waktu dan membuat penyesuaian hyperparameter menjadi lebih efisien.

Hal-hal yang dioptimalkan oleh penyesuaian hyperparameter

Penyesuaian hyperparameter mengoptimalkan variabel target tunggal, yang juga disebut metrik hyperparameter, yang Anda tentukan. Akurasi model, seperti yang dihitung dari tahap evaluasi, adalah metrik yang umum. Metrik harus berupa nilai numerik, dan Anda dapat menentukan apakah ingin menyesuaikan model untuk memaksimalkan atau meminimalkan metrik.

Saat memulai tugas dengan penyesuaian hyperparameter, Anda akan menetapkan nama metrik hyperparameter. Ini adalah nama yang Anda tetapkan ke ringkasan skalar yang Anda tambahkan ke aplikasi pelatihan.

Nama default metrik adalah training/hptuning/metric. Sebaiknya tetapkan nama kustom. Satu-satunya perbedaan fungsional adalah jika Anda menggunakan nama kustom, Anda harus menetapkan nilai hyperparameterMetricTag dalam objek HyperparameterSpec dalam permintaan tugas agar sesuai dengan nama yang Anda pilih.

Cara AI Platform Training mendapatkan metrik Anda

Untuk model TensorFlow, layanan Pelatihan AI Platform memantau peristiwa ringkasan TensorFlow yang dihasilkan oleh aplikasi pelatihan Anda dan mengambil metrik. Jika model Anda dibuat dengan framework lain atau menggunakan container kustom, Anda harus menggunakan paket Python cloudml-hypertune untuk melaporkan metrik pelatihan Anda ke AI Platform Training.

Alur nilai hyperparameter

Tanpa penyesuaian hyperparameter, Anda dapat menetapkan hyperparameter menggunakan alat apa pun sesuai keinginan Anda dalam aplikasi pelatihan Anda. Misalnya, Anda dapat mengonfigurasi hyperparameter dengan meneruskan argumen command line ke modul aplikasi utama, atau menyertakannya ke aplikasi Anda dalam file konfigurasi.

Saat menggunakan penyesuaian hyperparameter, Anda harus menggunakan prosedur berikut untuk menetapkan nilai hyperparameter yang Anda gunakan untuk penyesuaian:

  • Tentukan argumen command line dalam modul pelatihan utama untuk setiap hyperparameter yang disesuaikan.

  • Gunakan nilai yang diteruskan dalam argumen tersebut untuk menetapkan hyperparameter yang sesuai dalam kode TensorFlow aplikasi Anda.

Saat mengonfigurasi tugas pelatihan dengan penyesuaian hyperparameter, Anda menentukan setiap hyperparameter untuk disesuaikan, jenisnya, dan rentang nilai yang akan dicoba. Anda mengidentifikasi setiap hyperparameter menggunakan nama yang sama dengan argumen yang sesuai yang Anda tentukan di modul utama. Layanan pelatihan menyertakan argumen command line menggunakan nama tersebut saat menjalankan aplikasi Anda.

Memilih hyperparameter yang akan disesuaikan

Tidak banyak saran universal yang bisa diberikan tentang cara memilih hyperparameter mana yang harus Anda sesuaikan. Jika Anda sudah berpengalaman dengan teknik machine learning yang digunakan, Anda mungkin memiliki insight tentang perilaku hyperparameternya. Anda juga dapat menemukan saran dari komunitas machine learning.

Apa pun yang Anda pilih, Anda harus memahami implikasinya. Setiap hyperparameter yang Anda pilih untuk disesuaikan memiliki potensi untuk meningkatkan jumlah uji coba yang diperlukan agar tugas penyesuaian berhasil. Saat melatih Pelatihan AI Platform, Anda dikenai biaya untuk durasi tugas; pilihan hyperparameter yang tepat untuk disesuaikan dapat mengurangi waktu dan biaya pelatihan model Anda.

Jenis hyperparameter

Jenis hyperparameter yang didukung tercantum dalam dokumentasi referensi tugas. Pada objek ParameterSpec, Anda menentukan jenis untuk setiap hyperparameter dan rentang nilai terkait seperti yang dijelaskan dalam tabel berikut:

Jenis Rentang nilai Data nilai
DOUBLE minValue & maxValue Nilai floating point
INTEGER minValue & maxValue Nilai bilangan bulat
CATEGORICAL categoricalValues Daftar string kategori
DISCRETE discreteValues Daftar nilai dalam urutan menaik

Penskalaan hyperparameter

Anda dapat menentukan jenis penskalaan yang akan dilakukan pada hyperparameter. Penskalaan direkomendasikan untuk jenis DOUBLE dan INTEGER. Jenis penskalaan yang tersedia adalah:

  • UNIT_LINEAR_SCALE
  • UNIT_LOG_SCALE
  • UNIT_REVERSE_LOG_SCALE

Algoritma penelusuran

Anda dapat menentukan algoritma penelusuran dalam objek HyperparameterSpec. Jika tidak menentukan algoritma, tugas Anda akan menggunakan algoritme AI Platform Training default, yang mendorong penelusuran parameter untuk mendapatkan solusi optimal dengan penelusuran yang lebih efektif di ruang parameter.

Nilai yang tersedia di antaranya:

  • ALGORITHM_UNSPECIFIED: Menghasilkan perilaku yang sama seperti ketika Anda tidak menentukan algoritma penelusuran. Pelatihan AI Platform menggunakan algoritma default, yang menerapkan pengoptimalan Bayesian untuk menelusuri ruang dari kemungkinan nilai hyperparameter, sehingga menghasilkan teknik yang paling efektif untuk kumpulan hyperparameter Anda.

  • GRID_SEARCH: Penelusuran petak sederhana dalam ruang yang dimungkinkan. Opsi ini sangat berguna jika Anda ingin menentukan jumlah uji coba yang lebih banyak daripada jumlah titik dalam ruang yang memungkinkan. Dalam kasus tersebut, jika Anda tidak menentukan penelusuran petak, algoritma default Pelatihan AI Platform dapat menghasilkan saran duplikat. Untuk menggunakan penelusuran petak, semua parameter harus berjenis INTEGER, CATEGORICAL, atau DISCRETE.

  • RANDOM_SEARCH: Penelusuran acak sederhana dalam ruang yang dimungkinkan.

Langkah selanjutnya