Mengapa inisialisasi bobot dan bias dipilih sekitar 0?


13

Saya membaca ini:

Untuk melatih jaringan saraf kita, kita akan menginisialisasi setiap parameter W (l) ijWij (l) dan setiap b (l) ibi (l) ke nilai acak kecil mendekati nol (katakan menurut Normal (0, ϵ2) Normal (0 , ϵ2) distribusi untuk beberapa ϵϵ kecil, katakan 0,01)

dari Stanford Deep, tutorial pembelajaran di paragraf ke-7 dalam Algoritma Backpropagation

Yang tidak saya mengerti adalah mengapa inisialisasi bobot atau bias harus sekitar 0 ?

Jawaban:


11

Dengan asumsi normalisasi data yang cukup masuk akal, harapan bobot harus nol atau dekat dengannya. Maka mungkin masuk akal untuk mengatur semua bobot awal menjadi nol karena bobot awal positif akan semakin jauh jika bobot sebenarnya dan sebaliknya visa. Namun, ini tidak berhasil. Jika semua bobotnya sama, mereka semua akan memiliki kesalahan yang sama dan model tidak akan belajar apa pun - tidak ada sumber asimetri antara neuron.

Apa yang bisa kita lakukan, sebaliknya, adalah menjaga bobotnya sangat dekat dengan nol tetapi membuatnya berbeda dengan menginisialisasi mereka ke angka kecil, bukan nol. Inilah yang disarankan dalam tutorial yang Anda tautkan. Ini memiliki keuntungan yang sama dari inisialisasi semua-nol dalam hal itu dekat dengan nilai harapan 'tebakan terbaik' tetapi simetri juga telah cukup rusak untuk algoritma untuk bekerja.

Pendekatan ini memiliki masalah tambahan. Belum tentu benar bahwa angka yang lebih kecil akan bekerja lebih baik, terutama jika jaringan sarafnya dalam. Gradien yang dihitung dalam backpropagation sebanding dengan bobot; bobot yang sangat kecil menyebabkan gradien yang sangat kecil dan dapat menyebabkan jaringan membutuhkan banyak, lebih lama untuk dilatih atau tidak pernah selesai.

sqrt(d)d[1d,1d]


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.