Perbedaan dalam menggunakan gradien dan gradien yang dinormalisasi


15

Dalam pengaturan umum algoritma gradient descent, kami memiliki mana adalah titik saat ini, adalah ukuran langkah dan adalah gradien dievaluasi pada . x n η g r a d i e n t x n x nxn+1=xn-ηgrSebuahdsayaentxnxnηgrSebuahdsayaentxnxn

Saya telah melihat dalam beberapa algoritma, orang menggunakan gradien yang dinormalisasi bukannya gradien . Aku ingin tahu apa perbedaan dalam menggunakan gradien normal dan hanya gradien .


1
Bisakah saya mengajukan pertanyaan? bagaimana saya bisa menghitung gradien yang dinormalisasi jika saya sudah mendapatkan vektor gradien? Jika vektor gradien adalah numerik besar, saya harus menormalkan gradien. Bisakah Anda memberikan beberapa contoh intuitif tentang normalisasi gradien? Terima kasih!

Jawaban:


11

Dalam algoritma gradient descent, algoritma melanjutkan dengan menemukan arah yang Anda bisa temukan solusi optimal. Arah optimal berubah menjadi gradien. Namun, karena kita hanya tertarik pada arah dan tidak perlu seberapa jauh kita bergerak di sepanjang arah itu, kita biasanya tidak tertarik pada besarnya gradien. Dengan demikian, gradien yang dinormalisasi cukup baik untuk tujuan kami dan kami membiarkan ηmenentukan seberapa jauh kita ingin bergerak ke arah yang dihitung. Namun, jika Anda menggunakan gradient descent yang tidak dinormalisasi, maka pada titik mana pun, jarak Anda bergerak ke arah optimal ditentukan oleh besarnya gradien (pada dasarnya ditentukan oleh permukaan fungsi tujuan yaitu titik pada permukaan curam akan memiliki magnitudo tinggi sedangkan titik pada permukaan yang cukup rata akan memiliki magnitudo rendah).


η
η
3] Jika Anda ingin membiarkan besarnya gradien menentukan ukuran langkah, maka Anda akan menggunakan gradient descent yang tidak dinormalisasi. Ada beberapa varian lain seperti Anda dapat membiarkan besarnya gradien menentukan ukuran langkah, tetapi Anda meletakkan topi di atasnya dan seterusnya.

Sekarang, ukuran langkah jelas memiliki pengaruh pada kecepatan konvergensi dan stabilitas. Manakah dari langkah langkah di atas yang berfungsi paling baik tergantung murni pada aplikasi Anda (yaitu fungsi objektif). Dalam kasus-kasus tertentu, hubungan antara kecepatan konvergensi, stabilitas dan ukuran langkah dapat dianalisis. Hubungan ini kemudian dapat memberikan petunjuk apakah Anda ingin pergi dengan gradient descent yang dinormalisasi atau tidak.

Untuk meringkas, tidak ada perbedaan antara gradient descent yang dinormalisasi dan tidak dinormalisasi (sejauh teori di balik algoritma berjalan). Namun, ini memiliki dampak praktis pada kecepatan konvergensi dan stabilitas. Pilihan satu di atas yang lain murni berdasarkan pada aplikasi / tujuan yang ada.


Anda bisa mengambil pendekatan perantara di mana Anda menormalkan berdasarkan gradien pertama, misalnya. Ini masih akan membuat ukuran ukuran gradien relatif dalam hal ukuran langkah.
dashnick


2

f(x)=xTxy(t)=x0/||x0||e-t. Jadi, norma gradien menurun secara eksponensial saat Anda mendekati titik kritis. Dalam kasus seperti itu, sering kali lebih baik untuk memantulkan bolak-balik melintasi min beberapa kali daripada mendekatinya dengan sangat lambat. Secara umum, metode urutan pertama diketahui memiliki konvergensi yang sangat lambat di sekitar titik-titik kritis sehingga Anda seharusnya tidak benar-benar menggunakannya jika Anda benar-benar peduli dengan akurasi. Jika Anda tidak dapat menghitung Hessian dari tujuan Anda secara analitis, Anda masih dapat memperkirakannya (BFGS).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.