e Voudaris Savoir Ce Que c

download e Voudaris Savoir Ce Que c

of 51

Transcript of e Voudaris Savoir Ce Que c

e voudaris savoir ce que c'est un apprentissage (rseaux de neurones) zro mmoire!! on utilise quoi comme algotithme gnralement? Merci franky* - 25 aot 2005 10:00 Salut, Je ne me souviens pas avoir dj entendu parler d'apprentissage zro mmoire, c'est d'autant plus bizarre que si ton rseau "apprend" qqch, c'est qu'il a une mmoire. Et cette mmoire, c'est simplement les poids des connexions. Les algorithmes d'apprentissage, pour un perceptron multi-couches, sont tous bass ( ma connaissance) sur la loi de Hebb, qui exprime le fait que 2 neurones qui travaillent ensemble voient leur liaison se renforcer. Ils sont galement tous quivalents un algorithme de descente de gradient (si tu as fait de la physique, a doit te parler). Et si tu veux plus d'informations, l'algorithme type s'appelle tout simplement algo de rtropropagation du gradient, ensuite, il en existe des variantes... Tout a doit se trouver sur internet. J'espre que a t'aidera, Franky* rachon - 6 dc. 2005 17:02 salut franky c'est sympa de ta part de vouloir nous aider on a cre moi et mon pote ce compte pour te contacter et si on ne reussi pas dans la programattion nous sommes dans la merde c'est un TP not et nous blocquons sur l'algorithme d'apprentissage le prof ve la methode de descente du gradient en effet je dois programmer un reseau de neurones j'ai 4 neurones d'entres (1 couche cache : 3 neuronnes) 1 neurone de sortie (qui prend les valeurs soit 0 soit 1) il nous faut programmer l'algorithme d'apprentissage (mthode de la descente du gradient) on doit faire cela sur maple ou C++ . si tu as des exemples peut tu nous les envoys ou si tu as la solution merci de bien vouloir nous aider Car le but c'est de tracer la courbe d'erreur en fonction du nombre de neurone de la couche cache on atteind impatiament ta rponse merci franky* - 6 dc. 2005 17:33 Salut, J'espre pouvoir encore vous aider, mais ce n'est pas mon domaine, et j'oublie progressivement comment a marche. Dj, il doit y avoir pas mal de rponses vos questions dans les autres messages de ce post. Ensuite, je sais que a ne rentre pas dans le cadre de votre projet, mais si vous avez accs Matlab, la toolbox rseaux de neurones est trs bien faite (et permettrait de rpondre facilement la question de l'influence du nb de neurones de la couche

cache sur l'erreur). Sinon, je peux dj vous donner la rponse (quelle que soit la fonction approximer) : l'erreur va diminuer progressivement (meilleure capacit d'apprentissage), puis raugmenter rappidement (sur-apprentissage). Pour finir, je ne vois pas trop comment vous aider pour la descente de gradient : il doit surement y avoir plein de cours sur internet (http://fr.wikipedia.org/wiki/R%C3%A9tropropagation

par exemple), donc je pourrais plutt vous aider pour des dtails, mais pas pour expliquer toute la mthode ! En deux mots, la descente de gradient consiste toujours suivre la pente maximale, entre le rsultat voulu et l'endroit o on se trouve, mais elle a un ENORME dfaut : elle reste coince dans les minima locaux ! (voir ce sujet le "recuit simul"). Bon courage ! zineb - 15 juin 2006 15:57 Bonjour, je suis tudiante et la je fais un stage sur les rseaux de neurone. on me demande de faire des rseaux de neurone en matlab mais ils n'ont pas la toolbox donc je fais avec BNT une librairie de matlab en libre service. le probleme c'est que je ne sais pas m'en servir. je sais que j'ai 2 entres ,4 cachs,1 sortie. je suis l'algorithme de retropropagation en feedforward.pourrais tu m'aider? merci beaucoup ps : que signifie le terme boite noire. merci d'avance franky* - 15 juin 2006 16:10 Salut, L, je ne vais vraiment pas pouvoir t'aider : ce n'est plus du tout mon domaine (en plus, pas trop de temps...) Tout ce que je peux dire, c'est que sans toolbox, a ne me parait pas trop faisable... Par contre, pour la boite noire, a veut simplement dire un systme (ici, le rseau) qui possde des entres et des sorties, mais dont on ne connait pas l'architecture interne (ou du moins, on ne peut pas la modifier). Autrement dit, c'est comme si tu te retrouvait devant une boite ferme : la seule manire de l'tudier, c'est de faire des expriences en lui fournissant des valeurs d'entre et en observant le rsultat. A l limite, tu ne sais mme pas que c'est un rseau de neurones, a pourrait tre n'importe quel systme qui a le mme comportement. Bon courage, Franois dj zineb - 1 mars 2008 11:27 slt, je travaille sur le meme sujet que vous ;modelisation et commande du ph par reseaux de neurones pour matlab je vous conseille de voir le guide de matlab v6 neural network GUUEK 24780--..')+ - 17 nov. 2009 18:45

salut dj, je me suis mis aussi en tete de faire un petit reseau delire , as tu utiliser le v8 de la version 2.4? les patch sont optimiser, contacte moi je te dirait comment l'installer et plus si tu veu... LOL :o*)

UN NEURONE PENSANT VAUT MIEUX QU'UN RESEAU SOUS IPV6..... G Ghassen zineb - 21 avril 2008 17:46 Bonjour je suis en train de developper mon projet fin d'etudes j'ai fini la partie de l'etat de l'art et je passe maintenent la partie programmtion Matlab d'un algorithme d'apprentissage pour un modele connexionniste j'ai besoin vraiment de votre aide et un enorme merci d'avance snipermod84 franky* - 5 juin 2008 17:00 Salut Francky.J'ai demand une aide sur les rseaux de neurones mais depuis la personne pour me repondre.La question se trouve dans la rubrique programmer rseaux de neurones.Mon nom d'utilisateur est snipermod84 alors si tu peux m'aider merci de bien vouloir me le faire parvenir.vraiment trs urgent abdel2005 - 11 dc. 2007 15:18 Bonjour Franky, J'ai suivi tes explications sur les rseaux de neurones pour Xavier.Je te demande si tu veux m'aider.Je cherche comparer les mthodes Hessiennes (mthodes qui drivent de Newton),les algorithmes gntiques et enfin les rseaux de neurones.Mon problme est le suivant:Je veux optimiser (recherche du min et max) d'une fonction quadratique (carre) sous contraintes de types galits et ingalits par les rseaux de neurones.C'est rsolu pour les autres mthodes . Merci d'avance queen - 16 fvr. 2008 10:31 Salut franky; est-ce-que vous tes connaisseur en matire d'optimisation combinatoire (recuit simul, recherche tabou, algorithmes gntiques, ...) ? Si oui, pourriez vous me dire si ces approches (ou l'une d'elles) peuvent servir dans la reconnaissance de mots et ont-elles la chance de donner un rsultat meilleur que les rseaux de neurones surtout que je vise un vocabulaire large. merci. franky* - 18 fvr. 2008 13:37 Bonjour, Ca fait longtemps que je n'ai pas particip cette discussion, mais je peux effectivement bien rpondre cette question : Ce que tu appelles algorithmes d'optimisation combinatoire, c'est ce que j'appelle mtaheuristiques, mais c'est pareil. Par principe, ce ne sont pas des algorithmes qui permettent de rsoudre des problmes prcis, mais seulement des outils qui permettent de trouver des optima (locaux) parmi des paramtre. On peut considrer qu'elles sont toutes quivalentes (certaines sont plus adaptes pour certains problmes, mais en thorie, toutes convergent vers l'optimum global). Il y a de fortes chances que ces outils puissent tre utiliss dans la reconnaissance (de caractre, de mots, ou autres), mais pas comme algorithme de reconnaissance en tant

que tel ! Seulement comme optimisation d'autre algorithmes. La solution "classique" pour la reconnaissance est l'approche connexionniste (donc les RN), et elle donne donc en gnral de bon rsultats, meilleurs que d'autres approches moins tudies. Cependant, dans le cas particulier de la reconnaissance vocale ou de phrases (ce que tu appelles reconnaissance de mots ?), une autre approche est trs utilise : les modles stochastiques (ce qui veut dire avec un processus alatoire). Donc si c'est a que tu veux faire, il vaudrait mieux te renseigner sur les rseaux Baysiens (ils sont utiliss par les moteurs de recherche), et surtout sur les modles de Markov cachs (HMM: hidden Markov model). Il s'agit d'outils trs malins, et pas trop difficile comprendre ( condition d'avoir un bon cours, mais je n'en ai pas proposer...). Si c'est ce que tu veux faire, je te conseille donc de chercher des cours sur la reconnaissance vocale, en faisant attention la partie algorithmique qui utilise cette approche stochastique. J'espre que a t'aidera ! Franois Niko92 - 25 fvr. 2008 21:04 Salut, j'ai qu'on pourrait peut etre m'aider ici. Je suis tudiant en M2 d'hydrobiologie et dois raliser un travail pour mettre en place un modle en utilisant un GLM multinomial. Je m'explique. J'ai un jeu de donnes consernant des poissons, avec comme variables : le poids, la longueur, le sexe, la priode de remonte des poissons dans l'Adour (pour leur reproduction) et l'age dtermin partir d'une analyse des ecailles. Cette derniere analyse etant difficile a mettre en place, on doit mettre en place un modele permettant de dterminer l'age a partir des autres variables (poids, la longueur, le sexe, la priode). Pour cela, on utilise un modle linaire gnralis (glm) avec une distribution multinomiale sur le logiciel R : fonction multinom(). Le meilleur modle sur critere d'AIC implique la priode, le sexe et la priode - AGE : 4ans, 5ans, 6ans ou 7ans : en numeric - PERIODE : A, B, C, D : en factor - SEXE : X ou Y : en factor - POIDS : en numeric

> mn summary (mn) Call:

multinom(formula = AGE ~ POIDS + PERIODE + SEXE) Coefficients: (Intercept) POIDS PERIODE[T.B] PERIODE[T.C] PERIODE[T.D] SEXE[T.Y] 2 14.9861265 0.01008858 1.2689816 2.4656209 1.7575496 -27.00216 3 0.7254929 0.01762180 1.5407951 2.0443552 0.6967955 -25.11637 4 -7.2259991 0.02126346 -0.2081077 -0.5941544 -1.2756138 -36.54843 Std. Errors: (Intercept) POIDS PERIODE[T.B] PERIODE[T.C] PERIODE[T.D] SEXE[T.Y] 2 0.03363829 0.0002590003 0.1684456 0.1607594 0.15390751 1.338751e-01 3 0.03268081 0.0002379928 0.1372602 0.1317097 0.13414525 1.311234e-01 4 0.00602207 0.0002529018 0.1647656 0.1139729 0.04066304 1.873992e-07 Residual Deviance: 530.0787 AIC: 566.0787 J'ai alors les coefficients qui thoriquement me permettraient de remonter a la probabilit d'appartenance chaque age. (les coefficients manquants se dduisant des autres, avec par dfaut zro pour les 4ans). La fonction de lien pour un modele multinomial etant un lien log, voila ce que donnerait la formule de probabilit d'appartenance l'age 2 (soit 5ans) pour un individu male remontant en priode B : F5ans(poids de l'ind)=intercept2 + PERIODE[T.B]2 + SEXE[T.Y]2 + POIDS2 (poids de l'ind) proba(5ans) = f(poids de l'individu) proba(5ans) = exp(F5ans) / exp (F4ans + F5ans + F6ans + F7ans) Et de meme pour les 4ages. Je peux alors calculer les probabilits d'appartenance aux diffrents ages pour tous les individus (j'ai fait un petit algorithme pour ca : fichier 'progVERIF-matrice.txt' => dfinir le nom de fichier sur la 1e ligne, apres il n'y a plus qu'a coller le tout dans R => la matrice des probabilits (ages en colonnes / individus en ligne) est sous le nom 'matrice') ________________ Si je calcule ces probabilits automatiquement sous R, avec la fonction : predict.mlm(mn) ou predict(mn , type='probs') je ne trouve pas les memes rsultats (75% de bien class, contre seulement 47% a partir des equations calcules 'manuellement' => algorithme "progVERIF.txt"). Apres vrification, mes equations semblent bonnes, mais elles ne tiennent pas compte de l'ajustement des probabilits par maximum de vraisemblance par la mthode des rseaux de neurones. C'est la que j'ai un probleme, je ne connais rien de cette mthode

qui semble assez complique et apres avoir cherch dans la documentation de R, dans un grand nombre de publication et sur internet, je n'arrive pas a trouver d'informations suffisantes et suffisemment comprhensibles pour pouvoir dfinir sur papier cet ajustement. Si je mets dans mon rapport les simples quations, un technicien souhaitant recalculer l'age de ses poissons a partir de ces equations aura plus de 50% d'erreurs. J'aurais donc besoin de savoir comment est fait l'ajustement par la mthode des rseaux de neurones, pour pouvoir dcrire dans mon rapport comment passer des probabilits calcules manuellement, aux probabilits ajustes (de la fonction predict)??? Voila, j'ai perdu dj beaucoup de temps sur ce probleme sans russir a trouver de solution et il me reste moins d'une semaine pour rendre mon rapport (vendredi dernier delai). J'espere avoir de l'aide avant cette date butoire. Merci d'avance pour toute l'aide. Niko lielectron - 28 mars 2008 17:02 bonjour je commence travailler sur un rseau de neurone,j'ai des valeurs exprimentales, sous forme de vecteur,j'initialise des valeurs thorique avec quelque constante d'entre par exemple 5 constantes, ces 5 constantes me permet de calculer un vecteur de meme taille que mon vecteur exprimentale , le but est de trouver partir des valeurs initiales(thorique) de trouver des valeur des 5 constantes qui me permet d'avoir des valeurs plus proche de mes valeurs exprimentales. avez vous des programmes de reseau de neurone. merci mjouda - 22 mai 2008 14:49 salut franky je suis entrain de faire un petit projet de master je voudrais bien svp une petite application sous matlab d - un reseaux de neurones (pmc) ou k-means merci d'avance Rponse +3 tafiscobar 16 dc. 2004 14:48 j'en ai deja cod, et je ne l'ai pas encore mis sur le net, par contre il ya plusieurs api sur sourceforge et c'est un bon dbut si tu veux lire du code. Nottament, ya une librairie qui s'appelle fann (fast neural network) et il est pas mal. Par contre, tu ne pourras coder que si tu comprends comment fonctionne un rseau de neurones et donc il te faudra ds un premier temps lire de la doc. Par google, tu trouveras de bons liens ou sur cetesser. tafiscobar "lou waye def bopame" la nullite n'existe pas, l'ignorance oui, ah je suppose!!! Site web

Rponse +3 franky* 13 mars 2005 23:50 Ah Ah ! Ben oui, mais c'est normal... Si tu essaies de te mettre la place de ton rseau, en ne t'accordant que ses capacits, tu vas voir qu'il est trs difficile de reconnaitre quelque chose d'aussi compliqu qu'un chiffre ! Mais je t'avais dj parl de la ncessit d'un prtraitement des donnes : c'est l que c'est ncessaire. Ce que tu vas tenter de reconnaitre, ce ne sont plus des chiffres, mais des points particuliers de ta matrice. Par exemple, un "3" possde (en premire approximation) deux extrmits dans les cartiers "nord-ouest" et "sud-ouest", et un point de rebroussement peu prs au milieu... Et en deuxime approximation (c'est-dire en complexifiant ton rseau, puisque tu lui donne plus de choses reconnaitre), tu peux ajouter par exemple les "orientations" des extrmits. Une fois le prtraitement effectu, tu vas avoir des objets "plus simples" reconnaitre, dans le sens o ils auront des caractristiques qui correspondent mieux ce que peut reconnaitre une carte auto-organisatrice. Evidemment, le but du prtraitement n'est pas de fournir quelque chose de trs prcis, sinon, tu serais dj en train de reconnaitre le chiffre, sans avoir besoin de passer par un rseau de neurones... Donc il ne faut pas accentuer un 3 parce que c'est un 3 et qu'il ne doit pas ressembler un 8. Ce qu'il faut, c'est vraiment accentuer les caractristiques des caractres crits en gnral, pour pouvoir ajouter une lettre ou # ou $ indiffremment, et que ton rseau (aprs apprentissage) soit capable de le reconnaitre ! Par contre, je n'ai aucune ide du (des) "meilleur(s)" prtraitements qui existent pour les caractres, mais il y a surement plein d'exemples mme sur internet. [Johann, si t'as une ide...] A+ Rponse +3 magibs 4 mars 2009 01:39 bonjour a tous j plein de question poser ;alors la premire c'est que je cherche un logiciel open source consernant la reconnaissance facial(visage) ...j'ai fait qq recherche et j 'ai trouv que des logiciels libres et moi j'ai gravement besoin d'un open source.... ensuite je fais des recherches concernant le rseau de neurone ..alors j'ai bien compri le mcanisme de fonctionnement mais j 'ai des choses pas encor vidente pour moi par exemple l'apprentissage est -il applicable pour tous l'informatique bioinspir ?? ad dans des documents apar les rseaux de neurones ;on trouve l'apprentissage dans le rseau baysien.. enfin je veux savoir c'est quoi la relation entre l'apprentissage et les lois(exemple loi

de hubb) c'est encore flou pour moi alors je serai reconnaissante si qq1 peut m'aider merci d'avance Rponse +2 xavier 18 dc. 2004 16:26 Merci pour vos rponses. En fait je me suis acharn avec un copain, et j'ai russi programmer un reseau qui reconnait les caractres ( chiffres et lettres ). Mon problme tait au niveau de la fonction modification du reseau, et j'ai trouv ce sujet quelques explications sur la mthode de "backpropagation", qui s'est avre simple et efficace. Toutefois, je reste ouvert vos ventuelles propostions de rseaux, histoire de voire quelles autres mthodes que la mienne on peut utiliser pour programmer de l'intelligence !!! Xavier Afficher les 7 commentaires sabeur_mas - 28 avril 2009 19:53 Salut franky, J'ai bien russi programmer un rseau de neurones de type MLP capable de reconnatre de 10 mots isols et j'ai pu trouver des bons rsultats (taux de reconnaissance = 93% avec 41 mn d'apprentissage ) mais je voudrais comparer ces performances en utilisant d'autres types de rseaux (RBF et Elman). Avez vous une ide. Merci infiniment. hichem - 16 fvr. 2005 09:32 Message a Xavier je souhaite faire un programme qui reconnait les caracteres d'une matricule sur une image mais je ne sais pas comment m'y prendre ni ou avoir la documentation si tu as deja un code pret ca serait bien que tu me l'envois mermade ratiba - 18 avril 2005 13:49 Merci pour vos rponses. En fait je me suis acharn avec un copain, et j'ai russi programmer un reseau qui reconnait les caractres ( chiffres et lettres ). Mon problme tait au niveau de la fonction modification du reseau, et j'ai trouv ce sujet quelques explications sur la mthode de "backpropagation", qui s'est avre simple et efficace. Toutefois, je reste ouvert vos ventuelles propostions de rseaux, histoire de voire quelles autres mthodes que la mienne on peut utiliser pour programmer de l'intelligence !!! Rponse +2 matmdx 5 mars 2005 19:25

>>> t'es o ? Lyce Clmenceau Nantes... >>> A propos du surapprentissage : Comme tu me l'as dit, j'ai essay de voir au niveau du surapprentissage pour tenter de diminuer srieusement le cot des calculs, et de garder la proprit gnralisatrice des rseau de neurone. J'ai donc effectu les mesures suivantes : pour des paramtres fixs (paramtres qui me donnent une convergence assez rapide), j'ai fait varier la taille de ma base d'apprentissage (de 10 3500 exemples), et j'ai calcul chaque fois : - l'efficacit sur la base de test qui ne sert pas l'apprentissage (1797 exemples) - l'efficacit sur l'ensemble des exemples dont je dispose (app+test=5626 exemples) (les exemples de la base d'apprentissage servent la fois l'apprentissage et au test) Voici les rsultats : - Nombre d'erreurs sur la base de test :http://site.voila.fr/updt/tipe/image1.jpg

- Pourcentage d'erreur sur la base de test :http://site.voila.fr/updt/tipe/image2.jpg

- Nombre d'erreurs pour les 2 bases :http://site.voila.fr/updt/tipe/image4.jpg

- Pourcentage d'erreur pour les 2 bases :http://site.voila.fr/updt/tipe/image3.jpg

On remarque bien qu' un moment les courbes ne dcroissent plus trop rapidement ( partir de 1500 exemples environ) et elles voluent vers un minimum : 80 erreurs environ (toutes bases comprises). Avec 1500 exemples il y a 100 erreurs sur la base de test et 200 sur les 2. (Avec les meilleurs paramtres initiaux que j'ai trouv pour l'instant, j'arrive 60 erreurs). Est-ce que cette diffrence est significative ? Et au vu des rsultats que j'obtiens devrais-je donc, comme tu me le conseillais, me contenter de moins d'exemples ? Merci, et @+, Matthieu NB : quelques rsultats : - Nombre de modifications du rseau en fonction de a (avec 30 neurones caches et un coeff d'app de 1) :http://site.voila.fr/updt/tipe/modif_a_30_1.jpg

- Nombre d'erreurs sur la base de test en fonction de a (avec 70 neurones caches et un coeff d'app de 1) :

http://site.voila.fr/updt/tipe/erreur_a_70_1.jpg

- Nombre de modif en fonction du nbr de neurones caches (avec a=0.05 et un coeff d'app de 1) :http://site.voila.fr/updt/tipe/modif_nbr_005_1.jpg

- Nombre d'erreurs en fct du nbr de neurones caches (avec a=0.05 et un coeff d'app de 1) :http://site.voila.fr/updt/tipe/erreur_nbr_005_1.jpg

Si jamais vous avez le logiciel de calcul formel Maple que j'utilise pour tracer les courbes et les surfaces, je pourrais mettre aussi en tlchargement ces fichiers (on voit bien mieux avec les surfaces 3D...) Site web Rponse +2 chahra 7 juil. 2008 20:38 Bonjour J'ai programm un rseau de neurones en c++,mais je bloque sur l'interface en c++builder et je trouve pas une bonne documentation pour expliquer comment grer les classes que j'ai dans mes algorithmes. merci d'avance. Rponse +2 aa123 27 mars 2009 17:16 meme DE problem Programmer un rseau de neurones et Rponse +1 totolito 20 dc. 2004 19:26 Bonsoir! T'as devin, je suis dans l'quipe #CENSURE# ! :-) La laser ne demande pas norme de traitement: juste pour dtecter les distances... Je vais bosser ton ide... L'algo que j'espre en tirer n'est pas pour cette coupe car effectivement, pas le temps! mais on espre que le rseau pourra nous servir pour les autres coupe. D'o l'intrt d'en trouver un qui "apprend" un objet reconnaitre ... ca la vie n'est pas faite que de quilles.... Rponse +1 matmdx 1 avril 2005 17:33

Quelques petites nouveauts... J'ai illuster la procdure d'apprentissage du PMC en fixant tous les poids de mon rseau, sauf 2 poids que je faisait varier... En testant pour chaque couples de poids le nombres d'erreurs sur la base de test, j'obtient de trs belles surfaces qui reprsentent des puits de potentiel (comme on pouvait s'en douter). Ensuite j'ai fix les valeurs de ces 2 poids de telle sorte avoir une grande erreur, puis j'ai lanc l'apprentissage, en ne modifiant que ces 2 poids avec la procdure classique, et en gardant toujour sles autres poids fixes : on peut ainsi reprsenter l'volution du rseau sur la surface prcdente, et on remarque bien qu'il volue vers un minimum de potentiel ! (encore heureux, sinon tous les calculs thoriques sur le sujet seraient faux !) Vous pouvez retrouver ces courbes sur mon mini-site :http://site.voila.fr/updt/tipe/tipe.htm

Juste un petit problme : j'esprait pouvoir trouver des courbes de potentiel avec plusieurs minimum locaux, mais malheureusement je n'ai pas russi (et pourtant j'en ai essay plein...)... @+, Matthieu Site web franky* - 1 avril 2005 18:37 Juste un petit problme : j'esprait pouvoir trouver des courbes de potentiel avec plusieurs minimum locaux, mais malheureusement je n'ai pas russi (et pourtant j'en ai essay plein...)... He he ! C'est normal : a me parat pas vident avec que 2 paramtres dans un cas aussi "simple". Le problme, c'est que tu ne cherches les optimums que de 2 params parmis un bon paquet... Or tous tes autres paramtres sont dj fixs sur des valeurs qui "ne laissent pas trop le choix" aux 2 restants ! Il y a "une solution", et le reste marche moins bien ! Alors tu as le choix : soit tu cres un problme avec seulement 2 paramtres, juste pour l'illustration, en t'arrangeant pour qu'il y ait plusieurs minimums locaux (a me parat vraiment dur, l...), soit tu reprends ton rseau, mais au lieu de fixer tous les poids sauf 2 "au bon endroit" (ce que tu as du faire...), tu les fixe de manire tout fait dbile, pour bien avoir au moins 2 minimums (ton but, ce n'est plus la performance, c'est d'avoir un joli dessin !). Tu n'as qu' faire plusieurs essais avec des poids au hasard, tu finiras bien par tomber sur un cas avec 2 min. Le problme, c'est la temps de calcul pour dessiner toute la courbe... Tu peux toujours essayer d'itentifier quelques poids particulirement importants, et deviner (estimer de manire qualitative) comment les fixer pour qu'il y ait plusieurs possibilits de fixer les autres poids de manire avoir 2 minimums... Je pense pas avoir t trs clair, je le reconnais ! ;-) Mais j'ai des circonstance attnuantes !!! :-ppp

A+ Rponse +1 maher 2 fvr. 2008 11:09 bonjour je suis un lve ingnieur de l'ecole nationale d'ingnieurs de Tunis (Tunisie) je suis entrain de faire un projet sur la prvision de la demande en eau potable en utilisant les reseaux de nuerones voici un document qui peut etre utile pour vous Daddou - 5 juin 2008 18:04 salut Maher, c'est Dorra j'ai vraiment besoin de votre travail pour mon stage sur la prvision de la demande en eau potable au grand Tunis.Passes moi le document amaaaan selimou - 1 mars 2009 11:06 Bonjour Maher, Peux-tu m'envoyer une copie de ton doc sur les rna. Merci Rponse +1 hasnicom 17 fvr. 2008 19:44 BONJOUR;je cherche de l'aide s'il vous plait Avec qu'elle commande on peut raliser se rseau http://img1.imagilive.com/0208/ANN3.jpg Rponse +1 berdissa 2 nov. 2008 18:24 j'ai besoin des documents sur les reseaux de neurones Rponse +1 choupinoussa 1 avril 2009 13:52 bonjour a tous je suis entrain de dvelopper un rseau de neurones et plus prcisment une application de prdiction et j'ai trouv bcp de problme: 1. prdire quoi?? et j'aimerai bien que sa soit dans le domaine d'informatique 2.quel est le langage que j vais l'utiliser pour crer cet application?le java ou le matlab?? si le java ,alors qui peut me conseiller quelle diteur de java je pourrai utiliser pour faire des interfaces sans crire le code source?? 3. je vais utiliser la rtropropagation de l'erreur avec la mthode supervise pour l'apprentissage,alors j veux savoir comment on fait l'apprentissage?? est ce qu'on utilise des bases de donne pour faire l'apprentissage??? et comment le rseau va apprendre?? thoriquement je sais bien mais pour faire le programme dois-je utiliser des fichiers,des bases ou quoi !!!!!?????

a l'aide :))) vous voyez que je n'ai pas encore commenc et je suis dj bloqu ....alors je vous en prie : ))) s'il y a qqc qui peut m'aider je serai vraiment reconnaissante...et merci d'avance cheherazad - 3 avril 2009 19:36 bonjour a toi choupinoussa j'aimerai bien t'aider mais je prfre que tu me donnes ta boite mail c mieu pour t'envoy d fichi.a plus. Rponse +0 Totolito 20 dc. 2004 15:06 Bonjour tous! Je suis la recherche de doc pour programmer un rseau de neurone sur un microcontrleur. C'est pour faire de la reconnaissance d'objet (et plus prcisement, une quille). Je me documente pas mal sur le net mais je n'ai pas encore trouv mon bonheur. De plus mme soucis pour l'apprentissage... Merci ;) @@@@@@@@@ Afficher les 5 commentaires franky* - 20 dc. 2004 18:51 Eh ben dis-donc ! T'as les moyens, si tu peux t'offrir un laser pour la coupe E=M6 ! ;-) T'es dans quelle quipe ? Une cole ? En tous cas, t'embtes pas, si tu dcide d'utiliser un RN pour la reconnaissance, tu n'auras pas assez de puissance ou de temps (calcul !) pour utiliser un laser... Et inversement ! Mais l'ide du RN est trs intressante dans ce cas : l'apprentissage peut tre aussi long que tu veux, mais une fois que ton rseau est entran, il est relativement rapide. La premire solution qui me vient en tte pour ton problme s'appelle la rtinotopie (toujours si tu veux chercher de la doc) : a consiste en une carte de reconnaissance type Kohonen (j'explique aprs), mais l'entre n'est pas la mme pour tous les neurones -> c'est trs utile si ta camra te renvoie beaucoup de pixels, alors que tu veux gagner du temps en n'ayant que "peu" de neurones. Une seule autre solution concurrente (pour moi ! Mais vrifier...) : tu peux toujours utiliser une carte de Kohonen, mais avec un trs gros prtraitement des donnes, bien bourrin pour gagner du temps de calcul ensuite. A la rflexion, c'est mme la 2me solution la meilleure (ne serait-ce que parce que tu n'auras pas le temps d'tudier la premire...) Donc demande-toi ce qui diffrencie ( tes yeux, mais de manire facilement implmentable !) une quille de tout ce que voit le robot sinon, et traite chaque image

de manire laisser apparaitre cette diffrence. Le but est de passer d'une image de (au pif) 300*300 pixels de ta camra une image 8*8 par exemple, sans perte d'information capitale (dj, c'est pas gagn !) Ensuite, Kohonen : Commence par rechercher tout ce que tu peux sur "les cartes auto-organisatrices", parce que le cours serait un peu long ici ! Si tu as encore des questions aprs, je pourrai t'aider. Ce qu'il faut savoir en gros : le principe de kohonen est une faon d'organiser une carte de neurones (plane dans ton cas) de manire ce que chacun s'active plus que les autres lorsqu'une certaine configuration se prsente, et surtout que 2 neurones proches sur la carte aient des configurations d'activation privilgies (prototypes) proches ! Mais ce n'est qu'un principe, et il ne faut surtout pas tenter de le programmer tel quel ! En fait, il existe des algorithmes trs simples qui simulent cette organisation, et c'est a qui nous intresse. L'norme intrt pour toi de cette mthode, c'est qu'elle est "auto-organisatrice", c'est-dire qu'elle ne correspond pas un apprentissage supervis. Donc tu n'auras pas besoin de dvelopper tout un jeu d'entranement, mais seulement de prsenter au rseau des donnes (pr-traites comme expliqu avant), et de le laisser s'organiser. Ce que tu vas obtenir, c'est une carte de neurones (Ex. 8*8 comme avant, peut-tre plus), dans laquelle chaque neurone correspondra une position de la quille (n'oublies pas de prsenter des exemples o il n'y a pas de quille !). Comme tu n'auras pas supervis l'apprentissage, tu auras toutes les chances que ce soit un rseau " droite" (selon ton implmentation) qui s'active lorsque la quille est gauche de l'image, mais quitte tourner l'image dans tous les sens, les neurones s'activeront exactement suivant la position de la quille sur l'image ! D'o une petite rflexion : si les quilles sont au niveau du sol et que ta camra ne monte pas ni ne descend, tu n'as pas besoin de crer une carte en 2 dimension, mais seulement 1 ! Et au lieu d'avoir 64 neurones, tu pourras te contenter d'en prendre 8, ou plutt une quinzaine pour avoir un minimum de prcision (sans oublier le cas absence de quille !!!). Une fois que tu sais quel neurone s'active dans quel cas, a devient trs simple de diriger ton robot. Par contre, 2 problmes pour cette mthode : Elle permet d'obtenir la direction d'une quille mais pas ses coordonnes ! Plutt que de compliquer l'algo, on peut imaginer que tu places la camra trs haut et "regardant vers le bas" (ou l'inverse !), et on se retrouve avec le pb de la carte en 2 dimensions (par exemple si ton prtraitement fait ressortir la base des quilles, le rseau pourra "replacer" cette base dans l'image). Pb 2 : si toute une quipe compte sur toi pour faire une mthode de reconnaissance correcte, en temps limit, c'est trs chaud, alors fait en sorte qu'une autre mthode de secours soit dveloppe en parallle.

Je te laisse encore me tenir au courant, A+ Elctions : Bush filled his SOUl with HOpe fleurfz - 17 mai 2008 20:04 salut, Svp j'ai besoin de votre aide, je suis entrain de prparer mon projet fin d'etude sur la reconnaissance des visages, et j'utilise normalment le reseau de kohonen, mais j'arriv pas programer ce reseau(sur c++ builder6) . j'attend votre rponse(il me reste pas bq de temps) merci d'avance. lolo franky* - 7 mai 2008 10:19 Bonjour, Je cherche a programmer un reseau de type perceptron a 3 couches pour la reconnaissance de formes. Je souheite le faire sur matlab, avec une couches de neurones d'entre, une couche cache et un neurone de sortie. Mon but "premier" est de raliser l'apprentissage afin que mon rseau puisse reconnaitre des sinusoides de phases et frquneces aleatoires.Puis on verra pour faire plus compliqu si ca marche!! Je me suis pas mal renseigne sur l'apprentissage par retropagation du gradient mais je coince un peu au niveau de matlab...c'est pas mon fort. Pourriez vous m'aider coder l'apprentissage, j'ai cru comprendre en lisant les discussions que vous en connaissiez pas mal dans ce domaine. Merci de votre rponse Rponse +0 Thomas 23 dc. 2004 07:05 Bonjour! :o) Je suis trs interess par la explications que vous pouvez fournir en ce qui concerne la theoorie et la programmation d'un reseau neuronal. Si vous avez quelques minutes perdre, je suis preneur : [email protected] Merci d'avance ceux qui me reponderont! ;o) Modration : Pour ta scurit et ta tranquillit, pas de donnes personnelles dans le pseudo ou le corps des messages. De plus, le principe mme d'un forum est de poser publiquement sa question pour que tous profitent d'une rponse publique... franky* - 23 dc. 2004 12:46 Salut, Pour la thorie comme pour la programmation, le mieux est de trouver de la documentation bien faite, mais je n'en connais aucune qui soit bien prsente, et qui corresponde au niveau dbutant... (flemme de chercher, peut-tre) Ensuite, on peut toujours trouver beaucoup de doc sur des points plus prcis, car il faut savoir que le domaine rseaux de neurones est trs vaste ! Et c'est donc l que je veux en venir : tu peux effectivement t'intresser plein de choses diffrentes pour la thorie, mais si tu veux te mettre la programmation, tout

va dpendre du problme exact qui t'est pos (ou que tu te poses). Je te donne une explication sommaire des concepts de base qui t'aidera peut-tre pour ta recherche de documentation : Si a la base, le but des RN tait d'aider les recherches en neurobiologie, les RN actuels sont bel et bien informatiques, et il n'est pas toujours vident de voir o se situe le lien avec de vrais neurones. les premiers rsultats concluants, trouvs il y a relativement longtemps, concernent le perceptron : c'est donc un type de rseau trs simple, et traditionnellement celui par lequel on commence la prsentation des RN. Il s'agit d'un rseau " une couche", c'est--dire que tu as des valeurs d'entre (Ei), tu cherches des valeurs de sortie (Si), et les seules connexions possibles vont d'un Ei un Si. Son principe de calcul s'appelle la loi de Hebb. La gnralisation du perceptron donne les "rseaux couches", bass sur la rtropropagation (voir plus haut dans la discussion) Une architecture diffrente permet d'aboutir des rseaux entirement connects (je te fait pas de dessin). Il est plus compliqu sur le principe (donc moins utilis), car il pose le problme de la stabilisation du rseau, qui est mathmatiquement plus difficile dterminer. Si l'on utilise ces 2 architectures, c'est que ce sont les plus frquentes dans la biologie, et qu'elles ont une description informatique simple. Mais la premire reprsente plus la notion de fonction, tandis que la seconde correspond plus un filtrage. Ensuite, il y a les rseaux non-superviss, avec en priorit kohonen (encore une fois, voir plus haut) : jusque l, pour entraner ton rseau, tu devais avoir un jeu d'entranement compos d'entres et des sorties dsires associes. Maintenant (en non-supervis), si tu fournis ton rseau des exemples de donnes diffrentes mais bien rparties, il va avoir tendance les classer en catgories "proches" (cette notion de proche est le problme principal de cette mthode). Et donc tu n'auras plus fournir les rsultats attendus. Comme on peut s'en douter, c'est trs utile pour la reconnaissance de formes et le traitement d'images. Il existe encore bien d'autres types de rseaux, mais c'est plus du niveau de la recherche que de l'exploitation, pour l'instant. J'espre que tu t'en sortiras avec a. Elctions : Bush filled his SOUl with HOpe Rponse +0 Xavier 30 dc. 2004 13:04 Rponse Franky. Pour l'instant, mon rseau reconnait des chiffres dans une matrice 5*7. Mais je suis en train de le modifier pour qu' la fin il prenne en entre un bmp de taille dfinie, ca ne va prendre beaucoup de temps, il suffit juste de changer le nombre de neurones

d'entre. Pour qu'il reconnaisse aussi les lettres, il suffit que je change le nombre de neurones de sorties ( et les exemples evidemment ). Il reconnait efficacement apres environ 200 apprentissages de chaque caractre. Il est presque infaillible dans le cas de caractres non douteux. Mais pour les cas litigieux, il dit l'une des rponses possibles ( mais bon, on ne peut pas lui demander de reconnaitre des caractres qui ressemblent rien ). Par contre, je n'ai mis qu'un exemple par caractre ( calligraphie carre ). Je vais tenter d'augmenter le nombre d'exemples et voir le rsultat. ( par exemple, le "4" existe sous de nombreuses formes, et je n'en ai rentr qu'une pour l'instant ). Voil voil. Rponse +0 franky* 30 dc. 2004 21:51 OK, ben c'est trs bien, de bons rsultats comme a ! Juste une remarque : non, a ne va pas tre facile d'augmenter arbitrairement la taille de la grille d'entre ! La raison est trs simple, c'est que si on te dit d'crire le chiffre 5 sur une feuille A4, tu vas pouvoir l'crire petit, grand, gauche, droite, etc. Les rseaux couches sont trs dmunis dans ce cas-l ! Et augmenter le nombre de neurones de la couche d'entre est sans doutes la pire chose faire : chaque neurone vas se trouver trs isol, et si ton rseau est habitu voir un chiffre en haut gauche, il ne reconnaitra rien si le mme chiffre se trouve en bas droite. En plus, a ne servirait rien d'augmenter le nombre d'exemples pour s'entraner sur "tous" les jeux possibles, car l'apprentissage dans un tel cas est par essence impossible. Donc la solution (j'en ai parl un peu plus haut dans la discussion), c'est le prtraitement ! Dans le cas de la reconnaissance de caractres, ce qui se fait souvent, c'est commencer par isoler (donc reconnatre, mais par d'autres mthodes) des caractristiques essentielles (intersection, etc.), puis de les positionner les unes par rapport aux autres. Elctions : Bush filled his SOUl with HOpe xavier - 9 janv. 2005 11:34 Je suis bien d'accord avce toi, et je t'avoue que je ne comptais pas ne pas faire de prtraitement. Quand je disais augmenter le nombre de pixel, ca sous entendait quand mme un prtraitement, de sorte que les caractres soient centrs dans la grille, et aient la mme largeur ainsi que la mme longueur. Merci quand mme de t'intresser mon programme. franky* - 9 janv. 2005 12:01

De rien :-) Tiens-moi au courant de l'avancement... Et puis si y'a un problme inattendu, ou si tu veux des conseils, pareil ;-) Elctions : Bush filled his SOUl with Hopee voulais t'envoyer un bon cours (http://www.metz.supelec.fr/~frezza/Cours.html : c'est celui que j'ai eu cette anne) mais le seul lien qui ne marche plus, c'est justement le cours de DEA. Je laisse l'adresse parce qu'il y a surement d'autres liens utiles... Sinon, je veux bien t'aider, mais sur des points prcis que tu ne comprends pas : je ne remplacerai pas un cours ! Et surtout, je ne pourrai pas t'aider pour la programmation, je ne programme jamais rien ! ;-) Donc comme mots cls, tu peux chercher (j'ai du parler de tout a dans les posts prcdents) : kohonen+paradigme (ou principe), cartes auto-organisatrices, comptition+neurones+"chapeau mexicain" (>> Tu fais quoi, dans la vie ? Je suis en prpa maths !!! :-) En fait je travaille sur ce sujet dans le cadre de mes TIPE... >>> Coefficient b : Je ne reviens pas dessus car on semble tre d'accord. >>> Coefficient a : Je te confirme que j'ai ralis des mesures trs prcises (et que d'autres sont prvues) : pour chaque couple de paramtres ( a , nombre de neurone de la couche cache) j'entrane 10 rseaux et je rcupre pour chacun le nombre de modification des poids et le nombre de chiffres reconnus sur la base de test, puis ensuite j'effectue une moyenne des 10 valeurs... En effet je ne peut pas effectuer les mesures sur seulement 1 rseau, les poids initiaux tant choisis alatoirement ! J' ai donc ralis ces mesures pour 160 couples de paramtres (!!!) pour obtenir une belle surface en 3D ! J'observe donc la dcroissance pour les neurones cachs et la cuvette pour le coeff a, pour le nombre de modifications. J'observe la dcroissance pour les neurones cachs, et une cuvette (applatie d'un ct) pour l'efficacit. (si tu veux des images, je peux te les envoyer par mail) J'aime bien ton ide de compensation de a par b et vis versa, et je vais voir si a se vrifie exprimentalement. De toute manire je comptais raliser nouveau les mesures pour d'autres coeff d'apprentissage a. >>> La couche cache : Ta rponse me rassure ! Merci ! ;-)

>>> Influence des neurones proches : C'est vrai, dans mon rseau un neurone n'influence pas ceux qui sont proches de lui. J'avoue que je n'avais pas pens le faire, mais qu'aussi je ne vois pas trop comment le faire... faudra que tu me r-expliques a plus en dtail... si a apporte vraiment quelque chose pour ce type de rseau. (je verrais plutt a dans des rseaux de type Hopfieldiens...) >>> La taille de la base d'apprentissage : Je compte galement ralis des mesures en fonction de la taille de la base, mais ce que j'ai constat sur quelques exemples (et ce qui me parat tout fait logique) pris pour des valeurs diffrentes de la taille de la base, c'est que l'efficacit est meilleure plus il y a d'exemples ! Par contre c'est vrai le cot d'apprentissage est moindre pour des bases plus petites (logique aussi). >>> Les autres types de rseaux : Tu vas rire, mais je compte galement ralis 2 autres rseaux de type carment diffrents (pour la reconnaissance de caractres toujours), pour de mme effectuer des mesures, et au final comparer l'efficacit des 3 rseaux !! :-) Je compte raliser trs prochainement : - un rseau de type carte auto-organisatrice de Kohonen (comme tu me le conseille), mais je ne pensais pas que c'tait lui le meilleur (d'aprs toi) - un rseau de type mmoire auto-associative de Hopfield (j'avais dj essay, mais a marchait pas... mais je compte recommencer !) Je ne suis pas au bout de mes peines !!! Et tu peut tre certain que j'aurais besoin d'aide pour rgler ces reseaux ! Encore merci pour ta rponse, @ trs bientt, Matthieu franky* - 1 mars 2005 20:30 Salut, >>Je suis en prpa maths !!! :-) >>En fait je travaille sur ce sujet dans le cadre de mes TIPE...

Eh ben ! Ca, c'est ce qui s'appelle s'ouvrir d'autres choses ! (je suis pass par l aussi ;-) ) Tu vises l'IMAG ? Les ENS ? Si un jour, aprs une cole, tu veux continuer dans la recherche, y'a une quipe dans mon labo qui s'occupe exclusivement des RN... J'en profite pour leur faire de la pub ! (quipe cortex au loria) Tu pourras toujours me recontacter ce moment-l ! Pour le coef a, c'est bien ce que je pensais : t'as super bien fait a ! Prviens-moi si a se confirme... Ca a l'air d'tre un rsultat sympa. L'influence des neurones proches, en fait, c'est du type Kohonen. J'y reviens aprs. Pour la base d'apprentissage, il faut faire attention : a partir d'un moment, si tu augmentes trop sa taille, tu perds beaucoup de temps d'apprentissage pour un gain en prcision ngligeable... Mais il ne faut pas non plus passer d'un extrme l'autre : j'imagine que tu as entendu parler de surapprentissage (overfitting en anglais) ? Sinon, a vaut le coup de chercher de quoi il s'agit, pour ce que tu fais... Tant que tu y es, cherches aussi des infos sur le "compromis biais-variance", a fera toujours bien quand tu passeras l'oral. En rsum, la variance, c'est l'erreur d'estimation lie au manque de donnes (ce qui ne risque pas de t'arriver, l !), et le biais, c'est les erreurs d'approximation lies aux hypothses, la forme du modle. Le problme c'est que pour un ensemble de donnes fixe, tu ne peux pas diminuer l'un sans augmenter l'autre... D'o la recherche d'un compromis. Mais dans ton cas, a veut surtout dire que tu as suffisemment de donnes pour ne pas avoir peur de complexifier (raisonnablement) ton modle. Et galement que tu n'as pas forcment besoin de toute ta base d'apprentissage. Euh... dsol, je suis un peu parti dans mon trip, l... ;-p Revenons aux diffrents types de rseaux, et pour commencer, le bon vieux Hopfield : c'est simple, je te le dconseille purement et simplement. Et ne t'en fait pas pour ton TIPE, c'est tout a fait justifiable de dire que les recherches rcentes t'ont fait penser que tu n'avais pas intrt t'engager sur une voie sans avenir... Je m'explique, il est possible que ce type de rseaux puisse prsenter un intrt. C'est d'ailleurs un peu mon domaine (IA distribue, SMA, etc.). Le problme, c'est qu'on ne sait pas QUEL intrt ! Parce qu'il y a une manire "naturelle" d'utiliser ces rseau, pour l'apprentissage, sauf qu'il ne sont pas trs performants ! Ce qui fait que la recherhce dans ce domaine est un peu dans une impasse pour le moment... Ils prsentent bien quelques avantages, avec en premier plan celui de reconnaitre des prototypes trs fortements dgrads (images bruites, ...). Seulement, on est oblig de lui faire apprendre par coeur ces prototypes, et sa capacit de mmorisation n'est pas gniale : de l'odre de 0,15 x le nombre de neurones, en comptant un neurone pour un

pixel dans le cas de la reconnaissance d'images ! Maintenant, le Kohonen. Lui aussi, il a ses avantages et ses inconvnients. D'abord, il est trs adapt la reconnaissance de caractres, grace la proprit dont je t'ai parl hier : il sait reconnaitre des formes proches ! Par contre (il me semble l'avoir dit plus haut dans le discussion), dans ce cas, il y aura absolument besoin d'un prtraitement ! (sauf si tu sais que tous tes caractres ont la mme taille, sont centrs, et ne sont pas trop bruits). Mais surtout, il y a un point fondamental qui te concerne particulirement : ta base d'exemples est visiblement utilisable pour un rseau de type perceptron, c'est--dire pour faire de l'apprentissage supervis. J'en dduis que chaque image est associe la bonne "rponse", le chiffre dessin. Or les rseaux de type kohonen sont fait pour de l'apprentissage non supervis : dans le cas o tu n'as qu'une collection d'images sans catgorie associe, un tel rseau est capable de rassembler ces images par ressemblance. D'o leur nom de cartes auto-organisatrices. Ce qui veut dire que tu ne vas pas utiliser fond toutes les ressources qu'offre ta base d'exemples, et il est finalement possible (mme si a m'tonnerait) que le perceptron marche mieux que Kohonen dans ton cas ! Bon, je te laisse mditer a (autrement dit, on m'attend pour faire autre chose que mon autiste sur l'ordi ;-p ), Bon courage ! Rponse +0

matmdx 3 mars 2005 20:06 >>> Tu vises l'IMAG ? Les ENS ? Euh.............. Nan faut peut-tre pas exagrer pour les ENS... J'espre "seulement" (et ce sera dj pas mal) avoir l'ENSIMAG ! A part a j'ai obtenu l'autorisation de l'administration de mon lyce pour pouvoir utiliser une salle informatique de 12 PC pour pouvoir faire tourner mes algos pendant plusieurs nuits !!! D'ailleurs en ce moment mme les PC tournent dj ! Comme a j'obtiendrais des rsultats plus rapidement. >>> Rseau de Kohonen : Je crois que j'ai pas compris comment se faisait l'apprentissage pour ce rseau, et surtout j'ai pas compris, une fois que le rseau a t entran, comment fait-on pour

avoir la sortie correspondant l'entre (la carte s'organisant toute seule, comment peut-on savoir quelle zone active en sortie correspond telle classe de chiffre ?) ? @ +, Matthieu

Site web Rponse +0

franky* 4 mars 2005 00:00 > Euh.............. Nan faut peut-tre pas exagrer pour les ENS... > J'espre "seulement" (et ce sera dj pas mal) avoir l'ENSIMAG ! T'en fais pas, je te charriais ;-) Et puis si t'as l'IMAG, c'est excellent ! Eh ben, ils sont cool, dans ton lyce, de te laisser autant de moyens ! T'es o ? Bon, Kohonen. L, il est un peu tard pour que je t'explique tout l'apprentissage. Par contre, je peux rpondre rapidement ta question : il faut te dire que a n'a rien voir avec le rseau couches. Par principe, c'est auto-organis, donc il n'y a pas de couche avec 10 neurones qui va te dire quel prototype a t reconnu. C'tait utile pour l'apprentissage supervis, pour pouvoir corriger la reconnaissance au fur et mesure de l'apprentissage, mais l, l'utilisateur est un peu mis hors du systme. Alors je sais, tu vas me dire qu'au bout du compte, tu veux quand mme savoir quel chiffre a t reconnu... La rponse te paratra simple quand tu auras compris la mthode d'apprentissage : c'est celui qui a t slctionn par le rseau :-ppp T'en fait pas pour a, j'essaierai de rpondre plus clairement demain. Dis-toi simplement que sur la "couche" qui nous intresse (parce qu'on peut considrer qu'il y a 2 couches), c'est--dire la carte auto-organisatrice proprement dite, tu n'auras jamais d'quivalence 1 neurone = 1 pixel, mais au contraire 1 neurone = 1 caractristique du caractre, voire ...= 1 caractre. Donc les neurones qui seront activs te donneront un rsultat. Petit exercice de rflexion en attendant le reste des explications : essaie de bien te faire l'ide qu'on va diffrencier 2 distances. La premire est la "distance" entre 2 caractres, en termes d'image, et la seconde, la "distance" sur la carte entre 2 neurones

qui vont reprsenter une caractristique du caratre ou, comme je l'ai dit plus haut, entre 2 caractres eux-mme. On risque donc encore de parler de "distance entre 2 caractres", alors que a n'aura rien voire avec la premire distance ! C'est pas trs clair, mais essaie de bien diffrencier les 2, ce sera trs utile par la suite... A+

Rponse +0

franky* 8 mars 2005 17:15 Salut Matthieu, Dsol, j'ai pas trop pu venir avant... Mais j'ai parl de ce post un copain qui s'y connait mieux que moi dans les RN (Johann), il te dira srement plein de choses intressantes ! ;-) Quand mon explication sur les cartes de Kohonen, il faudra attendre encore, je suis pas trop dispo, l... Dsol. Mais si tu as dj un peu cherch des infos par ailleurs, je n'aurai pas grand chose t'apprendre : je pourrais plutt t'aider comprendre des points obscurs. Sinon, pour tes problmes de nombre d'exemples, on voit effectivement que 1000 ou 1500 suffisent... (bon ,OK, j'avais dit 500 au dbut, j'atais un peu optimiste !) En tous cas, bravo pour ton boulot, c'est impressionnant ! Bonne continuation, Franois

rozalia - 15 mars 2008 10:20 slt, je dsire connaitre comment extraire les contours d'une image,pour la reconnaitre avec un rseau de neurones, g trouv codage de freeman, mai g besoin d'aide!! LeXxX - 3 dc. 2008 21:50 Salut Fanky, je souhaiterais avoir quelques conseils. J'ai un algorithme d'apprentissage a crer est je

ne sais pa trop lequel serait le plus appropri. Mon algorithme doit etudier le mouvement du march boursier (up ou down) d'une compagnie que j'ai choisi(CAC40). J'aimerais avoir de l'aide. S'il y a possibilit de rentrer en contact serait pas mal. Merci. franky* - 4 dc. 2008 08:46 Salut LeXxX, Je n'aurai pas le temps de beaucoup t'aider : je termine une thse sur un sujet compltement diffrent, ce qui veut dire en plus que je n'y connait plus grand chose aux rseaux de neurones ! Ta question n'est pas assez prcise pour que je puisse y rpondre : donne-moi des exemples de donnes que tu dois obtenir, ou le style de questions auxquelles ton algo doit rpondre. Si je devais deviner : tu dois prvoir si la valeur monte ou baisse en fonction d'une dizaine de facteurs (des donnes diverses sur la bourse). Si c'est a, tu dois utiliser un perceptron tout simple, sans te poser de questions (on doit pouvoir trouver des cours sur google) Remarque en passant : le CAC 40 n'est pas une compagnie, c'est un indicateur boursier qui mlange les valeurs des 40 meilleures boites franaises. Bon courage ! Rponse +0

johann 9 mars 2005 00:41 Salut !! Bon j'ai parcouru rapidement le thread... Effectivement Fanch raison, il s'ai bien dmen pour te rpondre, respect lui !! Pour ce qui est des "connexions latrales", c'est valable dans plusieurs types de rseaux, Hopfield bien sur, mais aussi la CNFT qui est l'anctre des SOM (SelfOrganizing Maps) de Kohonen. La diffrence est tout simplement que la CNFT (Continuum Neural Field Therory) fait "jouer la concurence"... C'est dire que par le

biais de connexion latrales, tous les neurones de la carte se disputent pour crer des bulles d'activits, jusqu' stabilisation de la carte. Ceci dis, cel demande plusieurs itration pour une mme entre. Les poids des connexions sont en chapeau mexicain, une double exponentielle positive dans l'entourage proche et ngative plus loin, tend vers zro l'infini... Kohonen simplifi le principe avec le "winner takes all", c'est dire que chaque neurone calcule la similitude de son entre avec son prototype et on choisit le meilleur, on lui cre l'quivalent de la "bulle d'activit" (un gaussienne 2D) autour de lui. En fonction du coef d'activation de chaque neurone, le prototype de chacun est dcal vers l'exemple. L'amplitude de ses mouvement diminue petit petit (diminution controll par un paramtre). La topologie finale de la carte dcrit la densit des exemples (dans l'espace des prototypes, car comme l'a fait remarqu Franky, il faut bien distinguer cet espace, muni d'une distance, et la distance entre deux neurones (nb de connexions pour aller de l'un l'autre)) Autre chose : la fonction d'action. C'est ici une "gaussienne" ou tout autre RBF (Radial Basis Function) centre sur le prototype. Plus on s'loigne du prototype, plus la valeur d'activation baisse... L'apprentissage pour un tel type de carte, c'est de placer les neurones vers les centre de densits de la distribution des exemples. Enfin, pour ensuite caractriser quelle classe d'exemple t reconnu, l l'tiquetage de la base sera utile. En fait dans le principe, rien ne t'interdit de coller un perceptron (donc mono couche) au dessus de la SOM !!! Cela risque mme de bien marcher. Ce qui me chiffonne c'est les fortes hypothses qu'il faut faire sur les exemples, qui risquent fort d'tre irralistes. Mais dans un cas d'cole, c'est pas forcment gnant... A toi de voir (pour le bruit, un pr-traitement possible est un simple flou gaussien. Si le rapport signal/bruit reste faible, c'est nikel !) Pour l'invariance en chlle/translation, l faut un algo plus costaud, et a sort du cadre... Ceci dis, le systme de reconnaissance de la poste US passe par deux couche de carte... A partir d'une rtine en 256x256 niveaux de gris, une premire batterie de cartes 12x64, avec une connectivit partielle (chaque neurone de chaque carte prend en entre une zone de la rtine, neurone voisins, zones voisines), re belotte vers des cartes 12x16, puis enfin vient la "couche cache", linaire, classique, en connectivit totale et la couche de sortie. Je sais pas si c'est bien clair, j'essaye de scanner le schmas la prochaine fois que je passe au labo.

En ce qui concerne ton apprentissage : Je suis assez tonn par tes rsultats en fonction de 'a'. J'immagine que tu effectue l'apprentissage APRES avoir fix le paramtre. (Sinon c'est tout faux !) Par contre tu gr l'invariance des poids initiaux, je veux dire, pour des (a,b) diffrents, si les poids initiaux sont diffrents aussi, tu va te caler dans des minimum locaux diffrents. Sinon, je ne m'expliques pas tes rsultats : d'instinct, il me semble que la forme de la fonction de transfert n'influe pas sur l'EQM (Erreur Quadratique Moyenne), ds lors que l'apprentissage est bien fait. Par contre a influe sur la rapidit de l'apprentissage, a, oui !! Autre chose (qui pourrait aussi tre une piste) : tu ne va pas assez loin dans l'apprentissage, tu n'atteint pas l'overfitting. Je ne veux pas dire qu'il faut l'atteindre, il faut s'arrter avant, mais le fait de voir l'EQM remonter SUR LA BASE DE TEST indique qu'on a dpass le seuil d'un apprentissage correct. Est c'est au niveau de ce minimum sur la courbe qu'il faut s'arrter. Ce n'est pas toujours necessaire pour optenir des performances correcte, mais pour une comparaison de paramtres tel que tu le fais, je dirais que a l'est (sinon c'est un peu comme dclarer un vainqueur d'une course pied alors qu'il ne sont qu' mi-parcours...) Voil, je te laisse ragir dj a, si t'as d'autres questions, j'ai coch l'option pour les mails, tu dois pouvoir choper mon adresse. Si jamais Franky t'as envoy l'autre, je prfrerais que tu utilise celle que donne ici !!! Quote = "Franky" >>Bon, je te laisse mditer a (autrement dit, on m'attend pour faire autre chose que mon autiste sur l'ordi ;-p ), MOUARF !! Je crois avoir une ide ;) A+

grrrada - 21 avril 2009 22:59 le reseau de neurones ke je ss entrain de crer permet de reproduire les neurones reel les mouvement de flux d'infos pour k'1 handicape puisse conduir par exmpl mais je trouve un problem lors de l'execution de la semul malgres ke la programation est juste je meetrai ma main a couper Rponse +0

matmdx 10 mars 2005 17:11 Salut Johann et merci du temps que tu as consacr ce message... >>> J'imagine que tu effectue l'apprentissage APRES avoir fix le paramtre. Oui (enfin je suppose...) : je fixe a, b et tous les autres paramtres (nbr de neurones de la couche cache, etc...), puis je lance l'apprentisasage sur un rseau avec initialement des poids alatoires. L'apprentissage tant termin, je rinitialise les poids et je relance l'apprentissage sur ce deuxime rseau, puis je continue comme une dizaine de fois ! Et je fait la moyenne des rsultats... >>> (Sinon c'est tout faux !) Pas si sr que a !!! J'ai entendu parler d'algorithmes qui prennent 'a' comme un poids que le rseau modifie au fur et mesure des itrations (un peu moins quand mme que les autres poids...) ce qui permet d'optimiser et les poids et le coefficient de la sigmode ! (la correction apporter se dmontre comme pour la correction des poids...). >>> Overfitting : Tu voudrais dire qu'il faudrait que j'obtienne un minimum sur ma courbe du nombre d'erreurs sur la base de test en fonction du nombre d'exemples appris ? Si c'est le cas, je n'ai pas assez d'exemples... Ou alors il faut que je change les paramtres initiaux... >>> Kohonen Je vais essayer de trouver de la doc plus approfondie d'ici ce week-end, et je vais tenter de crer un premier algo pour y voir plus clair... Paske l a reste encore un peu flou... >>> Questions : Si j'entrane plusieurs rseau et que pour l'utilisation je confronte leur rsultats, est-ce que j'obtiendrais de meillurs rsultats ? (logiquement oui...) (est-ce que c'est ce que tu appelles 'batterie de cartes' pour la poste US ?) Si j'entrane un rseau de type Hopfield et un rseau de type PMC sur les mmes exemples, et que pour l'utilisation j'effectue un prtraitement de l'entre l'aide du rseau de Hopfield et qu' aprs je la fait reconnatre par le rseau PMC, est-ce que j'obtiendrais de meilleurs rsultats ??

merci, Matthieu

Site web Rponse +0

johann 11 mars 2005 17:13 Tu ne rpond pas ma question. Est-ce que tu rinitialise les poids avec la mme valeur pour tout les rseaux ? (J'immagine que les dix essais pour (a,b) fixs se font avec des valeurs de poids diffrentes, mais ces 10 couples sont-ils communs tous les rseaux ?) Correction de a : t'as un lien l dessus ? Overfitting : Tu peux passer et rapasser la mme base plusieurs fois !! Le but tant d'aller trop loin et de revenir l'optimum. Ta question : que veux tu dire par 'pour l'utilisation" ? Logiquement, oui, si tu ne met pas assez de neurones cachs, tu restera trop gnral, avec trop, tu risque un over-fitting "rapidement"... Mais qui peut le plus peu le moins, avec trop de neurones cach tu peux rester aussi gnral et mdiocre qu'un rseaux qui n'en a pas assez. Il existe des mthode incrmentales/dcrmentales (y'en a une qui marche pas bien, je sais plus laquelle). Non, les "batteries de cartes" sont des "couches caches parallles". Hopfield + PMC = pourquoi pas, j'y avais jamais pens. Logiquement oui, si la couche Hopfield dbruite l'exemple et que le MLP (PMC, j'ai failli pas comprendre) le reconnait ensuite... Le soucis c'est que le rseau type Hopfield ne sait mmoriser qu'un nombre assez limit d'exemple, a risque donc de marcher pour une petite zone de l'espace o une distribution trs concentre sur quelques points... Enfin la reflexion je suis pas sr du tout que ce soit une bonne ide. En plus, le MLP ne fait rien (enfin, pas grand chose...), tu pourrais le remplacer par un algo qui compare la sortie aux prototypes mmoriss et retourne la classe correspondante...

Rponse +0

matmdx 12 mars 2005 13:06 >>> Tu ne rpond pas ma question Ah OK je vois ce que tu veux dire ! Non : chaque fois je choisis les poids alatoirement et ils sont diffrents pour chaque srie de mesures... Mais comme les courbes que j'obtiens sont plutt continues j'en ai conclu que cela n'avait pas beaucoup d'importance ! Mais je peux trs bien si tu veux refaire les mesures avec des poids identiques pour chaque srie... Seul problme : lorsque je fais varier le nombre de neurones de la couche cache, le nombre de poids choisir n'est plus le mme ! Alors comment faire ? >>> Correction de a Je n'ai pas de lien pour l'instant, c'est juste un ami qui avait trouver sur le net (je pourrais lui demander l'adresse du site o il a trouv a). Mais il m'a fait la dmonstration sous les yeux et a m'avait l'air juste... >>> Overfitting OK je vois : il faut donc que je fasse un apprentissage forc, mme si le rseau reconnat dj parfaitement la base d'apprentissage. >>> que veux tu dire par 'pour l'utilisation' ? C'est--dire que j'entrane sparment un petit nombre de rseau (3 par exemple), puis une fois l'entranement termin, lorsque je voudrais reconnatre un chiffre, je le prsente aux 3 rseaux et je compare leur rsultats pour savoir quel chiffre a t reconnu majoritairement... >>> Hopfield + PMC C'tait juste une ide comme a, et de toutes faons vu que je ne risque pas d'avoir le temps de la tester... >>> Kohonen

J'ai donc commenc mon rseau. L'algorithme fonctionne, mais je n'ai pas encore paramtr le tout, donc pour l'instant le rseau tant tellement 'basique' qu'il n'y a aucun rsultats satisfaisant ! La carte s'organise un peu, mais seulement quelques neurones particuliers sont choisis comme vainqueurs (je veux dire par l que certains neurones ne sont jamais choisis comme vainqueurs, mme sur prs de 1000 exemples...). Enfin bon, vu que je n'ai encore rien rgl, a ne m'tonne pas ! @+, Matthieu

Site web Rponse +0

matmdx 13 mars 2005 19:23 >>> Kohonen Aprs paramtrage, a me semble un peu mieux, mais pas tant que a quand mme... Aprs quelques itrations j'observe des taches de neurones actives sur la carte, mais ces regroupements ne correspondent pas du tout aux chiffres ! En augmentant le nombre d'itrations, les neurones activs se sparent pour se rpartir uniformment sur la carte, mais l encore un mme neurone activ reconnait plusieurs chiffres, donc ce n'est pas concluant... Matthieu

Site web Rponse +0

matmdx 14 mars 2005 13:39 Ah OK, cette fois le message est pass (je n'avais pas relu les anciens messages depuis que j'avais russi l'algo de Kohonen...). Donc si j'ai bien suivi, il faut (par exmple) que j'augmente le contraste des images en entre...

Sinon, j'ai modidifi la reprsentation de la carte que l'algo fournissait aprs l'apprentissage, et en fait les rsultats sont lgrement meilleurs que ceux que j'annonait prcdemment... On voit bien certains neurones qui ne s'activent que pour un chiffre particulier, par contre il y a toujours des neurones "atracteurs" qui ramassent un peu de tous les chiffres...

Site web Rponse +0

franky* 14 mars 2005 14:52 >>Donc si j'ai bien suivi, il faut (par exmple) que j'augmente le contraste des images en entre... Ben en fait... non, je crois pas que a marche bien, a (mais l,on est la limite de mes connaissances sur le sujet !) Je crois aussi que je confondais 2 solutions, donc je vais essayer de les expliquer toutes les deux, toi de voir ensuite ce qui convient le mieux. Ou alors Johann, si tu passes par l, tu peux me corriger... 1) le rseau de Kohonen te sert pour le "prtraitement" (qui n'en est pas un dans ce cas !), c'est--dire que tu l'utilises comme tu le fais maintenant, il spare plusieurs catgories reconnues, mais tu ne peux pas lui demander de reconnaitre des chiffres ou autres caractres : tu es oblig ensuite d'ajouter un petit algorithme qui, en fonctions des catgories reconnues (donc des caractristiques de ton image), t'indique de quel chiffre il s'agit probablement. Par exemple, si tu as un neurones qui correspond gnralement au 3 et au 8 (donc qui reconnait la forme globale droite) et un autre qui correspond au 3 et au 7 (reconnaissance de la partie en haut gauche, par exemple), ton algorithme pourra en dduire qu'il s'agit d'un 3. Seul problme "fondamental" : a t'oblige ne pas avoir 1 mais plusieurs vainqueurs. Sinon, c'est certainement la solution la plus simple pour transformer le rseau que tu as dj. On pourrait galement imaginer (mais l, a va assez loin) que l'algorithme de post traitement soit lui-mme un RN (comme a, l'apprentissage est automatique et tu t'embtes pas). Nanmoins, ce n'est pas la solution que je recommende ! 2) Tu fais un prtraitement " la main" (donc un algo simple), mais pas du style "contraste accentuer", plutt quelque chose qui te transforme ton image d'entre

complique en 64*64 pixels (je sais plus combien tu as, en fait), en un image trs simple, qui ne contient que des informations essentielles : pour reconnaitre des chiffres, je verrais bien une simple matrice 3*3 avec dans chaque case une information du style {absence de trait, extrmit, trait continu}. Evidemment, si tu voulais reconnaitre tous les caractres du clavier, il te faudrait beaucoup plus d'informations pour pouvoir les sparer plus efficacement. Mais l, tu as seulement 27 matrices diffrentes possibles, et pourtant, a devrait tre suffisant pour la reconnaissance (si a ne l'est pas, tu peux toujours complexifier ces matrices). Une fois que c'est fait, c'est cette matrice que tu prsentes ton rseau de Kohonen, qui lui possdera peut-tre 5*5 ou 10*10 neurones (peut-tre plus, peut-tre moins, j'en sais rien : l encore, il faut expriementer !). Et cette fois-ci, ce sont bien des chiffres que tu vas reconnaitre ! Sous forme de zones, plutt que sous forme de neurones particuliers : si le neurone vainqueur est en plein milieu de la zones du 3, c'est un 3. S'il se trouve la frontire des zones du 3 et du 8, t'en sais rien, mais a voudra dire qu'il est trs mal dssin... Donc le post-traitement, pour savoir quel est le chiffre trouv partir du neurone gagnant, est trs simple ! Cette solution me parait beaucoup plus lgante, et galement adapte la notion de carte auto-organisatrice. Et ce que je te disais prcdemment, sur le meilleur pr-traitement possible, c'est juste savoir comment dcouper ton image : pour identifier des chiffres, a doit tre extrmement courant, et plein de solutions doivent circuler sur internet. Et peut-tre qu'il est mieux de dcouper ton image en une matrice 4*3 en ne retenant que l'orientation des traits, et non pas leur prsence/absence + extrmit ou pas, a, je n'en ai aucune ide. Je crois que j'ai t un peu plus clair, l :-) Bon courage !

Rponse +0

matmdx 14 mars 2005 18:30 >>> Solution 1 C'est celle que j'envisageais de raliser terme, avant que tu ne me parles de prtraitement... >>> Solution 2

OK je vois ce que tu voulais dire... J'essaierais a quand j'aurais un peu de temps (sur semaine c'est un peu dur), et comme j'ai plein de trucs essayer sur ce rseau... Et puis il faut aussi que je finisse les mesures sur le PMC... Mais tu sais les images que j'ai font seulement 8*8 et sont donc dj trs simples... @+, Matthieu

Site web Rponse +0

johann 15 mars 2005 03:24 Bon, ben je vois que Franky le cours d'Herv dans la rtine... J'ai pas dit sous les yeux !!! A votre avis, le souvenir visuel sige dans dans V1, V2, V4 o alors c'est plus complexe ? Moi c'est solution 4, interaction des 3 aires visuelles avec des cartes associatives, voire mme auto-associatives dans l'hypocampe... Pour re-situer le souvenir... Enfin, la mmoire, de faon globale, est une belle inconnue (un peu la manire de celle que j'attend de rencontrer, bref...) Dis, Franky, tant qu' lui donner des exemples inspir du cours, on peut lui donner la page, c'est pas un secret... http://www.ese-metz.fr/~frezza/ (Mais il a les veuch' beaucoup plus courts, maintenant...) Tu me dira, vu le gaillard de Freeza, je comprend que tu ais mieux retenu les SOM que les MLP... Moi mon systme lymbique tait activ rien que par la prsence de Frdo, ce qui dclencha des flot de dcharge d'actylcholine, modalateurs mnmoniques.... (Enfin modulateur d'expression gntique, mais au final, a revient de la mmoire...) Bon, POUR REVENIR AU THREAD... Mat [34] -> Evidemment, si tu fait vari le nombre de neurones cachs, tu ne peut pas utiliser les mmes paramtres. Mais courbe 3D (si jamais elle a un sens dans ces conditions) sera toujours plus juste si tu ne fait varier qu'un seul paramtre (a) la fois, plutt (oui le chien de Mickey) que 15000 la fois (c'est dire TOUS les poids. Mais il faut,

pour tre exaustif, faire l'exprience en multiples point de l'espace des poids, pour une seule valeur du nombre de neurones cachs... Et recommencer ainsi pour chacune... A chaque fois concerver le meilleur rsultat. Si tu obtient des rsultat significatif, fait le nous savoir. Et a prendra peut-tre moins de temps de chercher le "thorme" dont je t'ai parl. S'il existe. Encore une fois, je veux bien croire qu'il existe un 'a' optimal en terme de temps de convergence sur une base donne, et pour un rseaux donn, mais j'ai du mal concevoir que a puisse ce gnraliser. Corollaire : en un temps fini, n'importe quel 'a' fera l'affaire... ->overfitting : Plutt (encore ce chien!) que de parler d'apprentissage forc, je parlerais de sur-entrainer, rptition, ton rseau, pour voir "jusqu'o il faut s'arrter." OK, vite dis, a revient au mme... ***Franky [38] -> exemple 1) Il n'est pas question, lors de la reconnaissance, d'avoir "1 vainqueur" !!! Il y a un taux de reconnaissance par neurone, basta. A l'utilisateur de voir ce qu'il veux en faire, un winner takes all, pkoi pas, mais rien n'oblige, au contraire !!! Et en l'occurence (quelque soit le prtraitement) un MLP par dessus peux se justifier... Afin de dterminer automatiquement quel sont les "connexions" tablir entre les activations des diffrents neurones de la SOM... Voire mme, un onzieme neurone pour dire "je sais pas". -> Mme en 8*8 tu peux appliquer les conseils de Franky... Et de Herv. Nanmoins, mon ami, ne feraisse pas une "matrice" 3*3*3 binaire, soit 27 entre (ce qui n'est pas un soucis Mat, je chambre Franky :P) A part ce dtail, F, tu m'as paru trs clair, mme que tu m'a remis des choses en ordre !! :D Voil volo.... PS : c'est quoi se forum o on crit en pates de mouche, c'est un coup faire plus de fautes qu'on ne le crois... J'suis hypermtrope, et mon rseau lectrique foireux brouille l'cran priodiquement... lol PPS : j'attend toujours la rponse au mail que j'ai envoy samedi en ton nom. Mais t'inkit "il" n'est pas trs ractif sur l'adresse perso... (Au pire je le spamme sur l'adresse pro >:) )

Rponse

+0

franky* 15 mars 2005 10:32 Dis donc, toi, avant de me charrier, lis ce que j'cris ! :-p -> J'avais dj donn l'adresse, y'a un moment -> pour l'exemple 1, j'ai jamais dis qu'il y avait 1 vainqueur ! C'est pour l'exemple 2 que je l'ai dit, ce qui me semble assez raliste : vu la manire dont est ralise la comptition, on a toutes les chances (bon, OK, c'est juste intuitif) d'avoir une "bosse" un endroit sur la carte, et son sommet correspond la valeur reconnue (en fait, la carte sera surement trop petite pour qu'il y ait 2 "bosses") sinon, une "matrice" 3*3*3 binaire, a fait bien 2^27 entres et pas 27, mais de toutes faons dans notre cas, on a une matrice 3*3 avec trois valeurs exclusives possibles, soit 3^9 entres diffrentes... On coupe la poire en 2 ? ;-) Merci quand mme pour le compliment :-))) Et pour ton PPS : aprs vrification, tu ne m'as pas envoy de mail samedi... T'aurais pas quelques connections en trop ? C'est les fils qui se touchent un peu ?

Rponse +0

johann 16 mars 2005 15:38 Dsol pour l'histoire du lien, j'avais la flemme de tout relire. Pour les vainqueurs, si si !! J'te jure [quote] ton algorithme pourra en dduire qu'il s'agit d'un 3. Seul problme "fondamental" : a t'oblige ne pas avoir 1 mais plusieurs vainqueurs [/quote] c'est bien dans ton 1rement, a ? Ce que je disais, c'est que le winner takes all n'est obligatoire que pendant l'apprentissage, pour simuler la bulle d'activit qui rsulterais de la concurence si on la laisser jouer. Mme si on choisit souvent le vainqueur lors de la reconnaissance, ce n'est pas obligatoire. Et y'a pas de comptition en Kohonen, elle est justement, simule. Les connexion latrales ne sont l que pour induire la topologie, contrairement la CNFT (qui

ressemble beaucoup) o l y'a vraiment une copt, mais qui demande beaucoup plus de cyle pour tre value (en plus y'a pas de critre d'arrt clairement dfini). Toi aussi t'a la charrue facile, l'ex-lectronicien que je suis considre qu'une entre c'est un fil qui ammne une valeur de tension. Selon cette dfinition c'est bien 27 entres qui peuvent prendre, en binaire, 2^27 ETATS possibles. Mais bon, a tourne au chipotage !! Ok pour la poire ! Je raisonnais en binaire parceque c'est... assez logique en informatique, non ? Bref, on s'en fout. Le mail : MOUARF !! Je parlais Matt !!! Mais comme j'ai pas prcis, j'avoue que a a du te faire drle....

Rponse +0

matmdx 19 mars 2005 19:48 Retour sur le PMC : J'ai ralis de nouvelles mesures sur mon PMC, cette fois-ci en fixant le nombre de neurones de la couche cache (50 neurones), et en faisant varier les 2 autres paramtres ( savoir a, le coefficient de la sigmode, et b le coefficient d'apprentissage). J'obtiens les rsultats suivant : http://site.voila.fr/updt/tipe/tipe.htm (cette fois-ci j'ai mis les courbes en 3D avec une animation pour que vous puissiez bien voir..., ainsi qu'un trac en courbes de niveau...) Les rsultats sont assez tonnant (pour moi en tout cas) : il semblerait que pour un coefficient choisi, il existe forcment une valeur de l'autre qui permette d'avoir le minimum (de temps de calcul et de test sur la base), ce minimum tant commun tous les couples de coefficient (je sais, j'explique pas trs bien , mais bon les tracs parlent d'eux mmes...). En faisant une petite regression, je trouve la relation (plutt simple) entre a et b pour qu'il y ai minimum : racine(b)*a=1/10

Il me reste voir si cette relation est toujours valide si je refais les mesures avec une autre valeur pour le nombre de neurones de la couche cache, et s'il est toujours valable si je change le nombre d'exemples avec lesquels je fais l'apprentissage (ici je l'ai fait seulement avec 1000 exemples...). Voila pour le moment, Matthieu

Site web Rponse +0

franky* 19 mars 2005 20:43 Salut, Super, ton petit site avec les animations ! >> Les rsultats sont assez tonnant (pour moi en tout cas) Eh ben moi, pas du tout ! Voir l : http://www.commentcamarche.net/forum/affich-1062042-Programmer-unr%E9seau-de-neurones#23 Et en particulier : "J'en dduis (mais c'est vrifier) que si tu peux obtenir un rsultat en un temps donn avec une faible valeur de a, donc une sigmode "tire", tu dois pouvoir obtenir le mme rsultat avec une sigmode "normalise" (a=1), dans le mme temps, juste en jouant sur le taux d'apprentissage b ! (dans ce cas, b sera plus faible). Peut-tre que tu as fait ton test avec une valeur de b fixe qui favorisait effectivement a=0,115. A ce moment l, on retombe sur le problme de l'optimisation de b." Bon, je sais, c'est un peu prtentieux de se citer soi-mme, mais c'est pour pas tout rexpliquer... En tout cas, a explique trs bien ce que tu observes : un minimum constant, avec plein de couples {a,b}. On voit aussi que ta relation rac(b)*a=constante correspond ce qu'on attendait : si on augmente a (donc on "rtrcit" la sigmode), il va falloir un "grain" plus fin dans la recherche des bons poids, c'est--dire un plus faible taux d'apprentissage b. C'est vrai que la relation parait simple, mais l encore, a n'aurait rien d'tonnant si elle tait exacte. Je ne dis a que de manire intuitive : on pourrait prouver formellement (ou

pas !) que a marche, en poussant assez loin une analyse mathmatique, mais ce serait perdre du temps pour rien. En effet, une analyse qualitative (ton dessin, en plus de l'intuition que j'avais eue au dbut) montre que l'on a une relation du style FonctionCroissante (a) * FonctionCroissante (b) = cte, et peu importe de savoir laquelle, d'autant plus qu'en gnral, ce genre de relations est trs souvent simple, justement (a, je l'ai appris en mcanique des fluides, et en tudiant l'pistmologie). Et c'est alors une trs bonne ide de faire d'autres expriences pour pouvoir la confirmer (plutt qu'une preuve quantitative), sauf que tu ne pourras pas, dans ton cas, affirmer plus que ton rsultat actuel. Je m'explique : si tu trouves toujours une relation rac(b)*a=constante , tu ne seras pas plus sr de sa validit que maintenant, car les nouvelles expriences seront trop proche de l'ancienne (tu te contente de faire varier le nombre de neurones de la couche cache, alors que pour valider d'quation, il faudrait chager entirement le rseau, et mme le problme pos !) Bref, tout a pour dire que tu ne peux pas (lors de l'oral) affirmer que cette equation est juste, mais qu'elle l'est certainement, et que c'est justifiable. Avant de faire une nouvelle exprience, essaie plutt de suivre une mthode "plus scientifique" : pose des hypothses ! Autrement dit, demande-toi quels rsultats tu vas obtenir (et par la mme occasion, si les expriences que tu veux faire sont bien ncessaires...) A mon avis (encore une fois, je ne me suis pas pench plus que a sur la question), changer le nombre d'exemples de la base d'apprentissage ne te donnera pas de rsultats exploitables (sauf si tu as une ide de ce que tu veux prouver avec, ide que je n'ai pas eue). Par contre, changer le nombre de neurones cachs est excellent : cela permettrait de prouver l'ide (explication intuitive) que j'ai cite en dbut de post, dont un corrolaire ( vrifier !) est que tu vas conserver la constante de 1/10, mais que le minimum de temps de calcul va varier, lui. Et tu vas ainsi pouvoir obtenir le nombre de neurones optimal, non plus en refaisant un graphe chaque fois pour voir le minimum, mais en ne prenant qu'une valeur de a et b, puisque tu auras prouv que dans tous les cas (de a et b), le minimum est le mme. Voila, formellement a ne change rien, mais les examinateurs apprcieront la dmarche ! :-) A+

Rponse +0

matmdx 20 mars 2005 13:02

Bon OK tu as gagn ! ;-) C'est vrai j'ai t un peu bourrin sur les mesures, mais bon au moins comme a j'ai des rsultats concrets prsenter ! >>> "Et c'est alors une trs bonne ide de faire d'autres expriences pour pouvoir la confirmer (plutt qu'une preuve quantitative), sauf que tu ne pourras pas, dans ton cas, affirmer plus que ton rsultat actuel. Je m'explique : si tu trouves toujours une relation rac(b)*a=constante , tu ne seras pas plus sr de sa validit que maintenant, car les nouvelles expriences seront trop proche de l'ancienne (tu te contente de faire varier le nombre de neurones de la couche cache, alors que pour valider d'quation, il faudrait chager entirement le rseau, et mme le problme pos !)"