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

Méthodes prédictives Discussion :

Problème de convergence dans un réseau de neurones


Sujet :

Méthodes prédictives

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 28
    Points : 20
    Points
    20
    Par défaut Problème de convergence dans un réseau de neurones
    Bonsoir à tous,

    Après avoir vu une conférence sur les réseaux de neurones à l'école, j'ai essayé de m'en programmer un (perceptron multi couche) !
    J'ai lu quelques papiers et cours sur ce sujet, et j'ai essayé de programmer la méthode "batch" en java. Si j'ai bien compris, le but c'est de réduire l'erreur relative quadratique en sortie du réseau de neurone. Le problème, c'est que mon réseau de neurones, après apprentissage, ne converge pas vers la bonne solution. J'ai regardé un peu au niveau de l'erreur quadratique, et en effet cette dernière converge vers 1.00000 (environ!), pour tous les tests que j'ai fait.
    Avant de me regarder le code pour voir si il y a une erreur (je suis pas spécialement motivé pour ça...), j'aimerai savoir si c'est en réalité une erreur "classique ou normale", enfin d'essayer de saisir le "sens physique" caché !

    Est-ce vous pensez que c'est une erreur de programmation, ou bien la convergence vers 1 (c'est pas une valeur si aberrante après tout...) est-elle normale?

    Merci de vos réponses !!

  2. #2
    Membre émérite
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Points : 2 464
    Points
    2 464
    Par défaut
    Citation Envoyé par Rhyos
    Si j'ai bien compris, le but c'est de réduire l'erreur relative quadratique en sortie du réseau de neurone
    Tout à fait !

    Quelques questions :

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    La structure, c'est à dire ? En gros voilà à quoi ressemble mon pmc :
    Ne1
              Nc11        Nc21
    Ne2                                  Ns1
              Nc12        Nc22
    Ne3
    
    Chaque neurone d'une couche est relié à tous les autres neurones de la couche précédente et de la couche suivante. Le neurone Ne3 est une constante, je l'ai mise à 0.5, un peu au pif

    Pour l'apprentissage, j'essaye de lui faire apprendre une porte logique XOR (qui ne peut pas se faire apprendre par un perceptron simple si j'ai bien compris le coup des hyperplans!). Donc j'ai un set de 4 exemples {(entrée),(sortie)} qui sont {(0,0),(0)}, {(0,1),(1)}, {(1,0),(1)}, {(1,1),(0)}. Mais plus tard, j'aimerai essayer de coupler de la détection de forme, de la reconnaissance vocale pourquoi pas, enfin tout ce qui me passera par la tête ^^

    Je ne suis par contre pas allé voir le site sourceforge, mais je vais aller jeter un coup d'oeil dès que j'ai le tps! Je m'étais appuyé sur le site wikipedia, le tutoriel de developpez.net et le Handbook Of Neural Network Processing, en particulier le premier chapitre de Yu Hen Hu et Jenq-Neng Hwang.

    J'ai de mon côté aussi fait d'autres tests, et en fait ça ne converge pas toujours vers 1^^ apparemment (c'est super empirique comme formule), mais ca semble converger vers un truc genre 1/2 de la moyenne des normes quadratiques des vecteurs de sortie attendus.

    Donc du coup, est-ce que l'algo de rétropropagation du gradient fait toujours converger l'erreur vers 0? (en dehors des minimums locaux qu'on peut rencontrer, mais je pense pas que ce soit ça). Peut-être que la limite de l'erreur peut servir pour juger si le réseau choisi est approprié au problème?

    En tout cas merci pour vos réponses !

  4. #4
    Membre émérite
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Points : 2 464
    Points
    2 464
    Par défaut
    Citation Envoyé par Rhyos
    j'ai un set de 4 exemples {(entrée),(sortie)} qui sont {(0,0),(0)}, {(0,1),(1)}, {(1,0),(1)}, {(1,1),(0)}
    Sur ton schéma, ton entrée est de dimension trois, non ?

    Citation Envoyé par Rhyos
    est-ce que l'algo de rétropropagation du gradient fait toujours converger l'erreur vers 0? (en dehors des minimums locaux qu'on peut rencontrer, mais je pense pas que ce soit ça). Peut-être que la limite de l'erreur peut servir pour juger si le réseau choisi est approprié au problème?
    C'est effectivement une des raisons principales !

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Il est de dimension 3, parce que j'ai rajouté un neurone "constant" comme 3ème coordonnée du vecteur d'entrée. J'avoue que je ne sais pas si cette constante est importante ou pas, je l'ai gardée depuis le perceptron simple (les réseaux des portes AND et OR en comportait une dans les modèle que j'ai vu).

    Bon alors l'erreur doit venir de mon algo... Je vais essayer de faire un test à la main, et comparer avec celui de sourceforge.

  6. #6
    Membre émérite
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Points : 2 464
    Points
    2 464
    Par défaut
    Une façon de débugguer est de regarder les poids du réseau. Dans ton cas, tu peux même les comparer au réseau idéal (au passage, cela simplifierait la t'apprentissage de prendre qu'une seule couche cachée au lieu de deux) :


    (http://library.thinkquest.org/29483/neural_index.shtml)
    Images attachées Images attachées  

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Modification des poids dans un réseau de neurones
    Par stockes dans le forum Méthodes prédictives
    Réponses: 0
    Dernier message: 20/10/2013, 20h13
  2. Réponses: 0
    Dernier message: 23/12/2011, 17h22
  3. Réponses: 2
    Dernier message: 18/05/2011, 17h43
  4. Fenêtre de spécialisation dans un réseau de neurones : définition ?
    Par dajdouja1985 dans le forum Méthodes prédictives
    Réponses: 1
    Dernier message: 28/03/2011, 04h42
  5. Evolution des seuils dans un réseau de neurones
    Par E-Sh4rk dans le forum Méthodes prédictives
    Réponses: 3
    Dernier message: 08/10/2009, 16h38

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