rétropropagation du gradient

L'appliquette présentée ci-dessous permet de créer un perceptron à 1, 2 ou 3 couches et de tester l'algorithme de rétropropagation du gradient.

but

On cherche à approcher des fonctions de [-1,+1] dans R.

Les couches d'entrée et de sortie ne contiennent qu'un neurone.

choix de la fonction à approcher

le menu de gauche permet de choisir entre 3 fonctions (polynomes ou sinusoïdes) ; le bouton "param fonc." permet de modifier les paramètres de ces fonctions.

La fonction est tracée en bleu. La sortie du perceptron en rouge.

contraintes. essayez de choisir des fonctions prenant des valeurs entre 0 et 1 dans l'intervalle [-1,1] (la fonction de transfert prend justement des valeurs entre 0 et 1). Les valeurs min et max sont indiquées dans la zône de tracé. Un de ces jours on rajoutera des axes, c'est promis.

configuration du perceptron

une fois sélectionné le nombre de couches, et le nombre de neurones dans chaque couche, le bouton OK permet de configurer le perceptron correspondant. Il apparaît alors au bas de l'écran. Chaque neurone est représenté par une colonne de cases contenant les poids des synapses entrants, une case contenant le paramètre correctif, une case contenant la valeur de la sortie.

Rappel : la couche d'entrée n'est pas comptée dans le nombre de couches.

fonction de transfert :

la fonction de transfert tfj des neurones peut être

Cette fonction est la même pour tous les neurones d'une couche.

Démarrage de l'algorithme.

Après la configuration du perceptron, il est conseillé d'initialiser les paramètres (bouton init paramètres).

Le bouton "start" permet de démarrer l'algorithme . Toutes les 50 corrections, le résultat est superposé (en rouge) au graphique. Le bouton stop permet d'interrompre le calcul et de retracer le dernier résultat.

La fonction à approcher et les paramètres de controle de l'algorithme peuvent être modifiés en cours de calcul (bouton config algo).

Quelques conseils

commencez par approcher une fonction linéaire (par exemple, .5 + .4 x) avec un perceptron à une couche. Augmentez ensuite le nombre de couches et essayez :

(1 + sin (3x + 2)) / 2

faites varier alpha : des valeurs petites sont en principe conseillées (encore que je n'ai pas bien compris la justification théorique) mais10 permet une convergence rapide d'après mon expérience si la fonction de sortie n'est pas linéaire.

Essayez de ne pas tomber dans les minima locaux. Comment faire ? Je me contenterai de vous souhaiter bonne chance.


Bon, je vous préviens, le temps de chargement peut être assez long. Alors, armez-vous de patience, on tâchera de résoudre ce problème prochainement. Et si tel soeur Anne vous ne voyez rien venir, affichez la console java (menu option si vous utilisez netscape), et envoyez-moi une copie du message d'insultes.

FONT color="red">ET VOILA!!!! Votre navigateur ne connait pas java, vous ne pourrez pas essayer l'appliquette. Voici une image qui vous donne un faible aperçu .


merci d'avance pour vos commentaires.

retour page principale