Kedua proses tampaknya digunakan untuk memperkirakan nilai maksimum dari fungsi yang tidak diketahui, dan keduanya jelas memiliki cara yang berbeda untuk melakukannya.
Namun dalam praktiknya, apakah kedua metode itu pada dasarnya dapat dipertukarkan? Di mana saya ingin menggunakan salah satunya?
https://en.wikipedia.org/wiki/Simulated_annealing
Pertanyaan Serupa
Pengoptimalan Bayesian atau gradient descent?
optimization
maximum
bayesian-optimization
jurang289
sumber
sumber
Jawaban:
Simulated Annealing (SA) adalah algoritma yang sangat sederhana dibandingkan dengan Bayesian Optimization (BO). Tidak ada metode yang mengasumsikan cembung dari fungsi biaya dan tidak ada metode yang sangat bergantung pada informasi gradien.
SA merupakan jalan acak yang sedikit terdidik. Solusi kandidat melompati ruang solusi yang memiliki jadwal lompatan tertentu (parameter pendinginan). Anda tidak peduli di mana Anda mendarat sebelumnya, Anda tidak tahu di mana Anda akan mendarat selanjutnya. Ini adalah pendekatan Rantai Markov yang khas. Anda tidak memodelkan asumsi kuat tentang permukaan solusi yang mendasari. Optimasi MCMC telah berjalan jauh dari SA (lihat misalnya Hamiltonian Monte Carlo ) tetapi kami tidak akan memperluas lebih jauh. Salah satu masalah utama dengan SA adalah Anda perlu mengevaluasi banyak kali "cepat". Dan masuk akal, Anda perlu sampel sebanyak mungkin untuk mengeksplorasi sebanyak mungkin negara (mis. Solusi kandidat). Anda hanya menggunakan sedikit informasi gradien (bahwa Anda hampir selalu menerima solusi "lebih baik").
Lihat sekarang di BO. BO (atau regresi Gaussian Proses (GP) yang disederhanakan atas evaluasi fungsi biaya Anda) mencoba melakukan yang sebaliknya dalam hal evaluasi fungsi. Mencoba meminimalkan jumlah evaluasi yang Anda lakukan. Itu membangun model non-parametrik tertentu (biasanya dokter umum) untuk fungsi biaya Anda yang sering mengasumsikan kebisingan. Itu tidak menggunakan informasi gradien sama sekali. BO memungkinkan Anda membangun model informatif fungsi biaya Anda dengan sejumlah kecil evaluasi fungsi. Setelah itu Anda "menanyakan" fungsi yang cocok ini untuk ekstremanya. Sekali lagi iblis ada dalam rinciannya; Anda perlu mengambil sampel secara cerdas (dan menganggap bahwa prior Anda juga setengah masuk akal). Ada pekerjaan di mana untuk mengevaluasi fungsi Anda selanjutnya terutama ketika Anda tahu bahwa fungsi Anda sebenarnya berkembang sedikit dari waktu ke waktu (mis. Di sini ).
Keuntungan yang jelas dari SA daripada BO adalah bahwa di dalam SA sangat mudah untuk menempatkan kendala pada ruang solusi Anda. Misalnya, jika Anda menginginkan solusi non-negatif, Anda hanya perlu membatasi distribusi sampel Anda dalam solusi non-negatif. Hal yang sama tidak begitu langsung dalam BO karena bahkan Anda mengevaluasi fungsi Anda sesuai dengan kendala Anda (katakanlah non-negatif) Anda harus benar-benar menghambat proses Anda juga; Taske ini sementara bukan tidak mungkin lebih terlibat.
Secara umum, seseorang akan lebih suka SA jika fungsi biaya murah untuk dievaluasi dan BO dalam kasus bahwa fungsi biaya mahal untuk dievaluasi. Saya pikir SA perlahan tapi pasti tidak disukai; terutama pekerjaan optimisasi bebas-gradien (mis. NEWQUA , BOBYQA ) menghilangkan salah satu keuntungan utama dalam perbandingan dengan metode gradient descent standar yang tidak harus mengevaluasi turunan. Demikian pula pekerjaan pada MCMC adaptif (mis. Lihat referensi di atas) menjadikannya boros dalam hal optimasi MCMC untuk hampir semua kasus.
sumber