Derivasi BFGS lebih intuitif ketika seseorang menganggap (secara ketat) fungsional biaya cembung:
Namun, beberapa
informasi latar belakang diperlukan: Asumsikan, seseorang ingin meminimalkan fungsional
cembung
Katakanlah ada solusi perkiraan . Kemudian, kita mendekati minimum dengan minimum ekspansi Taylor yang terpotong
Artinya, orang mencari sehingga minimal dan set . Komputasi gradien dari - "sehubungan dengan " - dan pengaturannya ke nol memberikan hubungan
x k f f ( x k + p ) ≈ f ( x k ) + ∇ f ( x k ) T p + 1
f( x ) → minx ∈ Rn.
xkfp ( ∗ ) x k + 1 : = x k + p ( ∗ ) p H ( x k ) [ x k + 1 - x k ] = ∇ f ( x k + 1 ) - ∇ f ( x k ) ,f( xk+ p ) ≈ f( xk) + ∇ f( xk)Tp + 12halTH( xk) hal .( ∗ )
hal( ∗ )xk + 1: = xk+ p( ∗ )halH( xk) [ xk + 1- xk] = ∇ f( xk + 1) - ∇ f( xk) ,
mana adalah 'Jacobian of the gradient' atau matriks Hessian.
H
Karena perhitungan dan inversi Hessian mahal ...
... jawaban singkat
(lih. Pembaruan Broyden) mungkin karena pembaruan BFGS meminimalkan
dalam norma Frobenius tertimbang yang dipilih secara cerdas, tunduk pada ‖ H - 1 k - H - 1 ‖ WH- 1k + 1
∥ H- 1k- H- 1∥W
- H[ xk + 1- xk] = ∇ f( xk + 1) - ∇ f( xk) - ini adalah tujuan dari siapa - dan
- HT= H , karena Hessian simetris.
Maka pilihan bobot dalam sebagai kebalikan dari Goni rata-rata , lih. di sini untuk pernyataan tetapi tanpa bukti, berikan rumus pembaruan BFGS (dengan ).W∥ H∥W: = ∥ W1 / 2HW1 / 2∥F
G : = ∫10H( xk+ τp ) dταk= 1
Poin utamanya adalah:
- Seseorang mencoba memperkirakan solusi untuk biaya aktual dengan solusi untuk perkiraan kuadratik
- Perhitungan Hessian, dan kebalikannya, mahal. Satu lebih suka pembaruan sederhana.
- Pembaruan dipilih optimal untuk kebalikan daripada Goni yang sebenarnya.
- Bahwa itu adalah pembaruan peringkat-2 adalah konsekuensi dari pilihan bobot tertentu dalam norma Frobenius.
Sebuah jawaban yang lebih panjang , harus mencakup bagaimana memilih bobot, bagaimana membuat karya ini untuk masalah nonconvex (di mana kondisi kelengkungan muncul yang memerlukan skala dari arah pencarian ), dan bagaimana untuk menurunkan sebenarnya rumus untuk update. Referensi ada di sini (dalam bahasa Jerman).hal