Training eines neuronalen Faltungsnetzwerks


11

Ich arbeite derzeit an einer Gesichtserkennungssoftware, die Faltungs-Neuronale Netze verwendet, um Gesichter zu erkennen. Aufgrund meiner Messwerte habe ich festgestellt, dass ein neuronales Faltungsnetzwerk gemeinsame Gewichte hat, um Zeit während des Trainings zu sparen. Aber wie passt man die Backpropagation an, damit sie in einem neuronalen Faltungsnetzwerk verwendet werden kann? Bei der Backpropagation verwendet man eine ähnliche Formel, um die Gewichte zu trainieren.

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

Da jedoch in Faltungs-Neuronalen Netzen die Gewichte geteilt werden, wird jedes Gewicht mit mehreren Neuronen verwendet. Wie entscheide ich also, welches Output of InputNeuronverwendet wird?

Mit anderen Worten, da die Gewichte geteilt werden, wie entscheide ich, um wie viel die Gewichte geändert werden sollen?

Antworten:


13

Sie müssen zuerst alle Ihre Updates so berechnen, als ob die Wieghts nicht geteilt würden, sondern sie nur speichern und noch keine Updates durchführen.

Sei ein Gewicht, das an den Stellen in Ihrem Netzwerk und wobei die Lernrate und Ihre Zielfunktion ist. Beachten Sie, dass Sie zu diesem Zeitpunkt, wenn Sie keine Gewichtsverteilung hätten, nur als aktualisieren würden Um mit den gemeinsamen Gewichten fertig zu werden, müssen Sie alle einzelnen Aktualisierungen zusammenfassen. Setzen Sie also und aktualisieren dann 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.

1
Haben Sie Referenzen dazu? Zur weiteren Lektüre
Jon
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.