Quelqu'un peut-il expliquer l'algorithme de rétropropagation? [dupliquer]

13

Qu'est-ce que l'algorithme de rétropropagation et comment fonctionne-t-il?

Suis-je
la source
1
J'ai mis en place une réponse à cette question ici si quelqu'un est intéressé (je ne voulais pas republier).
Phylliida

Réponses:

14

L'algorithme de rétropropagation est un algorithme de descente de gradient pour ajuster un modèle de réseau neuronal. (comme mentionné par @Dikran) Permettez-moi d'expliquer comment.

Formellement: L' utilisation du calcul du gradient à la fin de ce post dans l'équation [1] ci-dessous (c'est-à-dire une définition de la descente du gradient) donne l'algorithme de propagation inverse comme cas particulier de l'utilisation d'une descente de gradient.

Un modèle de réseau neuronal Formellement, nous fixons les idées avec un modèle simple à couche unique:

g : RR et s : R MR M sont connus avec pour tout m = 1 , M , s ( x ) [ m ] = σ ( x [ m ] ) , et

f(x)=g(A1(s(A2(x))))
g:RRs:RMRMm=1,Ms(x)[m]=σ(x[m]) , A 2 R pR M sont des fonctions affines inconnues. La fonction σ : RR est appelée fonction d'activation dans le cadre de la classification.A1:RMRA2RpRMσ:RR

Une fonction de perte quadratique est prise pour fixer les idées. Ainsi, les vecteurs d' entrée de R p peuvent être ajustés à la sortie réelle ( y 1 , , y n ) de R (pourraient être des vecteurs) en minimisant la perte empirique: R n ( A 1 , A 2 ) = n i = 1 ( y i - f ( x(x1,,xn)Rp(y1,,yn)R qui concerne le choix de A 1 et A 2 .

Rn(A1,A2)=i=1n(yif(xi))2[1]
A1A2

R

al+1=alγlR(al), l0.
(γl)lRal=(Al1,Al2)

R1RRA12RRA2zi=A1(s(A2(xi)))

1R[1:M]=2×i=1nzig(zi)(yif(xi))
m=1,,M
2R[1:p,m]=2×i=1nxig(zi)zi[m]σ(A2(xi)[m])(yif(xi))

x[a:b]xab

Robin Girard
la source
11

La rétroproposition est un moyen de déterminer la dérivée de la fonction d'erreur par rapport aux poids, afin que le modèle puisse être formé par des méthodes d'optimisation de descente de gradient - il s'agit essentiellement de l'application de la "règle de chaîne". Il n'y a pas vraiment plus que cela, donc si vous êtes à l'aise avec le calcul, c'est fondamentalement la meilleure façon de le voir.

Si vous n'êtes pas à l'aise avec le calcul, une meilleure façon serait de dire que nous savons à quel point les unités de sortie font mal parce que nous avons une sortie souhaitée avec laquelle comparer la sortie réelle. Cependant, nous n'avons pas de sortie souhaitée pour les unités cachées, alors que faisons-nous? La règle de rétropropagation est essentiellement un moyen de propager le blâme pour l'erreur des unités de sortie sur les unités cachées. Plus une unité cachée a d'influence sur une unité de sortie particulière, plus elle est responsable de l'erreur. Le blâme total associé à une unité cachée donne alors une indication de la quantité de poids de la couche entrée-cachée à changer. Les deux choses qui régissent la quantité de reproches sont le poids reliant les poids de la couche cachée et de sortie (évidemment) et la sortie de l'unité cachée (si elle crie plutôt que chuchote, elle aura probablement une plus grande influence). Le reste n'est que les subtilités mathématiques qui transforment cette intuition en dérivée du critère de formation.

Je recommanderais également le livre des évêques pour une bonne réponse! ; o)

Dikran Marsupial
la source
2

C'est un algorithme pour la formation de réseaux de neurones multicouches à action directe (perceptrons multicouches). Il existe plusieurs jolies applets java sur le Web qui illustrent ce qui se passe, comme celle-ci: http://neuron.eng.wayne.edu/bpFunctionApprox/bpFunctionApprox.html . En outre, le livre de Bishop sur les NN est la référence de bureau standard pour tout ce qui concerne les NN.

Stephen Turner
la source
En essayant de créer un référentiel permanent d'informations statistiques de haute qualité sous forme de questions et réponses, nous essayons d'éviter les réponses liées uniquement aux liens . Si vous le pouvez, pourriez-vous développer cela, peut-être en donnant un résumé des informations sur le lien?
Glen_b -Reinstate Monica