Pelatihan jaringan saraf konvolusi

11

Saat ini saya sedang mengerjakan perangkat lunak pengenal wajah yang menggunakan jaringan saraf konvolusi untuk mengenali wajah. Berdasarkan bacaan saya, saya telah mengumpulkan bahwa jaringan saraf convolutional telah berbagi bobot, sehingga menghemat waktu selama pelatihan. Tapi, bagaimana cara mengadaptasi backpropagation sehingga dapat digunakan dalam jaringan saraf konvolusi. Dalam backpropagation, seseorang menggunakan formula yang mirip dengan ini untuk melatih bobot.

New Weight  = Old Weight +  LEARNING_RATE * 1 * Output Of InputNeuron * Delta

Namun, karena dalam jaringan saraf convolutional, bobot dibagi, masing-masing berat digunakan dengan beberapa neuron, jadi bagaimana saya memutuskan mana Output of InputNeuronyang digunakan?

Dengan kata lain, karena bobot dibagi, bagaimana saya memutuskan berapa banyak untuk mengubah bobot?

diwgan32
sumber

Jawaban:

13

Pertama-tama Anda harus menghitung semua pembaruan seolah-olah wieghts tidak dibagikan, tetapi simpan saja, jangan lakukan pembaruan apa pun.

Biarkan menjadi bobot yang muncul di lokasi di jaringan Anda dan mana adalah tingkat pembelajaran dan adalah fungsi tujuan Anda. Perhatikan bahwa pada titik ini jika Anda tidak berbagi bobot, Anda hanya akan meningkatkan sebagai Untuk menangani bobot bersama, Anda perlu meringkas semua pembaruan individual. Jadi atur dan kemudian perbarui wkIk={(i,j):wi,j=wk}Δwi,j=ηJwi,jηJwi,j

wi,j=wi,j+Δwi,j.
Δwk=(i,j)IkΔwi,j
wk=wk+Δwk.
alto
sumber
1
Apakah Anda punya referensi untuk ini? Untuk bacaan lebih lanjut
Jon