Si vous avez déjà testé ce genre de logiciel (un réseau de neurones : RN), vous vous êtes sans doute déjà demandé combien de couches votre RN devait avoir, combien de neurones pour chaque couche, combien d'itérations, et d'autres questions encore : c'est inutile de se prendre la tête avec tout ces détails lorsque un méta-RN peut précisément faire à votre place les différents tests que vous feriez pour y répondre.
Le principe du méta-RN est testé avec le XOR : de meilleures configurations avec les paramètres Alpha, Eta et le gain permettent un apprentissage fiable avec moins d'itérations : ça va 100 fois plus vite et la fonction exp() n'est plus utilisée pour la fonction d'activation !
Une généralisation aux autres démos est prévue dans une prochaine version.
Source / Exemple :
Le .zip est là maintenant !
Conclusion :
Au début le .zip ne se trouvait que dans le projet IALib du IALab : "IA : le Laboratoire virtuel" :
www.vbfrance.com/projetcommun.asp?ID=20
mais comme il est inaccessible depuis quelques mois, je le remet ici.
Chaque version aboutie sera mise à jour dans le post original :
Perceptron multicouche et martingale pour le loto
www.vbfrance.com/code.aspx?ID=2181
Version de base :
www.vbfrance.com/code.aspx?ID=5612
Doc en ligne :
http://patrice.dargenton.free.fr/ia/ialab/rnautoconfigurant.html
Version de base :
http://patrice.dargenton.free.fr/ia/ialab/perceptron.html
2 oct. 2009 à 07:37
j'aimerai bien essayer ce code pour essayer de discriminer des signatures,
je dispose des files de signatures avec tous les points (x,y) capturés à une fréquence donnée et y compris la pression , avec 5 files de signature par signataires, comment entrainer le perceptron a reconnaitre les signatures ?
une idée un conseil ?
Merci
31 janv. 2004 à 09:39
31 janv. 2004 à 09:37
10 janv. 2003 à 09:54
IA : RN : VBPerceptron : le code le + simple possible en VB6 & VB .Net
http://www.vbfrance.com/article.aspx?Val=7015
30 mai 2002 à 09:36
m_aCouches(m_prm.iNbCouches - 1).aNeurones(i).rErreur = m_prm.rGainSignal * rSignal * (1 - rSignal) * rDelta
et
m_aCouches(i).aNeurones(j).rErreur = m_prm.rGainSignal * rSignal * (1! - rSignal) * rErreur
Il faut dont également modifier ces deux fonctions si on change la fonction d'activation. Le problème, c'est que les fonctions à seuil ne sont pas dérivables, certains proposent des astuces pour palier à cela, mais en tout cas, il faut faire attention à ce point si on veut que l'apprentissage se passe bien (ce qui veut dire que l'on peut faire en sorte que le RN marche mieux). Par ailleurs, d'autres algos utilisent un biais afin d'améliorer l'apprentissage (pour éviter que la sortie des neurones reste bloquée à zéro), cet algo ne tient pas compte du biais pour le moment.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.