Optimasi hyperparameter praktis: Pencarian acak vs. kisi

41

Saat ini saya sedang mencari Bengio dan Bergsta's Random Search untuk Hyper-Parameter Optimization [1] di mana penulis mengklaim pencarian acak lebih efisien daripada pencarian grid dalam mencapai sekitar kinerja yang sama.

Pertanyaan saya adalah: Apakah orang-orang di sini setuju dengan klaim itu? Dalam pekerjaan saya, saya telah menggunakan pencarian kotak sebagian besar karena kurangnya alat yang tersedia untuk melakukan pencarian acak dengan mudah.

Apa pengalaman orang yang menggunakan pencarian grid vs. acak?

Bar
sumber
Pencarian acak lebih baik dan harus selalu disukai. Namun, akan lebih baik menggunakan perpustakaan khusus untuk optimisasi hyperparameter, seperti Optunity , hyperopt atau bayesopt.
Marc Claesen
Bengio et al. tulis tentang ini di sini: papers.nips.cc/paper/... Jadi, GP bekerja dengan baik, tetapi RS juga bekerja dengan baik.
Guy L
10
@ Mark Ketika Anda memberikan tautan ke sesuatu yang melibatkan Anda, Anda harus membuat keterkaitan Anda dengannya jelas (satu atau dua kata saja sudah cukup, bahkan sesuatu yang sesingkat merujuknya seperti our Optunityseharusnya); seperti yang dikatakan oleh bantuan tentang perilaku, "jika beberapa ... kebetulan tentang produk atau situs web Anda, tidak apa-apa. Namun, Anda harus mengungkapkan afiliasi Anda"
Glen_b

Jawaban:

39

Pencarian acak memiliki probabilitas 95% untuk menemukan kombinasi parameter dalam optima 5% dengan hanya 60 iterasi. Juga dibandingkan dengan metode lain itu tidak menghalangi optima lokal.

Lihat posting blog hebat ini di Dato oleh Alice Zheng, khususnya bagian algoritma penyetelan Hyperparameter .

Saya suka film di mana yang diunggulkan menang, dan saya suka makalah pembelajaran mesin di mana solusi sederhana terbukti sangat efektif. Ini adalah jalan cerita "Pencarian acak untuk optimisasi hyperparameter" oleh Bergstra dan Bengio. [...] Pencarian acak tidak dilakukan dengan sangat serius sebelumnya. Ini karena tidak mencari semua titik kisi, sehingga tidak mungkin mengalahkan yang optimal yang ditemukan oleh penelusuran kisi. Namun kemudian datanglah Bergstra dan Bengio. Mereka menunjukkan bahwa, dalam banyak kasus, pencarian acak dilakukan dan pencarian grid. Semua dalam semua, mencoba 60 poin acak yang diambil dari grid tampaknya cukup baik.

(10.05)n. Jadi probabilitas bahwa setidaknya satu dari mereka berhasil mengenai interval adalah 1 dikurangi kuantitas itu. Kami ingin setidaknya 0,95 probabilitas keberhasilan. Untuk mengetahui jumlah undian yang kita butuhkan, selesaikan untuk n dalam persamaan:

1(10.05)n>0.95

n60

Moral dari cerita ini adalah: jika wilayah hyperparameter yang mendekati optimal menempati setidaknya 5% dari permukaan kotak, maka pencarian acak dengan 60 percobaan akan menemukan wilayah itu dengan probabilitas tinggi.

Anda dapat meningkatkan peluang itu dengan jumlah uji coba yang lebih tinggi.

Singkatnya, jika Anda memiliki terlalu banyak parameter yang perlu dicari, pencarian kotak mungkin menjadi tidak mungkin. Saat itulah saya mencoba pencarian acak.

Pembakar
sumber
3
Link ke posting blog turun :( Mungkinkah ini artikel yang sama? Oreilly.com/ideas/evaluating-machine-learning-models/page/5/...
n1k31t4
@DexterMorgan Hei, terima kasih atas semua yang sudah disampaikan. Ya, blog itu tampaknya down, dan saya tidak yakin saya harus menautkan ke sumber lain yang mungkin tidak "resmi" , jadi saya akan membiarkannya seperti sekarang saya pikir.
Firebug
Blognya masih down ... terima kasih telah mengutipnya dan @ n1k31t4 terima kasih telah menyediakan tautan untuk membaca lebih lanjut!
llrs
8

Lihat kembali gambar dari kertas (Gambar 1). Katakanlah Anda memiliki dua parameter, dengan pencarian grid 3x3 Anda hanya memeriksa tiga nilai parameter yang berbeda dari masing-masing parameter (tiga baris dan tiga kolom pada plot di sebelah kiri), sedangkan dengan pencarian acak Anda memeriksa sembilan (!) Nilai parameter yang berbeda dari masing-masing parameter (sembilan baris berbeda dan sembilan kolom berbeda).

Kisi vs pencarian acak

Jelas, pencarian acak, secara kebetulan, mungkin tidak mewakili untuk semua rentang parameter, tetapi seiring dengan bertambahnya ukuran sampel, peluang ini semakin kecil.

Tim
sumber
6

Jika Anda dapat menulis fungsi untuk pencarian di grid, mungkin lebih mudah menulis fungsi untuk melakukan pencarian acak karena Anda tidak harus menentukan sebelumnya dan menyimpan grid di depan.

Selain itu, metode seperti LIPO, optimisasi kawanan partikel, dan optimisasi Bayesian membuat pilihan cerdas tentang hiperparameter mana yang cenderung lebih baik, jadi jika Anda perlu menjaga agar jumlah model sesuai dengan minimum absolut (katakanlah, karena mahal agar sesuai dengan model), alat ini adalah opsi yang menjanjikan. Mereka juga pengoptimal global, sehingga mereka memiliki probabilitas tinggi untuk menemukan maksimum global. Beberapa fungsi akuisisi metode BO memiliki batas penyesalan yang dapat dibuktikan, yang membuatnya lebih menarik.

Informasi lebih lanjut dapat ditemukan dalam pertanyaan-pertanyaan ini:

Apa sajakah kelemahan dari optimasi parameter hyper bayesian?

Optimalisasi ketika Fungsi Biaya Lambat untuk Mengevaluasi

Pasang kembali Monica
sumber
2

Secara default, pencarian acak dan pencarian grid adalah algoritma yang mengerikan kecuali salah satu dari berikut ini berlaku.

  • Masalah Anda tidak memiliki struktur global, misalnya, jika masalahnya multimodal dan jumlah optima lokal sangat besar
  • Masalah Anda berisik, yaitu, mengevaluasi solusi yang sama dua kali mengarah ke nilai fungsi tujuan yang berbeda
  • Anggaran panggilan fungsi objektif sangat kecil dibandingkan dengan jumlah variabel, misalnya, lebih kecil dari 1x atau 10x.
  • Jumlah variabel sangat kecil, misalnya lebih kecil dari 5 (dalam praktiknya).
  • beberapa kondisi lainnya.

Kebanyakan orang mengklaim bahwa pencarian acak lebih baik daripada pencarian grid. Namun, perhatikan bahwa ketika jumlah total evaluasi fungsi sudah ditentukan sebelumnya, pencarian kisi-kisi akan mengarah pada cakupan yang baik dari ruang pencarian yang tidak lebih buruk daripada pencarian acak dengan anggaran yang sama dan perbedaan antara keduanya dapat diabaikan jika ada. Jika Anda mulai menambahkan beberapa asumsi, misalnya, bahwa masalah Anda dapat dipisahkan atau hampir dapat dipisahkan, maka Anda akan menemukan argumen untuk mendukung pencarian kisi. Secara keseluruhan, keduanya relatif buruk kecuali dalam beberapa kasus. Dengan demikian, tidak perlu untuk membedakan di antara mereka kecuali beberapa asumsi tambahan tentang masalah dipertimbangkan.

IndieSolver
sumber
dapatkah kamu mengusulkan sesuatu yang lebih baik? Bagaimana kita bisa tahu apa yang terbaik jika kita tidak mencoba? Menurut saya pencarian acak atas banyak model adalah solusi kompromi terbaik.
JPErwin
0

Menemukan tempat dalam 95% dari maksimal dalam topografi 2D dengan hanya satu maxima membutuhkan 100% / 25 = 25%, 6,25%, 1,5625%, atau 16 pengamatan. Selama empat pengamatan pertama dengan benar menentukan kuadran mana maxima (ekstrema) berada. Topografi 1D membutuhkan 100/2 = 50, 25, 12.5, 6.25, 3.125 atau 5 * 2. Saya kira orang yang mencari beberapa maxima lokal farflung menggunakan pencarian kotak inital besar kemudian regresi atau metode prediksi lainnya. Kisi 60 pengamatan harus memiliki satu pengamatan dalam 100/60 = 1,66% dari ekstrema. Global Optimization Wikipedia Saya masih berpikir selalu ada metode yang lebih baik daripada keacakan.

ran8
sumber
Simulated annealing adalah salah satu bentuk pencarian acak yang telah ada selama beberapa tahun.
Michael Chernick