Formation d'un réseau de neurones à convolution

11

Je travaille actuellement sur un logiciel de reconnaissance faciale qui utilise des réseaux de neurones à convolution pour reconnaître les visages. Sur la base de mes lectures, je me suis rendu compte qu'un réseau de neurones convolutionnels a partagé des poids, afin de gagner du temps pendant l'entraînement. Mais comment adapter la rétropropagation pour qu'elle puisse être utilisée dans un réseau neuronal à convolution. En rétropropagation, on utilise une formule similaire à celle-ci pour entraîner les poids.

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

Cependant, puisque dans les réseaux de neurones convolutifs, les poids sont partagés, chaque poids est utilisé avec plusieurs neurones, alors comment puis-je décider lequel Output of InputNeuronest utilisé?

En d'autres termes, étant donné que les poids sont partagés, comment puis-je décider de la façon de changer les poids?

diwgan32
la source

Réponses:

13

Vous devez d'abord calculer toutes vos mises à jour comme si les attributs n'étaient pas partagés, mais simplement les stocker, ne faites pas encore de mise à jour.

wkjek={(je,j):wje,j=wk}Δwje,j=-ηJwje,jηJwje,j

wje,j=wje,j+Δwje,j.
Δwk=(je,j)jekΔwje,j
wk=wk+Δwk.
alto
la source
1
Avez-vous des références à ce sujet? Pour en savoir plus
Jon