Mengapa bobot Neural Networks diinisialisasi dengan angka acak?

9

Mengapa jaringan saraf bobot awal diinisialisasi sebagai angka acak? Saya telah membaca di suatu tempat bahwa ini dilakukan untuk "memecahkan simetri" dan ini membuat jaringan saraf belajar lebih cepat. Bagaimana cara memecahkan simetri membuatnya belajar lebih cepat?

Bukankah menginisialisasi bobot ke 0 adalah ide yang lebih baik? Dengan begitu bobot akan dapat menemukan nilai-nilainya (baik positif atau negatif) lebih cepat?

Apakah ada beberapa filosofi mendasar lainnya di balik pengacakan bobot selain dari berharap bahwa mereka akan mendekati nilai optimalnya ketika diinisialisasi?

Shayan RC
sumber

Jawaban:

6

Intuisi dasar di balik menginisialisasi lapisan-lapisan berat menjadi nilai-nilai kecil (dan berbeda) hanyalah agar bias sistem terputus dan nilai-nilai bobot dapat bergerak sepanjang dan menjauh dan terpisah ke nilai-nilai yang berbeda.

Lebih konkret, Anda mungkin ingin bobot awal Anda menjadi berbeda dan memiliki "celah kecil" di antara mereka, 'celah' ini melebar saat Anda berjalan dan memaksa bobot menjadi sedikit lebih besar di setiap iterasi, dan ini membantu jaringan untuk konvergen lebih cepat, yaitu proses belajar mempercepat.

Jika Anda sebaliknya memiliki semua bobot Anda ke beberapa konstan, setiap bobot akan diperbarui pada tingkat yang sangat lambat (~ tetap), dan ini tidak akan banyak membantu, khususnya jika nilai awal 'sangat jauh' dari nilai akhir.

Semoga itu bisa membantu, Selamat belajar :)

Subhayan
sumber
Jadi yang Anda katakan adalah mengacak bobot awal setara dengan memberikan setiap bobot dorongan ke arah yang dibutuhkan untuk bergerak (dan celah untuk mengembang).
Shayan RC
Saya tidak berpikir itu perlu berada di arah yang benar, Anda mungkin juga mulai dengan bobot init [-0,5, +0,5] di mana nilai akhir mungkin [+0,5, -0,5], ide utamanya adalah memiliki nilai yang berbeda ..
Subhayan
Sudah lebih dari setahun sejak saya bekerja dengan NNs, jadi saya berbicara dengan tangan bergelombang, tolong beri tahu saya jika Anda ingin matematika dibaliknya. tapi saya pikir lebih penting untuk mendapatkan intuisi di sini, matematika cukup banyak tersedia di mana-mana .. :)
Subhayan
Matematika di balik itu akan membantu tetapi lebih bermanfaat adalah beberapa saran praktis: Seperti seberapa kecil bobot awalnya (10 ^?) Bagaimana perbedaannya untuk berbagai jenis jaringan? Apakah ada semacam angka ajaib yang cocok untuk semua?
Shayan RC