CodeBase - Neuronal network type perceptron

Return to the CodeBase listing

Category: Complete Applications

Version: 1.0

1
0

Information

Uploaded: 2nd Aug 2011 04:33

Modified: 1st Jan 1970 01:00

Author:  Atbidal

Summary

This program can learn some symbol like alphabet and reconize a symbol writer. If symbol a is learn, and you write a different, He reconize symbol a

Full Description

Code pour darkBasic Pro<br /> <br /> Alors voila, mes petits travaux du mois de janvier<br /> m'ont ammené sur les réseaux neuronaux.<br /> Je vous propose ici un reseau type perceptron.<br /> Si vous présentez des exemple au perceptron,<br /> il sera capable de les apprendres. Si maintenant vous lui<br /> donnée un exemple voisin, il sera capable de l'associer avec ce<br /> qu'il connait (si bien sur le reseau est bien configuré)<br /> Prenons un exemple pour le faire fonctionner.<br /> Dessinez dans paint ou autre une image (en 12 x 15)<br /> Dessinez un a (en noir)<br /> enregistrez le à la racine du programme<br /> faites une nouvelle image (b) puis c puis d<br /> les fichiers auront pour nom a.bmp b.bmp c.bmp d.bmp<br /> <br /> Au lancement, notepad se lance (désolé, j'utilise chez moi une dll payante pour les fenetres)<br /> taper dans notepad : (attention aux minuscules/majuscules)<br /> <br /> CINOB 0 a.bmp<br /> CINOB 1 b.bmp<br /> CINOB 2 c.bmp<br /> CINOB 3 d.bmp<br /> fin<br /> <br /> enregistrez sous _console_.txt à la racine du prog<br /> CINOB veut dire Charge Image Noir Ou blanc<br /> Donc on vient de charger a.bmp dans le layer 0<br /> b.bmp dans le layer 1 ...<br /> Maintenant, on va créer le reseau<br /> retourner dans notepad<br /> effacez tout<br /> tapez<br /> <br /> CRBack 0 180 8 10 4 sigmoide<br /> MPA 0 0.6<br /> graphe 3<br /> CONR 0 254 0<br /> fin<br /> <br /> faites control+S (ou sauvegarde)<br /> Le programme travail un certain temps<br /> Une fois terminé, si vous clicker sur oreille droite,<br /> vous pouvez vous deplacer autour du reseau (avec fleches et maintient bouton droit).<br /> les petits neurones sont les neurones d'entrées. Les neurones de sortie sont bleus<br /> Plus le bleu est brillant, plus il est proche de la valeur 1.<br /> Pour cet exemple, la lettre a attendra comme resultat 1 0 0 0<br /> le b : 0 1 0 0<br /> le c : 0 0 1 0<br /> le d : 0 0 0 1<br /> <br /> Les fils sont les liaisons. Les liaisons d'entree sont simplement representé par un fil bleu (de travers... oup's)<br /> CRBack veut dire Creer reseau backpropagation<br /> 0 est le numero du reseau<br /> 180 c'est tous simplement 12 x 15<br /> 6 c'est le nombre de neurones d'entrée<br /> 8 neurones cachés<br /> 4 neurone de sortie. Ce chiffre doit etre égale au nombre de lettre que vous voulez lui<br /> faire apprendre...<br /> sigmoide c'est la fonction de transfert<br /> MPA veut dire Modifier Pas Apprentissage<br /> 0 est le n° du reseau<br /> 0.6 est la valeur du pas<br /> graphe 3 pour tracer l'erreur du reseau. le rouge est l'erreur moyenne<br /> CONR c'est CONsulte Reseau.<br /> 0 : n° du reseau<br /> 254 c'est le n° du stimulis (laisser tjs à 254)<br /> et 0 c'est notre layer a<br /> On peut voir que les sortie sont toute éclairées à peut pres pareilles<br /> <br /> Il ne nous reste plus qu'a lui faire apprendre les lettres<br /> retour dans notepad<br /> on efface tout<br /> <br /> APPR 280 0 0 254<br /> fin<br /> <br /> control+S pour sauver<br /> APPR comme apprendre<br /> 280 c'est le nombre de fois (70 fois 4 layer)<br /> 0 c'est le numero du reseau<br /> 0 pour une presentation ordonee<br /> (-1 pour dire que l'on veut une presentation aléatoire des layers)<br /> 254 c'est le stimulis<br /> <br /> Maintenant, le reseau apprend. Ca peut etre tres long (qq minutes)<br /> Une fois terminé,<br /> aller dans notepad, effacer tout puis ecrivez<br /> <br /> CONR 0 254 0<br /> fin<br /> <br /> Le reseau repond correctement. Le neurone de sortie n°1 correspond au layer 0<br /> Le neurone est plus éclairé que les autres<br /> essayez<br /> <br /> CONR 0 254 1<br /> fin<br /> <br /> puis<br /> <br /> CONR 0 254 2<br /> fin<br /> <br /> CONR 0 254 3<br /> fin<br /> <br /> voila, le reseau fait la difference entre a b c et d<br /> <br /> Il peut être modifier selon le nombre de chose à apprendre.<br /> Pour ceux qui ne connaissent pas du tout les neurones,<br /> RDV dans le turorial de Newbieone Kenooby volet 1 (dans le forum)<br /> <br /> Pour ce perceptron, la fonction de transfert des neurones est une fonction<br /> sigmoide (ou logistique). Elle renvoie une valeur comprise entre -1 et 1<br /> Les poids sont répartis au depart aléatoirement entre -1 et 1 (mais ils peuvent prendre toutes valeurs)<br /> <br /> Vous pouvez essayer de modifier le pas d'apprentissage et observer sur la barre d'erreur ce qui se passe<br /> Essayer -1 à la place de 0 dans APPR, la presentation des layers sera aléatoire. Il y a des inconvenients<br /> mais aussi des avantages<br /> Ne vous fiez pas trop au graphe avec -1 dans l'apprentissage<br /> Le programme n'a aucun parachute. En clair, une commande mal renseignée fera sans doute planter le programme...<br /> <br /> ?<br /> fin<br /> <br /> pour l'aide<br /> <br /> Si le programme n'arrive plus a se lancer, effacer _console_.txt<br /> je n'ai pas terminé cette partie<br /> et bien d'autres encore<br /> Si vous faites des améliorations à ce programme, merci de les poster sur<br /> ce forum, pour faire avancer le schmilblik

Comments

No comments yet.