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 :

Apprentissage d'un perceptron multicouches


Sujet :

Méthodes prédictives

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    novembre 2005
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2005
    Messages : 134
    Points : 74
    Points
    74
    Par défaut Apprentissage d'un perceptron multicouches
    Bonjour,
    J'ai des difficultés à implémenter le perceptron multicouches.
    J'essaye d'apprendre la fonction xor.
    J'ai donc 2 neurones d'entrée, 2 neurones cachés et 1 neurone de sortie.
    j'ai pris ε = 1, la fonction sigmoide comme fonction de transfert et j'itère 100 fois.

    ma base est la suivante:
    0 0 -> 0
    1 0 -> 1
    0 1 -> 1
    1 1 -> 0

    j'ai implémenté l'algorithme en c++ à partir du pseudo code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     
    Algorithme de rétropropagation du gradient :
    • Initialiser aléatoirement les coefficients wij dans [-0.5 ; 0.5]
    • Répéter
        • Prendre un exemple (x, c) de S
        • Calculer la sortie o
        • Pour toute cellule de sortie i
            • δi = σ‘(yi) ∗ (ci − oi) = oi ∗ (1 − oi) ∗ (ci − oi)
        • Fin Pour
        • Pour chaque couche de q − 1 à 1
            • Pour chaque cellule i de la couche courante
                     • δi = σ’(yi) ∗ [Σ(k ∈ Succ(i)) (δk ∗ wki)]
                          = oi ∗ (1 − oi) ∗ [Σ(k ∈ Succ(i)) (δk ∗ wki)]
            • Fin Pour
        •Fin Pour
        • Pour tout poids wij
            • wij = wij + ε ∗ δi ∗ xij
        • Fin Pour
    • Fin Répéter



    avec la légende suivante:

    Notations :
    • n cellules
    • Cellules désignées par un indice i, 0 ≤ i < n
    • p cellules de sortie
    • k indice d ’une cellule de sortie
    • ck : sortie attendue pour la cellule de sortie k avec l ’entrée x
    • ok : sortie calculée pour la cellule de sortie k avec l ’entrée x
    • xij : entrée associée au lien entre cellule I vers cellule j
    • wij : coefficient synaptique associé au lien entre cellule i vers cellule j
    • Succ(i) : ensemble des cellules qui prennent comme entrée la sortie de la
    cellule i.
    • Pred(i) : ensemble des cellules dont la sortie est une entrée de la cellule i.
    • yi : entrée totale de la cellule i : yi = Σ(j ∈ Pred(i)) (wij ∗ xij)
    • oi : sortie de la cellule I : oi = σ(yi)
    Lorsque je passe des entrées à mon réseau (après apprentissage), j'obtiens des valeurs de sorties qui convergent vers 0.5, au lieu de 1 ou 0.
    Est-ce que le problème viendrait de mes paramètres ou est-ce que l'algorithme sur lequel je me suis basé est incorrect?
    Merci d'avance.

  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 : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : juin 2005
    Messages : 8 575
    Points : 11 801
    Points
    11 801
    Par défaut
    As-tu lu http://alp.developpez.com/tutoriels/...x-de-neurones/ ? L'algorithme qui va bien y est décrit

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    novembre 2005
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2005
    Messages : 134
    Points : 74
    Points
    74
    Par défaut
    J'ai l'impression que c'est exactement le même algorithme.
    Seulement, ça ne marche pas sur mon exemple.

  4. #4
    Membre averti Avatar de Chatbour
    Profil pro
    Étudiant
    Inscrit en
    septembre 2006
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2006
    Messages : 431
    Points : 305
    Points
    305
    Par défaut
    Salut à tous,

    Hypnocrate, j'ai le même problème
    as-tu résolu le tien ?

Discussions similaires

  1. Apprentissage d'un perceptron multicouche sans exemple
    Par Termites dans le forum Méthodes prédictives
    Réponses: 4
    Dernier message: 24/01/2013, 19h08
  2. Réponses: 11
    Dernier message: 04/03/2010, 00h19
  3. Perceptron multicouche (newff)
    Par Minoucha2006 dans le forum Méthodes prédictives
    Réponses: 1
    Dernier message: 26/11/2009, 11h55
  4. Eclaircissements sur les perceptrons multicouches
    Par tnarol dans le forum Méthodes prédictives
    Réponses: 3
    Dernier message: 02/08/2008, 20h34
  5. Reconnaissance des entiers par perceptron multicouche ?
    Par ballo dans le forum Méthodes prédictives
    Réponses: 3
    Dernier message: 16/05/2007, 02h33

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