Untuk tujuan dokumen ini:
Tujuan akhir dari pengembangan machine learning adalah untuk memaksimalkan kegunaan model yang di-deploy.
Biasanya, Anda dapat menggunakan langkah dan prinsip dasar yang sama di bagian ini tentang masalah ML apa pun.
Bagian ini membuat asumsi berikut:
- Anda sudah memiliki pipeline pelatihan yang berjalan penuh beserta konfigurasi yang mendapatkan hasil yang wajar.
- Anda memiliki sumber daya komputasi yang cukup untuk melakukan eksperimen penyesuaian yang bermakna dan untuk menjalankan minimal beberapa tugas pelatihan secara paralel.
Strategi penyesuaian inkremental
Rekomendasi: Mulai dengan konfigurasi sederhana. Kemudian, lakukan peningkatan secara bertahap sambil mengumpulkan insight tentang masalah tersebut. Pastikan bahwa peningkatan apa pun didasarkan pada bukti kuat.
Kami berasumsi bahwa sasaran Anda adalah menemukan konfigurasi yang memaksimalkan performa model Anda. Terkadang, sasaran Anda adalah memaksimalkan peningkatan model pada batas waktu yang tetap. Dalam kasus lain, Anda dapat terus meningkatkan kualitas model tanpa batas; misalnya, terus meningkatkan kualitas model yang digunakan dalam produksi.
Pada prinsipnya, Anda dapat memaksimalkan performa menggunakan algoritme untuk otomatis menelusuri seluruh ruang konfigurasi yang memungkinkan, tetapi ini bukanlah opsi yang praktis. Ruang konfigurasi yang memungkinkan sangat besar dan belum ada algoritme yang cukup canggih untuk menelusuri ruang ini secara efisien tanpa panduan manusia. Sebagian besar algoritme penelusuran otomatis mengandalkan ruang penelusuran yang dirancang secara manual yang menentukan serangkaian konfigurasi yang akan digunakan untuk penelusuran, dan ruang penelusuran ini dapat sedikit penting.
Cara paling efektif untuk memaksimalkan performa adalah memulai dengan konfigurasi sederhana dan menambahkan fitur secara bertahap serta melakukan peningkatan sambil membuat insight tentang masalah tersebut.
Sebaiknya gunakan algoritme penelusuran otomatis di setiap tahap penyesuaian dan terus perbarui ruang penelusuran seiring meningkatnya pemahaman Anda. Saat menjelajahinya, Anda secara alami akan menemukan konfigurasi yang lebih baik dan lebih baik, sehingga model "terbaik" akan terus ditingkatkan.
Istilah "peluncuran" mengacu pada update untuk konfigurasi terbaik kami (yang mungkin sesuai atau tidak sesuai dengan peluncuran model produksi yang sebenarnya). Untuk setiap "peluncuran", Anda harus memastikan bahwa perubahan didasarkan pada bukti yang kuat—bukan hanya peluang acak berdasarkan konfigurasi keberuntungan—sehingga Anda tidak menambahkan kompleksitas yang tidak perlu pada pipeline pelatihan.
Pada level tinggi, strategi penyesuaian inkremental kami melibatkan pengulangan empat langkah berikut:
- Pilih sasaran untuk putaran eksperimen berikutnya. Pastikan sasaran dicakup dengan tepat.
- Desain putaran eksperimen berikutnya. Rancang dan jalankan serangkaian eksperimen yang akan mencapai sasaran ini.
- Belajar dari hasil eksperimental. Mengevaluasi eksperimen terhadap checklist.
- Tentukan apakah Anda akan mengadopsi perubahan kandidat.
Bagian selanjutnya menjelaskan strategi ini.
Pilih sasaran untuk putaran eksperimen berikutnya
Jika Anda mencoba menambahkan beberapa fitur atau menjawab beberapa pertanyaan sekaligus, Anda mungkin tidak dapat menghilangkan efek terpisah pada hasilnya. Contoh sasaran mencakup:
- Coba potensi peningkatan untuk pipeline (misalnya, regularisasi baru, pilihan pra-pemrosesan, dll.).
- Memahami dampak hyperparameter model tertentu (misalnya, fungsi aktivasi)
- Minimalkan error validasi.
Memprioritaskan progres jangka panjang daripada peningkatan error validasi jangka pendek
Ringkasan: Sering kali, sasaran utama Anda adalah mendapatkan insight tentang masalah penyesuaian.
Sebaiknya Anda meluangkan sebagian besar waktu untuk memperoleh insight tentang masalah tersebut dan secara relatif relatif sedikit berfokus untuk memaksimalkan performa pada set validasi. Dengan kata lain, sebagian besar waktu Anda untuk "eksplorasi" dan hanya sedikit untuk "eksploitasi". Memahami masalah sangatlah penting untuk memaksimalkan performa akhir. Memprioritaskan insight daripada keuntungan jangka pendek akan membantu:
- Hindari meluncurkan perubahan tidak perlu yang kebetulan ada dalam aktivitas yang berperforma baik hanya melalui kecelakaan historis.
- Mengidentifikasi hyperparameter mana yang paling sensitif terhadap error validasi, Hyperparameter mana yang paling banyak mengalami interaksi, sehingga perlu disesuaikan kembali, dan hyperparameter mana yang relatif tidak sensitif terhadap perubahan lainnya sehingga dapat diperbaiki dalam eksperimen mendatang.
- Menyarankan potensi fitur baru untuk dicoba, seperti regularisasi baru jika overover menjadi masalah.
- Mengidentifikasi fitur yang tidak membantu sehingga dapat dihapus, sehingga mengurangi kompleksitas eksperimen di masa mendatang.
- Mengenali saat peningkatan dari penyesuaian hyperparameter kemungkinan sudah jenuh.
- Mempersempit ruang penelusuran di sekitar nilai optimal untuk meningkatkan efisiensi penyesuaian.
Pada akhirnya, Anda akan memahami masalahnya. Kemudian, Anda dapat berfokus hanya pada error validasi meskipun eksperimen tidak sepenuhnya informatif tentang struktur masalah penyesuaian.
Mendesain putaran eksperimen berikutnya
Ringkasan: Identifikasi hyperparameter mana yang bersifat ilmiah, mengganggu, dan hyperparameter yang tetap untuk sasaran eksperimental. Buat urutan studi untuk membandingkan berbagai nilai hyperparameter ilmiah sekaligus mengoptimalkan hyperparameter yang mengganggu. Pilih ruang penelusuran Hyperparameter yang mengganggu untuk menyeimbangkan biaya resource dengan nilai ilmiah.
Identifikasi ilmiah, gangguan, dan hyperparameter yang tetap
Untuk sasaran tertentu, semua hyperparameter termasuk dalam salah satu kategori berikut:
- hiperparameter ilmiah adalah hyperparameter yang pengaruhnya pada performa model adalah hal yang Anda coba ukur.
- Hyperparameter yang mengganggu adalah parameter yang perlu dioptimalkan untuk membandingkan nilai yang berbeda dari hyperparameter ilmiah. Hyperparameter gangguan mirip dengan parameter gangguan dalam statistik.
- hyperparameter tetap memiliki nilai konstan dalam putaran eksperimen saat ini. Nilai hyperparameter yang tetap tidak akan berubah saat Anda membandingkan nilai yang berbeda dari hyperparameter ilmiah. Dengan memperbaiki hyperparameter tertentu untuk serangkaian eksperimen, Anda harus menerima bahwa kesimpulan yang berasal dari eksperimen mungkin tidak valid untuk setelan lain dari hyperparameter yang telah diperbaiki. Dengan kata lain, hyperparameter yang telah diperbaiki membuat peringatan untuk kesimpulan yang Anda ambil dari eksperimen.
Misalnya, sasaran Anda adalah sebagai berikut:
Menentukan apakah model dengan lebih banyak lapisan tersembunyi memiliki error validasi yang lebih rendah.
Dalam hal ini:
- Kecepatan pembelajaran adalah hyperparameter yang mengganggu karena Anda hanya dapat membandingkan model dengan jumlah lapisan tersembunyi yang berbeda jika kecepatan pembelajaran disetel secara terpisah untuk setiap jumlah lapisan tersembunyi. (Kecepatan pembelajaran yang optimal umumnya bergantung pada arsitektur model).
- Fungsi aktivasi dapat berupa hyperparameter yang tetap jika Anda telah menentukan dalam eksperimen sebelumnya bahwa fungsi aktivasi yang terbaik tidak sensitif terhadap kedalaman model. Atau, Anda bersedia membatasi kesimpulan tentang jumlah lapisan tersembunyi untuk mencakup fungsi aktivasi ini. Atau, ini dapat menjadi hyperparameter yang mengganggu jika Anda siap untuk menyesuaikannya secara terpisah untuk setiap jumlah lapisan tersembunyi.
Hyperparameter tertentu dapat berupa hyperparameter ilmiah, Hyperparameter yang mengganggu, atau hyperparameter yang tetap; Perubahan parameter hiperparameter bergantung pada sasaran eksperimental. Misalnya, fungsi aktivasi dapat berupa salah satu dari berikut:
- Hyperparameter ilmiah: Apakah LULU atau tanh adalah pilihan yang lebih baik untuk masalah kita?
- Hyperparameter derau: Apakah model lima lapis terbaik lebih baik daripada model enam lapis terbaik jika Anda mengizinkan beberapa fungsi aktivasi yang berbeda?
- Memperbaiki hyperparameter: Untuk jaringan Net, apakah menambahkan normalisasi batch di posisi tertentu akan membantu?
Saat mendesain putaran baru eksperimen:
- Identifikasi hyperparameter ilmiah untuk sasaran eksperimental. (Pada tahap ini, Anda dapat menganggap semua hyperparameter lainnya sebagai hyperparameter yang mengganggu.)
- Konversikan beberapa hyperparameter yang mengganggu menjadi hyperparameter yang tetap.
Dengan resource tanpa batas, Anda akan membiarkan semua hyperparameter non-ilmiah sebagai hyperparameter yang mengganggu sehingga kesimpulan yang Anda ambil dari eksperimen bebas dari peringatan tentang nilai hyperparameter yang tetap. Namun, semakin banyak gangguan hyperparameter yang Anda coba sesuaikan, semakin besar risiko Anda gagal menyesuaikannya dengan cukup baik untuk setiap setelan hyperparameter ilmiah dan akhirnya akan mencapai kesimpulan yang salah dari eksperimen. Seperti yang dijelaskan di bagian selanjutnya, Anda dapat mengatasi risiko ini dengan meningkatkan anggaran komputasi. Namun, anggaran resource maksimum Anda sering kali kurang dari yang dibutuhkan untuk menyesuaikan semua hyperparameter yang tidak ilmiah.
Sebaiknya konversikan hyperparameter yang mengganggu ke dalam hyperparameter yang bersifat tetap saat peringatan yang diperkenalkan dengan memperbaikinya tidak terlalu membebani biaya daripada menyertakannya sebagai hyperparameter yang mengganggu. Makin banyak hyperparameter yang mengganggu akan berinteraksi dengan hyperparameter sains, makin banyak kerugian untuk memperbaiki nilainya. Misalnya, nilai terbaik dari kekuatan peluruhan berat biasanya bergantung pada ukuran model, jadi membandingkan berbagai ukuran model dengan asumsi satu nilai spesifik peluruhan berat tidak akan memberikan insight.
Beberapa parameter pengoptimal
Prinsipnya adalah beberapa hyperparameter pengoptimal (misalnya, kecepatan pembelajaran, momentum, parameter jadwal kecepatan pembelajaran, beta Beta, dll.) adalah hyperparameter yang mengganggu karena cenderung paling sering berinteraksi dengan perubahan lain. Hyperparameter pengoptimal ini jarang merupakan hyperparameter ilmiah karena sasaran seperti "berapa kecepatan pembelajaran terbaik untuk pipeline saat ini?" tidak memberikan banyak insight. Lagi pula, setelan terbaik dapat berubah dengan perubahan pipeline berikutnya.
Terkadang, Anda dapat memperbaiki beberapa hyperparameter pengoptimal karena keterbatasan resource, atau bukti yang sangat kuat bahwa parameter tersebut tidak berinteraksi dengan parameter ilmiah. Namun, umumnya Anda harus berasumsi bahwa Anda harus menyesuaikan hyperparameter pengoptimal secara terpisah untuk membuat perbandingan yang adil antara setelan yang berbeda dari hyperparameter ilmiah, sehingga tidak boleh diperbaiki. Selain itu, tidak ada alasan prioritas lebih memilih satu nilai hyperparameter pengoptimal daripada nilai lain; misalnya, nilai hyperparameter pengoptimal biasanya tidak memengaruhi biaya komputasi penerusan atau gradien penerusan dengan cara apa pun.
Pilihan pengoptimal
Pilihan pengoptimal biasanya berupa:
- hyperparameter ilmiah
- hyperparameter yang tetap
Pengoptimal adalah hyperparameter ilmiah jika sasaran eksperimental Anda berupa perbandingan yang adil antara dua pengoptimal yang berbeda atau lebih. Contoh:
Tentukan pengoptimal mana yang menghasilkan error validasi terendah dalam jumlah langkah tertentu.
Atau, Anda dapat membuat pengoptimal menjadi hyperparameter yang tetap karena berbagai alasan, termasuk:
- Eksperimen sebelumnya menunjukkan bahwa pengoptimal terbaik untuk masalah penyelarasan tidak sensitif terhadap hyperparameter ilmiah saat ini.
- Anda lebih memilih untuk membandingkan nilai hyperparameter ilmiah menggunakan pengoptimal ini karena kurva pelatihannya lebih mudah untuk dipahami.
- Anda lebih memilih menggunakan pengoptimal ini karena menggunakan lebih sedikit memori daripada alternatif.
Hyperparameter Regularisasi
Hyperparameter yang diperkenalkan oleh teknik regularisasi biasanya merupakan hyperparameter yang mengganggu. Namun, pilihan untuk menyertakan teknik regularisasi atau tidak sama sekali adalah hiperparameter ilmiah atau tetap.
Misalnya, regularisasi dengan dropout menambah kompleksitas kode. Oleh karena itu, saat memutuskan apakah akan menyertakan regularisasi dropout, Anda dapat membuat "tidak ada dropout" vs "dropout" sebagai hyperparameter ilmiah, tetapi rasio drop-out merupakan hyperparameter yang mengganggu. Jika Anda memutuskan untuk menambahkan regularisasi drop-out ke pipeline berdasarkan eksperimen ini, rasio drop-out akan menjadi hyperparameter yang mengganggu dalam eksperimen mendatang.
Hyperparameter arsitektur
Hyperparameter arsitektur sering kali merupakan hyperparameter ilmiah atau tetap karena perubahan arsitektur dapat memengaruhi biaya penayangan dan pelatihan, latensi, serta persyaratan memori. Misalnya, jumlah lapisan biasanya merupakan hiperparameter ilmiah atau tetap karena cenderung memiliki konsekuensi dramatis untuk kecepatan pelatihan dan penggunaan memori.
Dependensi pada hyperparameter ilmiah
Dalam beberapa kasus, kumpulan gangguan dan hyperparameter yang tetap bergantung pada nilai hyperparameter ilmiah. Misalnya, Anda mencoba menentukan pengoptimal mana dalam momentum Nesterov dan Adam menghasilkan error validasi terendah. Dalam hal ini:
- Hyperparameter ilmiah adalah pengoptimal, yang memerlukan nilai
{"Nesterov_momentum", "Adam"}
- Nilai
optimizer="Nesterov_momentum"
memperkenalkan hyperparameter{learning_rate, momentum}
, yang mungkin berupa parameter hyperparameter atau gangguan. - Nilai
optimizer="Adam"
memperkenalkan hyperparameter{learning_rate, beta1, beta2, epsilon}
, yang mungkin berupa hyperparameter atau hyperparameter yang telah diperbaiki.
Hyperparameter yang hanya ada untuk nilai tertentu dari hiperparameter ilmiah disebut Hyperparameter bersyarat.
Jangan berasumsi bahwa dua parameter value kondisional sama karena keduanya memiliki nama yang sama. Dalam contoh sebelumnya, hyperparameter bersyarat yang disebut learning_rate
adalah hyperparameter yang berbeda untuk optimizer="Nesterov_momentum"
daripada optimizer="Adam"
. Perannya mirip (meskipun tidak identik) dalam dua algoritme, tetapi rentang nilai yang berfungsi dengan baik di setiap pengoptimal biasanya berbeda berdasarkan beberapa urutan besaran.
Buat serangkaian studi
Setelah mengidentifikasi hyperparameter ilmiah dan mengganggu, Anda harus mendesain studi atau urutan studi untuk membuat kemajuan menuju sasaran eksperimental. Studi menentukan sekumpulan konfigurasi hyperparameter yang akan dijalankan untuk analisis berikutnya. Setiap konfigurasi disebut uji coba. Membuat studi biasanya melibatkan pemilihan hal berikut:
- Hyperparameter yang bervariasi di seluruh uji coba.
- Nilai yang dapat diberikan oleh hyperparameter (ruang penelusuran).
- Jumlah uji coba.
- Algoritme penelusuran otomatis untuk mengambil sampel uji coba dari ruang penelusuran.
Atau, Anda dapat membuat studi dengan menentukan kumpulan konfigurasi hyperparameter secara manual.
Tujuan studi ini adalah untuk secara bersamaan:
- Jalankan pipeline dengan berbagai nilai hyperparameter ilmiah.
- "Mengoptimalkan" (atau "mengoptimalkan") hyperparameter yang mengganggu sehingga perbandingan antara nilai yang berbeda dari hyperparameter ilmiah sebisa mungkin.
Dalam kasus yang paling sederhana, Anda akan membuat studi terpisah untuk setiap konfigurasi parameter ilmiah, dengan setiap studi menyesuaikan dengan hyperparameter yang mengganggu. Misalnya, jika sasaran Anda adalah memilih pengoptimal terbaik dari momentum Nesterov dan Adam, Anda dapat membuat dua studi:
- Sebuah studi yang menggunakan
optimizer="Nesterov_momentum"
dan hyperparameter yang mengganggu adalah{learning_rate, momentum}
- Studi lain yang menggunakan
optimizer="Adam"
dan hyperparameter yang mengganggu adalah{learning_rate, beta1, beta2, epsilon}
.
Anda akan membandingkan kedua pengoptimal dengan memilih uji coba berperforma terbaik dari setiap studi.
Anda dapat menggunakan algoritme pengoptimalan bebas gradien, termasuk metode seperti pengoptimalan Bayes atau algoritme evolusi, untuk mengoptimalkan Hyperparameter yang mengganggu. Namun, kami lebih memilih menggunakan penelusuran kuasi-acak pada fase eksplorasi karena berbagai keuntungan yang dimilikinya dalam setelan ini. Setelah eksplorasi berakhir, sebaiknya gunakan software pengoptimalan Bayes canggih (jika tersedia).
Pertimbangkan kasus yang lebih rumit saat Anda ingin membandingkan sejumlah besar nilai hyperparameter ilmiah, tetapi tidak praktis untuk membuat sebanyak mungkin studi independen tersebut. Dalam kasus ini, Anda dapat melakukan hal berikut:
- Sertakan parameter ilmiah di ruang penelusuran yang sama dengan hyperparameter yang mengganggu.
- Gunakan algoritme penelusuran untuk mengambil sampel nilai dari hyperparameter ilmiah dan gangguan dalam sebuah studi.
Saat melakukan pendekatan ini, hyperparameter bersyarat dapat menyebabkan masalah. Lagi pula, sulit untuk menentukan ruang penelusuran kecuali sekumpulan hyperparameter yang mengganggu sama untuk semua nilai hyperparameter ilmiah. Dalam hal ini, preferensi kami untuk menggunakan penelusuran kuasi-acak daripada alat pengoptimalan kotak hitam yang lebih rumit bahkan lebih kuat, karena menjamin nilai yang berbeda dari hyperparameter ilmiah akan diambil sampelnya secara seragam. Apa pun algoritme penelusuran, pastikan algoritme tersebut menelusuri parameter ilmiah secara seragam.
Menyeimbangkan antara eksperimen yang informatif dan terjangkau
Saat mendesain studi atau urutan studi, alokasikan anggaran yang terbatas untuk mencapai tiga sasaran berikut:
- Membandingkan nilai yang berbeda dari hyperparameter ilmiah.
- Menyesuaikan hyperparameter yang mengganggu pada ruang penelusuran yang cukup besar.
- Mengambil sampel ruang penelusuran dari hyperparameter yang mengganggu cukup padat.
Semakin baik Anda dapat mencapai tiga sasaran ini, semakin banyak insight yang dapat Anda dapatkan dari eksperimen. Membandingkan sebanyak mungkin nilai hyperparameter ilmiah akan memperluas cakupan insight yang Anda dapatkan dari eksperimen.
Menyertakan sebanyak mungkin hyperparameter yang mengganggu dan mengizinkan setiap hyperparameter yang mengganggu bervariasi dalam rentang yang luas akan meningkatkan keyakinan bahwa ada nilai "baik" dari hyperparameter yang mengganggu tersebut yang ada di ruang penelusuran untuk setiap konfigurasi hyperparameter ilmiah. Jika tidak, Anda mungkin membuat perbandingan yang tidak adil antara nilai hyperparameter ilmiah dengan tidak menelusuri kemungkinan wilayah ruang hyperparameter yang mengganggu, di mana nilai yang lebih baik mungkin terletak pada beberapa nilai parameter ilmiah.
Contoh ruang penelusuran hyperparameter yang mengganggu sepadat mungkin. Tindakan ini akan meningkatkan keyakinan bahwa prosedur penelusuran akan menemukan setelan yang baik untuk hyperparameter yang mengganggu yang kebetulan ada di ruang penelusuran Anda. Jika tidak, Anda mungkin membuat perbandingan yang tidak adil antara nilai parameter ilmiah karena beberapa nilai lebih beruntung dengan pengambilan sampel hyperparameter yang mengganggu.
Sayangnya, peningkatan pada salah satu dari tiga dimensi ini memerlukan salah satu hal berikut:
- Meningkatkan jumlah uji coba, sehingga meningkatkan biaya resource.
- Menemukan cara untuk menyimpan resource di salah satu dimensi lainnya.
Setiap masalah memiliki idiosyncrasies dan batasan komputasinya sendiri, sehingga mengalokasikan resource untuk ketiga sasaran ini membutuhkan beberapa tingkat pengetahuan domain. Setelah menjalankan studi, selalu coba pahami apakah studi tersebut menyesuaikan hyperparameter yang mengganggu dengan cukup baik atau tidak. Artinya, studi ini menelusuri ruang yang cukup besar secara luas untuk membandingkan hiperparameter ilmiah (seperti yang dijelaskan secara lebih mendetail di bagian berikutnya).
Belajar dari hasil eksperimental
Rekomendasi: Selain mencoba mencapai sasaran ilmiah asli dari setiap grup eksperimen, pelajari checklist pertanyaan tambahan. Jika Anda menemukan masalah, revisi lalu jalankan ulang eksperimen.
Pada akhirnya, setiap grup eksperimen memiliki sasaran tertentu. Anda harus mengevaluasi bukti yang diberikan eksperimen terhadap sasaran tersebut. Namun, jika mengajukan pertanyaan yang tepat, sering kali Anda dapat menemukan masalah yang perlu diperbaiki sebelum serangkaian eksperimen tertentu dapat dilanjutkan menuju sasaran aslinya. Jika tidak mengajukan pertanyaan ini, Anda mungkin menarik kesimpulan yang salah.
Karena menjalankan eksperimen bisa mahal, Anda juga harus mengekstrak insight berguna lainnya dari setiap grup eksperimen, meskipun insight ini tidak langsung relevan dengan sasaran saat ini.
Sebelum menganalisis serangkaian eksperimen tertentu untuk membuat progres menuju sasaran awal, tanyakan kepada diri Anda pertanyaan tambahan berikut:
- Apakah ruang penelusuran cukup besar? Jika titik optimal dari studi mendekati batas ruang penelusuran dalam satu atau beberapa dimensi, penelusuran mungkin tidak cukup lebar. Dalam kasus ini, jalankan studi lain dengan ruang penelusuran yang diperluas.
- Sudahkah Anda mengambil sampel poin yang cukup dari ruang penelusuran? Jika tidak, jalankan lebih banyak poin atau kurang ambisius dalam sasaran penyesuaian.
- Berapa bagian dari uji coba dalam setiap studi yang tidak memungkinkan? Artinya, uji coba mana yang berbeda, mendapatkan nilai kerugian yang sangat buruk, atau gagal dijalankan sama sekali karena melanggar beberapa batasan implisit? Jika tidak banyak titik dalam studi tidak memungkinkan, sesuaikan ruang penelusuran untuk menghindari pengambilan sampel titik tersebut, yang terkadang memerlukan parameter ulang ruang penelusuran. Dalam beberapa kasus, sejumlah besar poin yang tidak memungkinkan dapat menunjukkan bug dalam kode pelatihan.
- Apakah model ini menunjukkan masalah pengoptimalan?
- Apa yang dapat Anda pelajari dari kurva pelatihan dari uji coba terbaik? Misalnya, apakah uji coba terbaik memiliki kurva pelatihan yang konsisten dengan overover yang bermasalah?
Jika perlu, berdasarkan jawaban atas pertanyaan sebelumnya, sempurnakan studi atau grup studi terbaru untuk meningkatkan kualitas ruang penelusuran dan/atau mengambil sampel uji coba lainnya, atau melakukan beberapa tindakan korektif lainnya.
Setelah menjawab pertanyaan sebelumnya, Anda dapat mengevaluasi bukti yang diberikan eksperimen terhadap sasaran asli Anda; misalnya, mengevaluasi apakah perubahan berguna.
Mengidentifikasi batas ruang penelusuran yang buruk
Ruang penelusuran mencurigakan jika titik terbaik yang diambil sampelnya mendekati batas. Anda mungkin menemukan titik yang lebih baik jika memperluas rentang penelusuran ke arah tersebut.
Untuk memeriksa batas ruang penelusuran, sebaiknya Anda merencanakan uji coba yang telah selesai dalam plot sumbu sumbu hyperparameter dasar. Dalam hal ini, kami memetakan nilai tujuan validasi versus salah satu hyperparameter (misalnya, kecepatan pembelajaran). Setiap titik pada plot mewakili satu uji coba.
Nilai tujuan validasi untuk setiap uji coba biasanya harus berupa nilai terbaik yang dicapai selama pelatihan.
Gambar 1: Contoh batas ruang penelusuran yang buruk dan batas ruang penelusuran yang dapat diterima.
plot dalam Gambar 1 menunjukkan tingkat error (lebih rendah lebih baik) terhadap kecepatan pembelajaran awal. Jika titik terbaik dikelompokkan ke tepi ruang penelusuran (dalam beberapa dimensi), Anda mungkin perlu memperluas batas ruang penelusuran hingga titik terbaik yang diamati tidak lagi dekat dengan batas.
Sering kali, studi menyertakan uji coba "tidak layak" yang menyimpang atau mendapatkan hasil yang sangat buruk (ditandai dengan X merah pada Gambar 1). Jika semua uji coba tidak memungkinkan untuk kecepatan pembelajaran yang lebih besar dari beberapa nilai minimum, dan jika uji coba berperforma terbaik memiliki kecepatan pembelajaran di edge wilayah tersebut, model mungkin mengalami masalah stabilitas yang mencegahnya mengakses kecepatan pembelajaran yang lebih tinggi.
Tidak mengambil sampel titik yang cukup di ruang penelusuran
Secara umum, akan sangat sulit untuk mengetahui apakah ruang penelusuran telah diambil sampelnya dengan cukup padat. 🤖 Menjalankan lebih banyak uji coba lebih baik daripada menjalankan lebih sedikit uji coba, tetapi lebih banyak uji coba menghasilkan biaya tambahan yang jelas.
Karena sangat sulit untuk mengetahui kapan Anda mendapatkan cukup sampel, sebaiknya:
- Membuat sampel konten yang dapat Anda beli.
- Melakukan kalibrasi pada keyakinan intuitif Anda dengan melihat kembali berbagai plot sumbu hyperparameter dan mencoba mengetahui berapa banyak titik yang berada di region "baik" pada ruang penelusuran.
Memeriksa kurva pelatihan
Ringkasan: Memeriksa kurva kerugian adalah cara mudah untuk mengidentifikasi mode kegagalan umum dan dapat membantu Anda memprioritaskan kemungkinan tindakan berikutnya.
Dalam banyak kasus, tujuan utama eksperimen Anda hanya memerlukan pertimbangan error validasi dari setiap uji coba. Namun, berhati-hatilah saat mengurangi setiap uji coba menjadi satu angka karena fokus tersebut dapat menyembunyikan detail penting mengenai apa yang terjadi di bawah permukaan. Untuk setiap studi, sebaiknya lihat lengkung kehilangan setidaknya pada beberapa uji coba terbaik. Meskipun ini tidak diperlukan untuk mengatasi objektif eksperimental utama, memeriksa kurva kerugian (termasuk kerugian pelatihan dan hilangnya validasi) adalah cara yang baik untuk mengidentifikasi mode kegagalan umum dan dapat membantu Anda memprioritaskan tindakan yang harus diambil selanjutnya.
Saat memeriksa kurva kerugian, fokuskan pada pertanyaan berikut:
Apakah ada uji coba yang menunjukkan overfit yang bermasalah? Overcode bermasalah terjadi saat error validasi mulai meningkat selama pelatihan. Di setelan eksperimental tempat Anda mengoptimalkan Hyperparameter yang mengganggu dengan memilih uji coba "terbaik" untuk setiap setelan hyperparameter ilmiah, periksa kelebihan penggunaan yang bermasalah setidaknya di setiap uji coba terbaik yang sesuai dengan setelan hyperparameter ilmiah yang Anda bandingkan. Jika salah satu uji coba terbaik menunjukkan overfit yang bermasalah, lakukan salah satu atau kedua hal berikut:
- Menjalankan kembali eksperimen dengan teknik regularisasi tambahan
- Reset parameter regularisasi yang ada sebelum membandingkan nilai hyperparameter ilmiah. Ini mungkin tidak berlaku jika hiperparameter ilmiah menyertakan parameter regularisasi, karena setelah itu tidak akan mengejutkan jika setelan parameterisasi dengan kekuatan rendah tersebut menghasilkan kelebihan penggunaan yang bermasalah.
Mengurangi overfit sering kali mudah dilakukan menggunakan teknik regularisasi umum yang menambah kompleksitas kode minimal atau komputasi tambahan (misalnya, regularisasi dengan kebocoran, kelancaran label, peluruhan berat). Oleh karena itu, biasanya akan mudah untuk menambahkan satu atau beberapa eksperimen ini ke tahap eksperimen berikutnya. Misalnya, jika hyperparameter ilmiah adalah "jumlah lapisan tersembunyi" dan uji coba terbaik yang menggunakan jumlah terbesar lapisan tersembunyi menunjukkan overfit yang bermasalah, sebaiknya coba lagi dengan regularisasi tambahan, daripada langsung memilih jumlah lapisan tersembunyi yang lebih kecil.
Meskipun tidak ada uji coba "terbaik" yang menunjukkan overfit yang bermasalah, mungkin masih ada masalah jika terjadi pada salah satu uji coba. Memilih konfigurasi terbaik akan menyembunyikan konfigurasi yang menunjukkan kelebihan penggunaan yang bermasalah dan memilih konfigurasi yang tidak cocok. Dengan kata lain, memilih uji coba terbaik akan mendukung konfigurasi dengan regularisasi yang lebih besar. Namun, segala hal yang memperburuk pelatihan dapat bertindak sebagai regularisasi, meskipun tidak dimaksudkan demikian. Misalnya, memilih kecepatan pembelajaran yang lebih kecil dapat membuat pelatihan menjadi tidak konsisten dengan melakukan proses pengoptimalan, tetapi kami biasanya tidak ingin memilih kecepatan pembelajaran dengan cara ini. Perhatikan bahwa uji coba "terbaik" untuk setiap setelan hyperparameter ilmiah mungkin dipilih sedemikian rupa sehingga mendukung nilai "buruk" dari beberapa hyperparameter ilmiah atau yang mengganggu.
Apakah terdapat varian langkah demi langkah yang tinggi dalam pelatihan atau error validasi dalam pelatihan? Jika ya, hal ini dapat mengganggu kedua hal berikut:
- Kemampuan Anda untuk membandingkan nilai yang berbeda dari hyperparameter ilmiah. Ini karena setiap uji coba berakhir secara acak pada langkah "keberuntungan" atau "tidak beruntung".
- Kemampuan Anda untuk mereproduksi hasil uji coba terbaik dalam produksi. Ini karena model produksi mungkin tidak berakhir pada langkah "keberuntungan" yang sama seperti dalam studi.
Penyebab varian langkah demi langkah yang paling mungkin adalah:
- Varians batch karena contoh sampling acak dari set pelatihan untuk setiap batch.
- Set validasi kecil
- Menggunakan kecepatan pembelajaran yang terlalu tinggi dalam pelatihan.
Kemungkinan solusinya meliputi:
- Meningkatkan ukuran tumpukan.
- Mendapatkan lebih banyak data validasi.
- Menggunakan peluruhan kecepatan pembelajaran.
- Menggunakan rata-rata Polyak.
Apakah uji coba masih dapat ditingkatkan setelah pelatihan berakhir? Jika demikian, Anda berada dalam aturan "menghitung komputasi" dan bisa mendapatkan manfaat dari peningkatan jumlah langkah pelatihan atau mengubah jadwal kecepatan pembelajaran.
Apakah performa pelatihan dan set validasi jenuh jauh sebelum langkah pelatihan terakhir? Jika demikian, ini menunjukkan bahwa Anda berada dalam aturan "tidak terikat dengan komputasi" dan bahwa Anda mungkin dapat mengurangi jumlah langkah pelatihan.
Selain daftar ini, banyak perilaku tambahan yang dapat dibuktikan dengan memeriksa kurva kerugian. Misalnya, kerugian pelatihan yang meningkat selama pelatihan biasanya menunjukkan adanya bug di pipeline pelatihan.
Mendeteksi apakah perubahan berguna dengan plot isolasi
Gambar 2: plot isolasi yang menyelidiki nilai peluruhan berat yang paling baik yang dilatih ResNet-50 di ImageNet.
Sering kali, sasaran dari serangkaian eksperimen adalah membandingkan berbagai nilai hiperparameter ilmiah. Misalnya, Anda ingin menentukan nilai peluruhan berat yang menghasilkan error validasi terbaik. Plot isolasi adalah kasus khusus dari plot sumbu hyperparameter dasar. Setiap titik pada plot isolasi sesuai dengan performa uji coba terbaik di beberapa (atau semua) hyperparameter yang mengganggu. Dengan kata lain, rencanakan performa model setelah "mengoptimalkan" hyperparameter yang mengganggu.
Plot isolasi menyederhanakan dilakukannya perbandingan yang setara antara nilai yang berbeda dari hyperparameter ilmiah. Misalnya, plot isolasi pada Gambar 2 menunjukkan nilai peluruhan bobot yang menghasilkan performa validasi terbaik untuk konfigurasi tertentu dari ResNet-50 yang dilatih ImageImage.
Jika tujuannya adalah untuk menentukan apakah akan menyertakan peluruhan berat sama sekali, bandingkan titik terbaik dari plot ini dengan dasar pengukuran tanpa peluruhan berat. Sebagai perbandingan, dasar pengukuran juga harus memiliki kecepatan pemelajaran yang setara.
Jika Anda memiliki data yang dihasilkan oleh penelusuran acak (quasi) dan mempertimbangkan hyperparameter yang berkelanjutan untuk plot isolasi, Anda dapat memperkirakan plot isolasi dengan mengelompokkan nilai sumbu x dari plot sumbu hyperparameter dasar dan mengambil uji coba terbaik di setiap bagian vertikal yang ditentukan oleh bucket.
Mengotomatiskan plot yang secara umum berguna
Semakin banyak upaya untuk membuat plot, semakin kecil kemungkinan Anda untuk melihatnya. Oleh karena itu, sebaiknya siapkan infrastruktur Anda untuk menghasilkan plot sebanyak mungkin secara otomatis. Setidaknya, sebaiknya buat plot sumbu hyperparameter dasar secara otomatis untuk semua hyperparameter yang Anda variasikan dalam eksperimen.
Selain itu, sebaiknya buat kurva kerugian untuk semua uji coba secara otomatis. Selain itu, kami memudahkan Anda untuk menemukan beberapa uji coba terbaik dari setiap studi dan memeriksa kurva kerugian mereka.
Anda dapat menambahkan banyak plot dan visualisasi potensial lain yang berguna. Untuk menguraikan Geoffrey Hinton:
Setiap kali merencanakan hal baru, Anda belajar hal baru.
Menentukan apakah akan menggunakan perubahan kandidat atau tidak
Ringkasan: Saat memutuskan apakah akan melakukan perubahan pada model atau prosedur pelatihan kami, atau mengadopsi konfigurasi hyperparameter yang baru, perhatikan berbagai sumber variasi dalam hasil Anda.
Saat mencoba meningkatkan model, perubahan kandidat tertentu mungkin pada awalnya akan menghasilkan error validasi yang lebih baik dibandingkan dengan konfigurasi yang sudah ada. Namun, mengulangi eksperimen tersebut mungkin tidak menunjukkan keuntungan yang konsisten. Secara informal, sumber hasil terpenting yang tidak konsisten dapat dikelompokkan ke dalam kategori yang luas:
- Pelatihan prosedur varians, buat ulang varian, atau uji coba varians: variasi antara sesi pelatihan yang menggunakan hyperparameter yang sama, tetapi seed acak yang berbeda. Misalnya, berbagai inisialisasi acak, acak data pelatihan, mask outout, pola operasi augmentasi data, dan pengurutan operasi aritmatika paralel adalah semua sumber potensi varian uji coba.
- Hyperparameter search variance, atau studi variance: variasi hasil yang disebabkan oleh prosedur untuk memilih hyperparameter. Misalnya, Anda mungkin menjalankan eksperimen yang sama dengan ruang penelusuran tertentu, tetapi dengan dua bibit yang berbeda untuk penelusuran kuasi-acak dan akhirnya memilih nilai hyperparameter yang berbeda.
- Pengumpulan data dan varians sampel: varian dari semua jenis pemisahan acak yang dibagi menjadi data pelatihan, validasi, dan pengujian atau varians karena proses pembuatan data pelatihan secara lebih umum.
Benar, Anda dapat membandingkan rasio error validasi yang diperkirakan pada set validasi terbatas menggunakan pengujian statistik yang cepat. Namun, sering kali varian uji coba saja dapat menghasilkan perbedaan yang signifikan secara statistik antara dua model terlatih yang berbeda yang menggunakan setelan hyperparameter yang sama.
Kami sangat khawatir dengan varian studi saat mencoba membuat kesimpulan yang melampaui tingkat titik individual dalam ruang hyperparameter. Varian studi bergantung pada jumlah uji coba dan ruang penelusuran. Kami telah melihat kasus di mana varians studi lebih besar daripada varian uji coba dan kasus yang jauh lebih kecil. Oleh karena itu, sebelum mengadopsi perubahan kandidat, pertimbangkan untuk menjalankan waktu N uji coba terbaik guna membentuk karakter varian uji coba yang akan dijalankan. Biasanya, Anda dapat menghindari perubahan karakter varian uji coba setelah perubahan besar pada pipeline, tetapi Anda mungkin memerlukan estimasi yang lebih baru dalam beberapa kasus. Di aplikasi lain, karakterisasi varian uji coba terlalu harus dibayar.
Meskipun Anda hanya ingin mengadopsi perubahan (termasuk konfigurasi hyperparameter baru) yang menghasilkan peningkatan nyata, menuntut kepastian lengkap bahwa perubahan tertentu juga tidak membantu memberikan jawaban yang tepat. Oleh karena itu, jika titik hyperparameter baru (atau perubahan lainnya) mendapatkan hasil yang lebih baik daripada dasar pengukuran (dengan mempertimbangkan varians pelatihan ulang titik baru dan dasar pengukuran sebaik mungkin), Anda mungkin harus mengadopsinya sebagai dasar pengukuran baru untuk perbandingan di masa mendatang. Namun, sebaiknya hanya adopsi perubahan yang menghasilkan peningkatan yang melebihi kompleksitas apa pun yang ditambahkan.
Setelah eksplorasi berakhir
Ringkasan: Alat pengoptimalan Bayesian adalah opsi yang menarik setelah Anda selesai menelusuri ruang penelusuran yang baik dan telah memutuskan hyperparameter apa yang layak untuk disesuaikan.
Pada akhirnya, prioritas Anda akan bergeser dari mempelajari lebih lanjut masalah penyesuaian ke menghasilkan satu konfigurasi terbaik untuk diluncurkan atau menggunakannya. Pada saat itu, harus ada ruang penelusuran terperinci yang berisi wilayah lokal dengan nyaman di sekitar uji coba terbaik yang diamati dan telah diambil sampelnya secara memadai. Tugas eksplorasi Anda seharusnya telah mengungkapkan hyperparameter yang paling penting untuk disesuaikan dan rentang yang masuk akal, yang dapat Anda gunakan untuk membuat ruang penelusuran bagi studi penyesuaian otomatis akhir menggunakan anggaran penyesuaian sebesar mungkin.
Karena Anda tidak lagi ingin memaksimalkan insight tentang masalah penyesuaian, banyak manfaat dari penelusuran kuasi-acak tidak lagi berlaku. Oleh karena itu, Anda harus menggunakan alat pengoptimalan Bayesian untuk secara otomatis menemukan konfigurasi hyperparameter yang terbaik. Open-Source Vizier menerapkan berbagai algoritme canggih untuk menyesuaikan model ML, termasuk algoritme Pengoptimalan Bayesian.
Misalnya ruang penelusuran berisi volume non-trivial titik divergen, yang berarti titik yang mendapatkan kerugian pelatihan NaN atau bahkan kerugian pelatihan banyak penyimpangan standar lebih buruk dari rata-rata. Dalam hal ini, sebaiknya gunakan alat pengoptimalan kotak hitam yang menangani dengan benar uji coba yang berbeda. (Lihat Pengoptimalan Bayesian dengan Batasan Tidak Diketahui untuk mengetahui cara terbaik mengatasi masalah ini.) Open-Source Vizier telah mendukung penandaan titik yang berbeda dengan menandai uji coba sebagai tidak memungkinkan, meskipun mungkin tidak menggunakan pendekatan pilihan kami dari Gelbart et al., bergantung pada cara konfigurasinya.
Setelah eksplorasi berakhir, sebaiknya periksa performa pada set pengujian. Pada prinsipnya, Anda bahkan dapat melipat set validasi ke dalam set pelatihan dan melatih ulang konfigurasi terbaik yang ditemukan dengan pengoptimalan Bayesian. Namun, ini hanya sesuai jika tidak akan ada lagi peluncuran dengan beban kerja spesifik ini (misalnya, kompetisi Kaggle satu kali).