IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Intelligence artificielle Discussion :

Débutant qui se bat avec 1 MLP (et qui gagne pas)


Sujet :

Intelligence artificielle

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 10
    Points : 4
    Points
    4
    Par défaut Débutant qui se bat avec 1 MLP (et qui gagne pas)
    Bonjour,

    Je suis en train de programmer un petit MLP dont voici les paramètres (que j'espère corrects) :
    - 6 neurones en entrées
    - une couche cachée de 64 neurones (2^6 neurones)
    - 3 neurones en sortie

    Le but du jeu étant d'envoyer à chacun des neurones d'entrée une valeur de couleur (R, G ou B) et de savoir quelle est la couleur la plus présente sur les 6...
    J'ai choisis un MLP plutôt qu'un mono-couche afin d'avoir une rétropropagation, pour un apprentissage plus rapide.

    J'ai déjà fait du réseau de neurones (il y a bien longtemps maintenant) et bien sûr, j'ai pas mes cours sur moi, ni les codes...
    Alors j'ai consulté google et la page sur l'IA de ce site, mais j'y arrive pas...

    Déjà, je voulais savoir si mes choix étaient judicieux quand au choix des neurones et au choix d'un MLP ?

    Pour la sortie, mon idée était d'utiliser 3 neurones pour avoir des sorties genre : 1-0-0 (R est la plus présente) ou encore 1-1-0 (R et G sont les couleurs les plus présentes)
    Et là, je me rends compte que ma sortie n'est pas forcément très claire

    Merci d'avance de vos réponses et du temps que vous pourriez consacrer à mon problème.


    Gast

  2. #2
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Salut,

    Peux-tu commencer par nous décrire ton problème ?
    Càd le problème concret auquel tu as affaire.

    Sinon, je suppose que "la page sur l'IA" dont tu parles est : http://alp.developpez.com/tutoriels/...x-de-neurones/ ?

    Enfin, explicites ce que signifie exactement "la plus présente"... Parce que les 3 peuvent être les plus présentes, si y'en a 2 rouges, 2 vertes et 2 bleues.

    Soit dit en passant, 64 neurones cachés, ça me semble être beaucoup...
    2^n neurones cachés, c'est pour les fonctions booléennes prenant n variables en entrée, si mes souvenirs sont bons (je crois que j'en parle dans mon article d'ailleurs).

    Là ta fonction est plutôt simple.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Désolé, je pensais avoir été clair (j'ai la tête dans le guidon, c'est sûrement pour ça)...

    Alors, on a 6 éléments en entrée. Chaque élément peut être d'une couleur (R, G ou B).
    Mon réseau de neurones doit pouvoir évaluer quelle(s) couleur(s) est(sont) la(es) plus présente(s).
    En effet, dans le cas où on a R-R-G-G-B-B, on a une égalité. Comme dans le cas où on a R-R-R-G-G-G.

    Effectivement, c'est bien de ton document dont je parle

    Quand au choix du 2^6 pour la couche cachée, je retrouve plus le topic où j'ai vu ça, mais il est fortement probable que je me plante aussi...

    Merci de ton aide.

  4. #4
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Petite question : as-tu déjà construit le réseau de neurones dont tu as donné la modélisation plus haut ?
    Et est-ce que tu l'as testé, si c'est le cas ?

    Mais le problème dans ton cas, c'est le fait d'avoir des valeurs discrètes.
    L'apprentissage se fait en modifiant des nombre réels avec tout de même un minimum de précision.
    As-tu déjà réfléchi à cet aspect de la modélisation ?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    J'ai commencé à développer ce réseau, mais pour ce qui est des tests... ça plante un peu
    Du coup, je me demandais si j'étais parti dans la bonne direction...
    (comment comparer une valeur de sortie avec quelque chose dont je n'étais pas sûr)

    Pour ce qui est de l'entrée :
    A la base les couleurs étaient White, Gray et Black.
    Je pensais que mettre RGB ne changeait rien, mais en fait si !
    Parce que grâce à ça, on peut se retrouver avec une valeur du genre 0 = blanc, 1 = noir et 0,5 = gris. Ce qui fait qu'on reste sur du réel, Gray étant compris dans l'intervalle ]0;1[

    Et si je reprends un peu la sortie :
    Au lieu de partir sur l'histoire des 3 neurones qui correspondent aux 3 couleurs (et ressortir des valeurs dans le genre 1-0-1), je devrais plutôt partir sur une sortie avec 7 neurones (c'était ma première idée) ?
    Ce qui me donnerait :
    1° neurone : W est + présente (au moins 4 fois sur les 6)
    2° neurone : G est + présente
    3° neurone : B est + présente
    4° neurone : WG sont + présentes
    5° neurone : WB sont + présentes
    6° neurone : GB sont + présentes
    7° neurone : WGB égalité parfaite
    (ce qui me semble correspondre plus à de la reconnaissance de lettre maintenant)

  6. #6
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Pour la sortie, à toi de voir ce que tu veux obtenir...
    Sinon, ça va faciliter les choses d'avoir du Blanc/Gris/Noir.

    En entrée, tu donnes des réels de [0;1].
    Un SLP (single layer perceptron) devrait même suffir... Avec 7 neurones sur ton unique couche, étant par la même occasion tes neurones de sortie.

    Oui, vraiment, avec un SLP c'est tout à fait faisable il me semble.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Ok, je vois ce que tu veux dire.

    Je pense en plus que je n'ai pas forcément besoin de mes 7 sorties, car si mon réseau ne trouve pas une correspondance, cela signifie qu'on est dans le cas où toutes les couleurs sont présentes le même nombre de fois.

    Soit 6 sorties possibles : W, G, B, WG, WB et GB.

    Bon, déjà un bon point d'éclairci

    Merci !

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    J'avais encore une petite question (j'avoue ne pas avoir super cherché pour ça encore, j'ai pas trop eu le temps, désolé)

    Par rapport à l'apprentissage, y a-t-il une façon de faire pour déterminer le nombre d'exemple et leurs "valeurs" ?
    En bref, comment monter une liste d'éléments pour être quasiment certain que le réseau apprend suffisamment ?
    J'imagine que c'est à force de test, mais comme on peut se retrouver avec du sur-apprentissage...

    Merci d'avance pour vos précisions.

  9. #9
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Il faut effectivement faire beaucoup de tests.

    Une des clés, toutefois, cf mon article, est de présenter des exemples d'apprentissages aussi diversifiés que possible !

    J'en parle dans mon article, n'hésite pas à le relire

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    ne t'inquiète, c'est devenu mon livre de chevet cet article
    cependant, faire des tests les plus variés résulte de la subjectivité et je me demandais simplement s'il y avait une méthode pour pouvoir faire les "bons" tests (comme en stat avec les échantillons)
    ça n'a pas l'air d'être le cas, alors je vais travailler mon bon sens.

    En tout cas merci pour les infos.

    (je mettrais résolu cet article quand ma solution fonctionnera, avec le code, histoire que ça serve)

  11. #11
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Pour trier les exemples, il faut utiliser des techniques statistiques comme l'ACP.

  12. #12
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    juste quelques petites précisions...
    - normalement les réseaux de neurones ont une forme pyramidale. L'heuristique par défaut est de choisir un nombre de neurones de la couche caché égal à (nb neurones couche d'entrée + nb neurones de la couche de sortie) / 2. Le PMC optimal pour un problème quelconque est souvent proche de ce cas. De toute façon 2^6 est absolument énorme et à mon sens inutile. Lorsque tu auras déterminé tes échantillons d'apprentissage et de validation, tu pourras toujours faire des tests, mais je suis près à parier que 64 fera un bel apprentissage par cœur avec un score en validation minable .
    - résoudre un tel problème (aussi simple) avec un réseau de neurone est... exagéré Si c'est pour la beauté de l'exercice, je conçois, sinon un simple histogramme suffit.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Finalement, je m'en sors pas du tout...
    J'essaye avec juste du blanc et du noir (soit 0 et 1 en entrée) pour le moment.
    En fait, j'arrive pas comprendre comment je dois définir l'état d'activation pour un neurone.
    Par exemple, pour le premier neurone (qui doit s'activer quand la couleur blanche est la plus présente), comment pourrais-je m'y prendre ?

    Merci d'avance pour vos pistes diverses.

  14. #14
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Bah, disons que 0 c'est noir, 1 blanc.

    Si somme du premier + somme du deuxieme + ... + somme du sixieme > 6*0.5 = 3, alors c'est blanc.

    Enfin, c'est une modélisation facile

Discussions similaires

  1. Fichier .exe qui s'ouvre avec Shell, mais ne s'exécute pas
    Par choux22 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 21/12/2010, 15h27
  2. [pyserial.py] Débutant qui s'embourbe avec ce module
    Par Levaillant dans le forum Général Python
    Réponses: 5
    Dernier message: 08/02/2007, 09h55
  3. Gérer ce qui se lance avec linux
    Par Harry dans le forum Mandriva / Mageia
    Réponses: 7
    Dernier message: 26/07/2004, 16h05
  4. [Débutant] SWT: composant Texte avec \n
    Par bonnefr dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 18/05/2004, 11h44
  5. [débutant] choix de postgre avec php / migration
    Par bilbon.S dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 23/03/2004, 14h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo