Bonjour
Je commence un peu à exploiter les perceptrons, histoire de voir ce qu'on peut faire avec, mais je bloque sur l'apprentissage (j'utilise l'algo de Widrow-Hoff)
Donc si j'ai bien compris, l'algo marche avec un set d'exemple, on lui présente des valeurs en entrée, ce qu'on veut en sortir et l'algo fait progressivement converger le neurone vers cette sortie.
J'ai essayé avec un seul neurone de lui apprendre n'importe quel fonction logique (sauf XOR), mais les résultats sont pas très concluant
Voilà comme je procède :
Je lui fais passer ma liste d'exemple, je force les deux entrée de mon neurone aux valeurs de l'exemple, je calcule la sortie et je modifie les poids des entrée de tel manière :
poid(i) += alpha * (Résultat - RésulatExemple) * Entrée(i)
Le calcul de la sortie se fait comme ça : (w0 est traité indépendamment, donc il n'est pas modifié par l'algo)
Code :
- In=0;
- pour i=0,NbEntrée
- In+= Entrée(i)*Poid(i);
- fin
- In-=Threshold; // w0
- Sortie = 1.0 / (1.0 + e^-(In)); // Formule sigmoïde
|
Ce qui m'étonne, c'est que dans les algos que j'ai vu, le threshold n'est jamais modifié, ou alors il y a un truc que j'ai très mal pigé
L'exemple (pour un ou) :
A B S
-1 -1 -1
-1 1 1
1 -1 1
1 1 1
Merci pour vos lumière
Message édité par Terminapor le 20-01-2013 à 12:54:47
---------------
Perhaps you don't deserve to breathe