Mengapa backpropagation tidak berfungsi saat Anda menginisialisasi bobot dengan nilai yang sama?

20

Mengapa backpropagation tidak berfungsi saat Anda menginisialisasi semua bobot dengan nilai yang sama (katakanlah 0,5), tetapi berfungsi dengan baik ketika diberi angka acak?

Bukankah seharusnya algoritma menghitung kesalahan dan bekerja dari sana, meskipun faktanya bobot awalnya sama?

pengguna1724140
sumber

Jawaban:

26

Pemecahan simetri.

Jika semua bobot dimulai dengan nilai yang sama dan jika solusi mengharuskan bobot yang tidak sama dikembangkan, sistem tidak akan pernah bisa belajar.

Ini karena kesalahan disebarkan kembali melalui bobot secara proporsional dengan nilai bobot. Ini berarti bahwa semua unit tersembunyi yang terhubung langsung ke unit output akan mendapatkan sinyal kesalahan yang identik, dan, karena perubahan berat tergantung pada sinyal kesalahan, bobot dari unit tersebut ke unit output harus selalu sama. Sistem ini memulai pada semacam titik kesetimbangan tidak stabil yang menjaga bobot tetap sama, tetapi lebih tinggi dari beberapa titik tetangga di permukaan kesalahan, dan begitu ia pindah ke salah satu titik ini, ia tidak akan pernah kembali. Kami mengatasi masalah ini dengan memulai sistem dengan bobot acak kecil. Dalam kondisi ini masalah simetri semacam ini tidak muncul.

Ini
sumber
Jadi bobot awal suatu NN tidak hanya menentukan kecepatan kereta itu, tetapi juga bisa menjadi penyebab pembelajaran atau tidaknya belajar?
user1724140
2
Ya, kadang-kadang, kami tidak hanya melatih (Jaringan Saraf Tiruan misalnya) hanya dengan satu set berat. Satu hal yang umum dilakukan, jika kita punya waktu, adalah membuat beberapa konfigurasi bobot awal yang berbeda dan melatih jaringan di atasnya. Karena beberapa kali, dapat terjadi bahwa satu konfigurasi akan berakhir pada optima lokal atau sayangnya beratnya tidak benar-benar acak.
ThiS
Bukankah ini salah, karena input yang berbeda masih dapat memecah simetri. lihat: open.wolframcloud.com/env/…
user3180
12

RnR

Apa yang Anda inginkan itu minimum global, tetapi Anda tidak memiliki cara yang pasti untuk menemukannya. Dan jika permukaan Anda memiliki beberapa minimum lokal maka Anda mungkin dalam kesulitan.

Tetapi jika hanya memiliki sedikit maka strategi Thierry harus bekerja - melakukan beberapa pencarian untuk minimum lokal dengan mulai dari titik yang dipilih secara acak akan meningkatkan peluang Anda menemukan minimum global.

Dan dalam kasus bahagia di mana hanya ada satu minimum - setiap vektor bobot awal akan mengarahkan Anda ke sana.

Rohit Chatterjee
sumber