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

MATLAB Discussion :

Sortie d'un réseau de neurone


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 29
    Points : 23
    Points
    23
    Par défaut Sortie d'un réseau de neurone
    Bonjour,

    Je fais les réseaux de neurones en Matlab. Je construis le réseau avec ma matrice des prédicteurs Ptrain et ma variable à prédire binaire Ttrain (avec la fonction newff). Ensuite j'applique le réseau construit à un ensemble de test Ptest avec la fonction "sim". Mais j'obtiens une sortie VP ayant des valeurs comprises entre -1 et 1 alors ma variable à prédire binaire prend les valeurs 0 et 1. Je m'attendais à avoir une sortie ayant des valeurs 0 et 1 comme ma variable à prédire.
    Du coup, je n'arrive pas à calculer les faux négatifs (observations prenant 1 au départ (Ttest) mais la sortie n'est pas 1 dans VP) et les faux positifs (observations prenant 0 au départ (Ttest) mais la sortie n'est pas 0 dans VP).

    Voici mon programme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    net = newff(Ptrain, Ttrain, 20);
    net = train(net, Ptrain, Ttrain);% Entrainer le réseau sur l'apprentissage
    VP = sim(net, Ptest); % Appliquer le réseau sur le test  
    %% Calcul du nombre de faux positifs et de faux négatifs		
    Faux_neg = 0;
    Faux_pos = 0;
    for i = 1:1:25000,
    	if((Ttest(1,i) == 1) & (VP(1,i) == 0)), Faux_neg = Faux_neg + 1;
    	elseif((Ttest(1,i) == 0) & (VP(1,i) == 1)), Faux_pos = Faux_pos + 1;
    	end;
    end;
    Avez-vous des suggestions pour avoir une sortie prenant des valeurs 0 et 1?

    Merci pour votre aide.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 769
    Points : 726
    Points
    726
    Par défaut
    Salut,

    Je pense qu'il faudrait simplement modifier ta fonction d'activation de sortie car de base c'est une fonction linéaire alors que tu voudrais une fonction (0-1)...

    Christophe
    INCIA : MATLAB R2014a sous MAC OS 10.9.3

    Nous piétinerons éternellement aux frontières de l'Inconnu, cherchant à comprendre ce qui restera toujours incompréhensible. Et c'est précisément cela qui fait des nous des hommes. Isaac Asimov

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    Bonjour,

    Merci pour votre réponse. Effectivement j'aurai besoin d'une fonction de sortie binaire. Avez-vous une idée de fonction à me suggérer?

    Présentement ma sortie calculée a des valeurs du type:

    0.51 0.020 -0.80 ...... (toutes les valeurs sont comprises entre -1 et 1 strictement alors que les classes de mon entrée sont 0 et 1).

    Merci pour votre aide

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 769
    Points : 726
    Points
    726
    Par défaut
    La réponse est .

    En fait tu peux utiliser toutes les fonctions que tu veux mais elle doit être dérivable.

    Sinon, essaie de voir si toutes les valeurs de sorties négatives ne sont pas les "0" que tu attends et les valeurs positives pour les "1"

    Christophe

    PS : tu peux jeter un oeil ici
    INCIA : MATLAB R2014a sous MAC OS 10.9.3

    Nous piétinerons éternellement aux frontières de l'Inconnu, cherchant à comprendre ce qui restera toujours incompréhensible. Et c'est précisément cela qui fait des nous des hommes. Isaac Asimov

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    Merci pour votre réponse. Je vais expérimenter toutes vos recommandations. Merci pour votre aide

  6. #6
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    Bonjour,

    J'ai toujours le même problème: mon vecteur de sortie calculée par le réseau prend des valeurs décimales plus petites que 1 en valeur absolue alors que ma variable classe en entrée ne prend que 0 et 1 (binaire). J'ai utilisé plusieurs fonctions mais j'ai toujours le même résultat. Mon objectif est d'avoir un vecteur de sortie binaire comme celui en entrée pour pouvoir calculée un taux de bonne classification.

Discussions similaires

  1. [Réseau de neurones] Entrée unique/multiples sorties
    Par Invité dans le forum Méthodes prédictives
    Réponses: 5
    Dernier message: 03/03/2014, 11h29
  2. sortie du réseau de neurone
    Par mimiza dans le forum MATLAB
    Réponses: 0
    Dernier message: 26/03/2012, 08h47
  3. Calcul des sorties d'un réseau de neurones
    Par samisoa dans le forum Méthodes prédictives
    Réponses: 1
    Dernier message: 17/09/2010, 17h05
  4. interface graphique, réseau de neurones
    Par korp69 dans le forum C++
    Réponses: 19
    Dernier message: 13/11/2006, 13h44
  5. Réseau de neurones - reconnaissance visage
    Par PrAbronsius dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 03/05/2006, 03h38

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