Perbedaan antara peluruhan berat bersih saraf dan tingkat pembelajaran

94

Dalam konteks jaringan saraf, apa perbedaan antara tingkat belajar dan penurunan berat badan?

Ryan Zotti
sumber

Jawaban:

161

Tingkat pembelajaran adalah parameter yang menentukan seberapa besar langkah pembaruan mempengaruhi nilai bobot saat ini. Sementara peluruhan berat adalah istilah tambahan dalam aturan pembaruan bobot yang menyebabkan bobot meluruh secara eksponensial ke nol, jika tidak ada pembaruan lain yang dijadwalkan.

Jadi katakanlah kita memiliki fungsi biaya atau kesalahan yang ingin kita perkecil. Keturunan gradien memberitahu kita untuk memodifikasi bobot ke arah penurunan paling curam di : mana adalah tingkat pembelajaran, dan jika itu besar Anda akan memiliki modifikasi bobot yang sesuai dengan (secara umum itu tidak boleh terlalu besar, jika tidak Anda akan melampaui batas minimum lokal dalam fungsi biaya Anda).E(w)wE

wsayawsaya-ηEwsaya,
ηwsaya

Agar secara efektif membatasi jumlah parameter bebas dalam model Anda sehingga untuk menghindari pemasangan yang berlebihan, dimungkinkan untuk mengatur fungsi biaya. Cara mudah untuk melakukannya adalah dengan memperkenalkan Gaussian mean nol sebelum bobot, yang setara dengan mengubah fungsi biaya menjadi . Dalam praktiknya ini menghukum bobot yang besar dan secara efektif membatasi kebebasan dalam model Anda. Parameter regularisasi menentukan bagaimana Anda menukar biaya asli dengan penalti bobot yang besar.E~(w)=E(w)+λ2w2λE

Menerapkan penurunan gradien ke fungsi biaya baru ini, kami memperoleh: Istilah baru berasal dari regularisasi menyebabkan bobot membusuk secara proporsional dengan ukurannya.

wsayawsaya-ηEwsaya-ηλwsaya.
-ηλwsaya
mrig
sumber
2
Terima kasih atas penjelasan yang bermanfaat. Sebuah pertanyaan: dalam paket "nnet" R ada parameter yang digunakan dalam pelatihan jaringan saraf yang disebut "peluruhan". Apakah Anda tahu jika pembusukan sesuai dengan lambda Anda atau eta * lambda Anda?
Andrea Ianni ௫
3
Saya juga akan menambahkan bahwa pembusukan berat adalah hal yang sama dengan regularisasi L2 bagi mereka yang akrab dengan yang terakhir.
Sergei
2
@Sergei tolong jangan, berhenti sebarkan informasi yang salah ini! Ini hanya berlaku dalam kasus vanilla SGD yang sangat spesial. Lihat Memperbaiki pembusukan berat untuk kertas Adam .
LucasB
Untuk mengklarifikasi: pada saat penulisan, dokumen PyTorch untuk Adam menggunakan istilah "pembusukan berat badan" (biasanya disebut "penalti L2") untuk merujuk pada apa yang menurut saya penulis sebut regulasi L2. Jika saya mengerti benar, jawaban ini mengacu pada SGD tanpa momentum, di mana keduanya setara.
Dylan F
14

Selain jawaban @ mrig (+1), untuk banyak aplikasi praktis jaringan saraf, lebih baik menggunakan algoritma pengoptimalan yang lebih canggih, seperti Levenberg-Marquardt (jaringan berukuran kecil) atau skala penurunan gradien konjugat berskala (sedang-besar) jaringan), karena ini akan jauh lebih cepat, dan tidak perlu mengatur tingkat pembelajaran (kedua algoritma pada dasarnya menyesuaikan tingkat pembelajaran menggunakan kelengkungan serta gradien). Paket atau pustaka jaringan saraf yang baik akan memiliki implementasi dari salah satu metode ini, paket apa pun yang tidak mungkin usang. Saya menggunakan perpustakaan NETLAB untuk MATLAB, yang merupakan bagian dari kit.

Dikran Marsupial
sumber
Bagaimana dengan algo optimasi berbasis Rprop? Bagaimana mereka menumpuk?
power
4
Saya pikir kebanyakan orang menggunakan varian rprop + momentum seperti RMSProp, adagrad, SGD + nesterov momentum. Lihat kelas cs231 .
facuq
1
Yah, tentu saja itu tergantung pada aplikasi Anda. Tetapi untuk dataset / jaringan besar yang agak trendi sekarang, saya pikir orang menemukan algoritma yang saya sebutkan lebih cocok.
facuq
6
@DikranMarsupial mungkin karena saat ini (hampir lima tahun setelah jawaban Anda) orang cenderung menggunakan Adam?
ComputerScientist
2
Memang jawaban ini sangat ketinggalan zaman. Algoritma ini tidak praktis dengan skala model dan dataset yang khas saat ini, dan paket yang paling banyak digunakan, yang tentu saja tidak usang, kekurangan algoritma ini.
LucasB