Saya memberikan Bayesian Optimization, mengikuti Snoek, Larochelle, dan Adams [ http://arxiv.org/pdf/1206.2944.pdf] , menggunakan GPML [ http://www.gaussianprocess.org/gpml/code/matlab / doc /] . Saya telah mengimplementasikan fungsi akuisisi Peningkatan yang Diharapkan yang dijelaskan pada halaman 3, dan saya berasumsi bahwa saya benar bahwa untuk memutuskan ke mana harus mencari query selanjutnya, saya harus mengambil yang memaksimalkan:
Tapi sepertinya saya tidak dapat menemukan panduan tentang apa yang harus dipertimbangkan oleh set kandidat . Secara teoritis, saya ingin mencari yang terbaik di seluruh domain, dan makalah ini ditulis sedemikian rupa sehingga tampaknya menyarankan ini mungkin ("[EI] juga memiliki formulir tertutup di bawah proses Gaussian" ). Tetapi sebagai hal yang praktis, saya perlu menghitung rata-rata dan varian prediktif posterior pada apa pun yang dapat saya pertimbangkan sebelum saya dapat menghitung dan sementara posisi ini memiliki formulir tertutup, saya masih perlu menghitungnya menggunakan aljabar matriks, jadi saya tidak bisa melihat cara untuk berkeliling memilih sekelompok .
Pertanyaannya: (?? Menengah kecil) apa adalah metode praktis untuk memilih besar set kandidat 's lebih yang saya memaksimalkan EI (atau fungsi akuisisi lainnya)? (Apakah ini ada di koran di suatu tempat dan saya baru saja melewatkannya?)
Saat ini, saya hanya mengambil set saya saat ini , mengambil sampelnya dengan penggantian 2000 kali, dan kemudian menambahkan beberapa noise Gaussian ke setiap titik. Sepertinya tidak apa-apa, kurasa.
sumber
Jawaban:
Normalnya adalah menggunakan pengoptimal global yang Anda suka. Masalahnya adalah bahwa permukaan EI sangat multi-modal dan terputus; Mengoptimalkan fungsi akuisisi ini adalah masalah yang bukan masalah sendiri.
Pilihan umum yang saya lihat di berbagai makalah adalah algoritma DIRECT ; kadang-kadang saya pernah melihat CMA-ES yang merupakan metode canggih dalam optimasi nonlinier. Dalam pengalaman saya untuk bentuk pengoptimalan lainnya, MCS ( Pencarian Koordinat Multi Tingkat ) cenderung bekerja relatif baik. Anda dapat menemukan ulasan pengoptimal global bebas derivatif di sini :
Omong-omong, EI bersifat analitis jadi jika mau, Anda juga dapat menghitung gradiennya untuk memandu pengoptimalan, tetapi ini tidak perlu. Teknik yang efektif adalah menjalankan pengoptimal global terlebih dahulu untuk menemukan solusi yang menjanjikan dan kemudian menjalankan pengoptimal lokal untuk memperbaikinya (misalnya, metode kuasi-Newton seperti BFGS, yaitu fminunc di MATLAB; atau fmincon jika Anda memiliki kendala).
Akhirnya, jika kecepatan optimalisasi fungsi akuisisi merupakan faktor (yang bukan merupakan skenario BO "tradisional"), saya telah menemukan hasil yang layak dengan memulai dengan desain Hypercube Latin atau desain urutan Sobol acak-acak, kemudian disempurnakan dengan beberapa langkah dari pengoptimal lokal dari titik terbaik; lihat juga @ user777 komentar. Karena ini bukan skenario BO standar, saya tidak punya referensi khusus yang benar-benar menggunakan metode ini.
Contoh makalah yang merujuk pada DIRECT atau CMA-ES:
Anda hanya dapat google "Bayesian optimasi" + algoritma optimasi global yang diinginkan, dan Anda akan menemukan banyak makalah. Plus, di hampir setiap makalah lain tentang BO Anda akan menemukan kalimat seperti :
sumber