Bonjour,
Grâce au tuto http://alp.developpez.com/tutoriels/...x-de-neurones/, j'ai réussi à écrire mon propre réseau perceptron avec un nombre de couches variable, mais je n'ai pas bien compris certaines choses :
Dans le cadre d'un apprentissage supervisé,
1)
Lors de la rétropropagation du gradient :
on calcule les deltas des neurones de la couche de sortie par la formule suivante : sortieObtenue * (1 - sortieObtenue) * (sortieAttendue - sortieObtenue)
et on calcule les deltas des neurones des couches cachées par la formule suivante : sortieObtenue * (1 - sortieObtenue) * somme des erreurs des neurones de la couche suivante, pondérée par le poids reliant ce neurone au suivant.
Je ne sais pas d'où sortent ces formules, sont-elles là parce que j'ai utilisé la fonction d'activation sigmoide ?
(j'ai d'ailleurs lu qu'il serait utile qu'elle se dérive, mais je ne vois sa dérivée nul part, j'ai loupé quelque chose ?)
2)
Si je change ma fonction d'activation de sigmoide à heavy-side, mon réseau ne converge plus pour l'exemple du XOR. Changer la fonction d'activation implique d'autres changements ? ou c'est une erreur dans mon code (que je peux founir si vous voulez lire) ?
Si quelqu'un pouvait m'éclairer, ce serait super.
Merci !
Partager