Mengapa derivatif urutan kedua berguna dalam optimasi cembung?

18

Saya kira ini adalah pertanyaan dasar dan itu ada hubungannya dengan arah gradien itu sendiri, tapi saya sedang mencari contoh di mana metode urutan ke-2 (misalnya BFGS ) lebih efektif daripada penurunan gradien sederhana.

Batang
sumber
3
Apakah terlalu sederhana untuk hanya mengamati bahwa "menemukan titik parabola" adalah perkiraan yang jauh lebih baik untuk masalah "menemukan minimum" daripada "menemukan minimum fungsi linier ini" (yang, tentu saja, tidak memiliki minimum karena itu linear)?

Jawaban:

20

Berikut adalah kerangka umum untuk menafsirkan gradient descent dan metode Newton, yang mungkin merupakan cara yang berguna untuk memikirkan perbedaan sebagai suplemen untuk jawaban @ Sycorax. (BFGS mendekati metode Newton; saya tidak akan membicarakannya secara khusus di sini.)

Kami meminimalkan fungsi f , tetapi kami tidak tahu bagaimana melakukannya secara langsung. Jadi, sebagai gantinya, kita mengambil perkiraan lokal pada titik saat ini xdan meminimalkannya.

Metode Newton mendekati fungsi menggunakan ekspansi Taylor orde kedua:

f(y)Nx(y): =f(x)+f(x)T(y-x)+12(y-x)T2f(x)(y-x),
manaf(x) menunjukkan gradienf pada titikx dan2f(x) the Hessian atx . Kemudian langkah-langkah untukargminyNx(y) dan mengulangi.

tx-tf(x) Jadi gradient descent meminimalkan fungsi Gx(y):=f(x)+f(x)T(y-x)+1

x-tf(x)=argmaksy[f(x)+f(x)T(y-x)+12ty-x2]=argmaksy[f(x)+f(x)T(y-x)+12(y-x)T1tsaya(y-x)].
Gx(y): =f(x)+f(x)T(y-x)+12(y-x)T1tsaya(y-x).

Jadi penurunan gradien seperti menggunakan metode Newton, tetapi alih-alih mengambil ekspansi Taylor orde kedua, kita berpura-pura bahwa Hessian adalah . IniGsering merupakan pendekatan secara substansial lebih burukfdariN, dan keturunan maka gradien sering mengambil langkah jauh lebih buruk daripada metode Newton. Ini diimbangi, tentu saja, dengan setiap langkah penurunan gradien menjadi jauh lebih murah untuk dihitung daripada setiap langkah metode Newton. Mana yang lebih baik sepenuhnya tergantung pada sifat masalah, sumber daya komputasi Anda, dan persyaratan akurasi Anda.1tsayaGfN

Melihat contoh @ Sycorax tentang meminimalkan kuadrat sebentar, perlu dicatat bahwa perspektif ini membantu memahami kedua metode.

f(x)=12xTSEBUAHx+dTx+c

Dengan metode Newton, kita akan memiliki sehingga berakhir dengan jawaban yang tepat (hingga masalah akurasi floating point) dalam satu langkah.N=f

Penurunan gradien, di sisi lain, menggunakan

Gx(y)=f(x)+(SEBUAHx+d)Ty+12(x-y)T1tsaya(x-y)
xSEBUAH
Dougal
sumber
1
Ini mirip dengan jawaban @ Aksakal , tetapi secara lebih mendalam.
Dougal
1
(+1) Ini adalah tambahan yang bagus!
Sycorax berkata Reinstate Monica
17

Pada dasarnya, keuntungan dari metode turunan kedua seperti metode Newton adalah bahwa ia memiliki kualitas pemutusan kuadratik. Ini berarti bahwa ia dapat meminimalkan fungsi kuadrat dalam sejumlah langkah yang terbatas. Metode seperti gradient descent sangat bergantung pada tingkat pembelajaran, yang dapat menyebabkan optimisasi bertemu secara perlahan karena memantul di sekitar yang optimal, atau menyimpang seluruhnya. Tingkat belajar yang stabil dapat ditemukan ... tetapi melibatkan perhitungan hessian. Bahkan ketika menggunakan tingkat pembelajaran yang stabil, Anda dapat memiliki masalah seperti osilasi di sekitar yang optimal, yaitu Anda tidak akan selalu mengambil jalur "langsung" atau "efisien" menuju minimum. Jadi butuh banyak iterasi untuk mengakhiri, bahkan jikaAnda relatif dekat dengan itu. Metode BFGS dan Newton dapat konvergen lebih cepat meskipun upaya komputasi setiap langkah lebih mahal.

Untuk permintaan Anda akan contoh: Misalkan Anda memiliki fungsi objektif

F(x)=12xTSEBUAHx+dTx+c
Gradien adalah
F(x)=SEBUAHx+d
dan memasukkannya ke dalam bentuk keturunan paling curam dengan tingkat pembelajaran yang konstan
xk+1=xk-α(SEBUAHxk+d)=(saya-αSEBUAH)xk-αd.

Ini akan stabil jika besarnya vektor eigen dari saya-αSEBUAH kurang dari 1. Kita dapat menggunakan properti ini untuk menunjukkan bahwa tingkat pembelajaran yang stabil memuaskan

α<2λmSebuahx,
dimana λmSebuahx adalah nilai eigen terbesar dari SEBUAH. Laju konvergensi algoritma descent terjal dibatasi oleh nilai eigen terbesar dan rutin akan konvergen paling cepat ke arah vektor eigen yang sesuai. Demikian juga, ia akan konvergen paling lambat ke arah vektor eigen dari nilai eigen terkecil. Ketika ada perbedaan besar antara nilai eigen besar dan kecil untukSEBUAH, gradient descent akan lambat. Apa sajaSEBUAH dengan properti ini akan konvergen secara perlahan menggunakan gradient descent.

Dalam konteks spesifik jaringan saraf, buku Neural Network Design memiliki cukup banyak informasi tentang metode optimasi numerik. Diskusi di atas adalah kondensasi bagian 9-7.

Sycorax berkata Reinstate Monica
sumber
Jawaban bagus! Saya menerima jawaban @Dougal karena saya pikir ini memberikan penjelasan yang lebih sederhana.
Bar
6

Dalam optimasi cembung Anda memperkirakan fungsi sebagai polinomial tingkat kedua dalam kasus satu dimensi:

f(x)=c+βx+αx2

Dalam hal ini turunan kedua

2f(x)/x2=2α

Jika Anda tahu turunannya, maka mudah untuk menebak berikutnya untuk yang optimal:

Tebak=-β2α

Kasus multivarian sangat mirip, cukup gunakan gradien untuk turunan.

Aksakal
sumber
2

@Dougal sudah memberikan jawaban teknis yang bagus.

Penjelasan no-matematika adalah bahwa sementara pendekatan linier (orde 1) memberikan "bidang" yang tangensial ke titik pada permukaan kesalahan, pendekatan kuadratik (orde 2) menyediakan permukaan yang memeluk kelengkungan permukaan kesalahan.

Video pada tautan ini sangat membantu memvisualisasikan konsep ini. Mereka menampilkan orde 0, orde 1 dan orde 2 aproksimasi ke permukaan fungsi, yang secara intuitif memverifikasi apa jawaban lain hadir secara matematis.

Juga, posting blog yang bagus tentang topik (diterapkan pada jaringan saraf) ada di sini .

Zhubarb
sumber