Ringkasan penyesuaian hyperparameter

Halaman ini menjelaskan konsep yang terlibat dalam penyesuaian hyperparameter, yang merupakan pengoptimal model otomatis yang disediakan oleh AI Platform Training. 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 menyiapkan jaringan saraf dalam adalah menentukan jumlah lapisan node tersembunyi yang digunakan di antara lapisan input dan lapisan output, serta jumlah node yang harus digunakan setiap lapisan. Variabel ini tidak berkaitan langsung dengan data pelatihan. Variabel ini adalah variabel konfigurasi. Perhatikan bahwa parameter berubah selama tugas pelatihan, sedangkan hyperparameter biasanya bersifat 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. Dalam kedua kasus tersebut, Anda memodifikasi komposisi model dalam upaya untuk menemukan kombinasi terbaik untuk menangani masalah.

Tanpa teknologi otomatis seperti penyesuaian hyperparameter Pelatihan AI Platform, Anda perlu melakukan penyesuaian manual terhadap hyperparameter selama berbagai pelatihan yang dijalankan 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 adalah eksekusi lengkap aplikasi pelatihan Anda dengan nilai untuk hyperparameter yang dipilih, yang ditetapkan dalam batas yang Anda tentukan. Layanan pelatihan AI Platform Training melacak hasil dari setiap uji coba dan melakukan 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 AI Platform Training dan aplikasi pelatihan Anda. Aplikasi pelatihan Anda menentukan semua informasi yang dibutuhkan model Anda. Anda harus menentukan hyperparameter (variabel) yang ingin Anda sesuaikan, dan nilai target untuk setiap hyperparameter.

Untuk mempelajari cara AI Platform Training menggunakan pengoptimalan Bayesian untuk penyesuaian hyperparameter, baca postingan blog berjudul Penyesuaian Hyperparameter di Cloud Machine Learning Engine menggunakan Pengoptimalan Bayesian.

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

Hal-hal yang dioptimalkan oleh penyesuaian hyperparameter

Penyesuaian hyperparameter mengoptimalkan satu variabel target, 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 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 menggunakan nama kustom, Anda harus menetapkan nilai hyperparameterMetricTag dalam objek HyperparameterSpec dalam permintaan tugas agar cocok dengan nama yang Anda pilih.

Cara Pelatihan AI Platform mendapatkan metrik Anda

Untuk model TensorFlow, layanan AI Platform Training memantau peristiwa ringkasan TensorFlow yang dihasilkan oleh aplikasi pelatihan Anda dan mengambil metrik. Jika model Anda dibuat dengan framework lain atau menggunakan penampung kustom, Anda harus menggunakan paket Python cloudml-hypertune untuk melaporkan metrik pelatihan 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 yang akan disesuaikan, jenisnya, dan rentang nilai yang akan dicoba. Anda mengidentifikasi setiap hyperparameter menggunakan nama yang sama dengan nama argumen yang sesuai yang Anda tentukan dalam modul utama. Layanan pelatihan menyertakan argumen command line menggunakan nama tersebut saat menjalankan aplikasi Anda.

Memilih hyperparameter yang akan disesuaikan

Ada sangat sedikit saran universal yang dapat diberikan terkait 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 Anda melatih di AI Platform Training, Anda akan dikenakan biaya selama tugas berlangsung; pemilihan hyperparameter yang cermat untuk disesuaikan dapat mengurangi waktu dan biaya pelatihan model Anda.

Jenis hyperparameter

Jenis hyperparameter yang didukung tercantum dalam dokumentasi referensi tugas. Dalam 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 GANDA dan BILANGAN BULAT. Jenis penskalaan yang tersedia adalah:

  • UNIT_LINEAR_SCALE
  • UNIT_LOG_SCALE
  • UNIT_REVERSE_LOG_SCALE

Algoritma penelusuran

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

Nilai yang tersedia di antaranya:

  • ALGORITHM_UNSPECIFIED: Menghasilkan perilaku yang sama seperti saat Anda tidak menentukan algoritma penelusuran. Pelatihan AI Platform menggunakan algoritma default, yang menerapkan pengoptimalan Bayesian untuk menelusuri ruang 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 dari jumlah titik dalam ruang yang dimungkinkan. Dalam kasus semacam ini, jika Anda tidak menentukan penelusuran petak, algoritma default AI Platform Training 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