Saya tertarik memaksimalkan fungsi , di mana \ theta \ in \ mathbb R ^ p .
Masalahnya adalah saya tidak tahu bentuk analitik fungsi, atau turunannya. Satu-satunya hal yang dapat saya lakukan adalah mengevaluasi fungsi point-wise, dengan memasukkan nilai dan mendapatkan estimasi NOISY pada saat itu. Jika saya mau, saya bisa mengurangi variabilitas estimasi ini, tetapi saya harus membayar biaya komputasi yang meningkat.
Inilah yang saya coba sejauh ini:
Stochastic keturunan paling curam dengan perbedaan yang terbatas: ia dapat bekerja tetapi membutuhkan banyak penyetelan (misalnya urutan kenaikan, faktor penskalaan) dan seringkali sangat tidak stabil.
Simulated annealing: ini bekerja dan dapat diandalkan, tetapi membutuhkan banyak evaluasi fungsi jadi saya merasa sangat lambat.
Jadi saya meminta saran / ide tentang kemungkinan metode optimasi alternatif yang dapat bekerja dalam kondisi ini. Saya menjaga masalah ini seumum mungkin untuk mendorong saran dari bidang penelitian yang berbeda dengan saya. Saya harus menambahkan bahwa saya akan sangat tertarik dengan metode yang dapat memberi saya perkiraan Hessian pada konvergensi. Ini karena saya bisa menggunakannya untuk memperkirakan ketidakpastian parameter . Kalau tidak, saya harus menggunakan perbedaan hingga sekitar maksimum untuk mendapatkan perkiraan.
sumber
Jawaban:
Paket Matlab kami SnobFit dibuat tepat untuk tujuan ini. Tidak diperlukan asumsi tentang distribusi kebisingan. Selain itu, nilai-nilai fungsi dapat diberikan melalui file teks, sehingga Anda dapat menerapkannya pada fungsi yang diimplementasikan dalam sistem apa pun yang dapat menulis file teks. Lihat
http://www.mat.univie.ac.at/~neum/software/snobfit/
SnobFit telah dikembangkan untuk aplikasi di mana fungsi yang akan dioptimalkan bahkan tidak ada, dan nilai fungsi (ukuran kualitas manufaktur) diperoleh oleh peralatan khusus yang mahal yang membuat produk sampel dan mengukurnya dengan tangan, menghasilkan sekitar 50 fungsi evaluasi per hari.
sumber
Ada beberapa teknik optimasi Bayesian yang bisa Anda coba. Paling mudah didasarkan pada proses Gaussian:
Mereka beroperasi dengan membentuk posterior atas fungsi yang masuk akal memberikan pengamatan sejauh ini, dan menyarankan titik berikutnya untuk dengan cepat mempelajari fungsi serta menemukan global maxima (lihat posting blog saya ).
Keuntungan lain adalah bahwa Anda dapat memperkirakan Hessian dengan maksimal. Namun, Anda perlu menentukan model noise.
sumber
Algoritma SPSA James Spall (kependekan dari Stochastic Perturbation Simulated Annealing, jika saya ingat dengan benar) telah dirancang untuk masalah seperti ini. Dia memiliki beberapa kertas di mana dia menggunakannya untuk masalah seperti yang Anda gambarkan.
sumber