Bonjour,

Ca fait quelques jours (semaines...) que je travaille pour implémenter l'algorithme RPROP dans mon réseau de neurones (1 couche d'entrée à 1 neurone, 1 couche cachée, 1 couche de sortie à 1 neurone).

Déja, j'ai pu lire que cet algo était utilisable uniquement en mode Batch (c'est à dire, on présente toute la base d'exemple; pour chaque exemple, on ajoute les erreurs pour chacun des neurones, puis ce n'est qu'une fois arrivé à la fin de la base d'apprentissage que l'on fait la modification des poids) ... Est-ce bien correct?


Pourriez-vous alors jeter un oeil à ce pseudo-code, qui pour l'instant, c'est bete de le dire, mais ne marche pas


Pour chaque exemple dans la base d'apprentissage:

Calcul de la valeur de chacun des neurones

Calcul des erreurs pour chacuns des neurones, en partant de la fin (comme pour de la rétropropagation...), par la formule : Erreur[neurone] = Erreur[neurone] + f ' (activité[neurone]) * Somme(k) [poids[neurone -> k] * valeur_neurone[k]

On met le tout dans la matrice de dérivées de l'erreur par rapport au poids W[i, j] (il suffit donc, par exemple pour le poids W[1, 4] (poids entre le neurone 1 et le neurone 4), de multiplier l'erreur du neurone 4 (arrivée) par la valeur du neurone 1 (départ))

(On fait de même pour les biais)

Si on atteint la fin de la base d'apprentissage, on applique l'algorithme RPROP (celui de base), puis on remet à 0 toutes les valeurs des erreurs de chaque neurone



Un grand merci pour votre aide!

Eric