Pedoman untuk memilih hyperparameters di Deep Learning

38

Saya mencari makalah yang dapat membantu dalam memberikan pedoman tentang bagaimana memilih hyperparameter arsitektur yang mendalam, seperti auto-encoders stacked atau jaringan deep trust. Ada banyak hiperparameter dan saya sangat bingung bagaimana memilihnya. Juga menggunakan validasi silang bukan pilihan karena pelatihan benar-benar membutuhkan banyak waktu!

Jack Twain
sumber
Saya merekomendasikan Buku Pembelajaran Jauh Ian Goodfellow: deeplearningbook.org
Vadim Smolyakov

Jawaban:

24

Pada dasarnya ada empat metode:

  1. Pencarian Manual: Menggunakan pengetahuan yang Anda miliki tentang parameter perkiraan masalah dan amati hasilnya. Berdasarkan hasil itu tweak parameter. Ulangi proses ini sampai Anda menemukan parameter yang berfungsi dengan baik atau Anda kehabisan waktu.
  2. Pencarian Grid: Menggunakan pengetahuan yang Anda miliki tentang masalah mengidentifikasi rentang untuk parameterparameter. Kemudian pilih beberapa titik dari rentang tersebut, biasanya terdistribusi secara seragam. Latih jaringan Anda menggunakan setiap kombinasi parameter dan pilih kombinasi yang berkinerja terbaik. Atau Anda dapat mengulangi pencarian Anda pada domain yang lebih sempit yang berpusat di sekitar parameter yang melakukan yang terbaik.
  3. Pencarian Acak: Seperti pencarian grid, Anda menggunakan pengetahuan masalah untuk mengidentifikasi rentang untuk parameter hiperparameter. Namun, alih-alih memilih nilai dari rentang tersebut secara metodis, Anda malah memilihnya secara acak. Ulangi proses ini sampai Anda menemukan parameter yang berfungsi dengan baik atau gunakan apa yang Anda pelajari untuk mempersempit pencarian Anda. Dalam makalah Pencarian Acak untuk Hyper-Parameter Optimization Dr. Bengio mengusulkan ini menjadi metode dasar yang harus dibandingkan dengan semua metode lain dan menunjukkan bahwa itu cenderung bekerja lebih baik daripada metode lainnya.
  4. Bayesian Optimization: Pekerjaan yang lebih baru telah difokuskan pada peningkatan pendekatan-pendekatan lain ini dengan menggunakan informasi yang diperoleh dari percobaan yang diberikan untuk memutuskan bagaimana menyesuaikan parameter hiper untuk percobaan berikutnya. Contoh dari pekerjaan ini adalah Optimalisasi Bayesian Praktis dari Algoritma Pembelajaran Mesin oleh Adams et al.
DaemonMaker
sumber
14

Berbagai macam metode ada. Mereka sebagian besar dapat dipartisi dalam metode pencarian acak / tidak diarahkan (seperti pencarian grid atau pencarian acak) dan metode langsung. Perlu diketahui, bahwa mereka semua memerlukan pengujian sejumlah pengaturan hiperparameter kecuali Anda beruntung (setidaknya ratusan, tergantung pada jumlah parameter).

Dalam kelas metode langsung, beberapa pendekatan berbeda dapat diidentifikasi:

  • metode bebas turunan, misalnya Nelder-Mead simplex atau DIRECT
  • metode evolusi, seperti CMA-ES dan kawanan partikel
  • pendekatan berbasis model, misalnya EGO dan sekuensial Kriging

Anda mungkin ingin melihat Optunity , paket Python yang menawarkan berbagai solver untuk penyetelan hyperparameter (semua yang saya sebutkan kecuali EGO dan Kriging, untuk saat ini). Optunity akan segera tersedia untuk MATLAB dan R. Penafian: Saya adalah pengembang utama dari paket ini.

Berdasarkan pengalaman pribadi saya, metode evolusi sangat kuat untuk jenis masalah ini.

Marc Claesen
sumber
10

Tidak terlihat lagi! Yoshua Bengio menerbitkan salah satu makalah terapan favorit saya, salah satu yang saya rekomendasikan untuk semua insinyur pembelajaran mesin baru ketika mereka mulai melatih jaring saraf: Rekomendasi praktis untuk pelatihan berbasis gradien arsitektur dalam. Untuk mendapatkan perspektifnya tentang perputaran hyperparameter: termasuk laju pembelajaran, jadwal laju pembelajaran, penghentian dini, ukuran minibatch, jumlah lapisan tersembunyi, dll., Lihat Bagian 3.

sabalaba
sumber