Saya memiliki fungsi objektif bergantung pada nilai , di mana adalah solusi untuk PDE. Saya mengoptimalkan dengan gradient descent pada kondisi awal PDE: . Yaitu, saya memperbarui dan kemudian harus mengintegrasikan PDE untuk menghitung residu saya. Itu berarti, jika saya melakukan pencarian baris untuk ukuran langkah gradient descent (sebut saja ), untuk setiap nilai potensial dari saya harus mengintegrasikan PDE dari awal lagi.
Dalam kasus saya itu akan sangat mahal. Apakah ada opsi lain untuk ukuran langkah gradient descent adaptif?
Saya tidak hanya mencari skema berprinsip matematis di sini (walaupun tentu saja itu lebih baik jika ada sesuatu), tetapi akan senang dengan apa pun yang umumnya lebih baik daripada ukuran langkah statis.
Terima kasih!
sumber
Jawaban:
Saya akan mulai dengan komentar umum: informasi urutan pertama (yaitu, hanya menggunakan gradien, yang menyandikan kemiringan) hanya dapat memberi Anda informasi arah: Ini dapat memberi tahu Anda bahwa nilai fungsi menurun dalam arah pencarian, tetapi tidak untuk berapa lama . Untuk memutuskan seberapa jauh untuk pergi sepanjang arah pencarian, Anda memerlukan informasi tambahan (gradient descent dengan panjang langkah konstan dapat gagal bahkan untuk masalah kuadrat cembung). Untuk ini, Anda pada dasarnya memiliki dua pilihan:
Jika, saat Anda menulis, Anda tidak memiliki akses ke turunan kedua, dan mengevaluasi fungsi objektif sangat mahal, satu-satunya harapan Anda adalah untuk berkompromi: gunakan informasi perkiraan tingkat kedua yang cukup untuk mendapatkan panjang langkah kandidat yang baik sehingga garis pencarian hanya memerlukan evaluasi (yaitu, paling banyak kelipatan konstan (kecil) dari upaya yang Anda perlukan untuk mengevaluasi gradien Anda).O(1)
Salah satu kemungkinan adalah menggunakan panjang langkah Barzilai - Borwein (lihat, misalnya, Fletcher: Pada metode Barzilai-Borwein . Optimasi dan kontrol dengan aplikasi, 235–256, Optimasi Aplikasi, 96, Springer, New York, 2005 ). Idenya adalah untuk menggunakan perkiraan perbedaan yang terbatas dari kelengkungan di sepanjang arah pencarian untuk mendapatkan perkiraan ukuran langkah. Secara khusus, pilih sewenang-wenang, atur dan kemudian untuk :g 0 :α0>0 k = 0 , . . .g0:=∇f(x0) k=0,...
Pilihan ini dapat ditunjukkan untuk menyatu (dalam praktik sangat cepat) untuk fungsi kuadrat, tetapi konvergensi bukan monoton (yaitu, nilai fungsi dapat lebih besar dari , tetapi hanya sesekali; lihat plot pada halaman 10 di kertas Fletcher). Untuk fungsi non-kuadrat, Anda perlu menggabungkan ini dengan pencarian garis, yang perlu dimodifikasi untuk menangani non-monotonicity. Salah satu kemungkinan adalah memilih (misalnya, dengan menelusuri ulang) sedemikian rupa sehingga mana adalah parameter Armijo khas danf ( x k ) σ k ∈ ( 0 , α - 1 k ) f ( x k - σ k g k ) ≤ maks maks ( k - M , 1 ) ≤ j ≤ k f ( x j ) - γ σ k ( g k ) Tf(xk+1) f(xk) σk∈(0,α−1k)
Alternatif (dan, menurut saya, jauh lebih baik) pendekatan akan menggunakan pendekatan perbedaan hingga ini sudah dalam perhitungan arah pencarian; ini disebut metode kuasi-Newton . Idenya adalah untuk secara bertahap membangun perkiraan Hessian dengan menggunakan perbedaan gradien. Misalnya, Anda dapat mengambil (matriks identitas) dan untuk menyelesaikan dan set dengan seperti di atas dan . (Ini disebut pembaruan Broyden∇2f(xk) H0=Id k=0,…
Untungnya, dalam konteks ini terdapat pendekatan alternatif yang memanfaatkan setiap evaluasi fungsi. Idenya adalah bahwa untuk simetris dan pasti positif (yang dijamin untuk pembaruan BFGS), menyelesaikan setara dengan meminimalkan model kuadratik Dalam metode wilayah kepercayaan , Anda akan melakukannya dengan kendala tambahan yang , di mana adalah radius wilayah trust yang dipilih dengan tepat (yang memainkan peran sebagai panjang langkah ). Gagasan kuncinya adalah sekarang untuk memilih jari-jari ini secara adaptif, berdasarkan langkah yang dihitung. Secara khusus, Anda melihat rasionya (1)Hk (1)
sumber