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 :

Neural network - modèle particulier


Sujet :

MATLAB

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 769
    Par défaut Neural network - modèle particulier
    Bonjour à tous,

    J'utilise la neural network toolbox sur matlab R2008b.

    Je voudrais coder le modèle que vous voyez en pièce jointe. Il est composé de 4 couches. Je dois réaliser l'apprentissage (train) de celui ci en utilisant la Resilient Backpropagation (trainrp). Les deux couches cachées sont de type feedforward (commande newff). Je connais le "vec1" ou le vecteur d'entrée et je connais le "vec4" vecteur de sortie ainsi que les poids "w3".

    Comment réaliser ce réseau de neurone avec les derniers poids fixés en fonction des entrées/sorties ?

    Est-ce assez clair ? L'apprentissage ne doit se faire que sur les poids entre la couche 1 et 2 et entre la couche 2 et 3.

    Merci de votre aide

    Christophe

  2. #2
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut
    Salut christophe!

    Je n'ai pas travaille avec Neuronal Networks toolbox mais premierment une question.

    Ton modele est fait avec nntool?

    Command window:

    Sinon tu peux me dire comment tu as realise le modele?

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

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

    En fait, j'utilise directement les lignes suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    net=newff(input,output,[9 125]);
    net.trainParam.epochs    = 1500;
    net.trainParam.min_grad  = 1e-6;
    net.trainParam.mem_reduc = 1000;
    net.trainParam.goal     = 1e-13;
    net = train(net,output,'tranrp');
    sortie = sim(net,entree);
    Avec "input" et "output" des vecteurs couples (entrées/sorties).
    Les indications "9" et "125" sont le nombre de neurones dans les couches cachées.
    Puis tu peux gérer de paramètres pour fixer toi même les limites de la partie apprentissage.
    Le vecteur "entree" est une entrée dont on ne connait pas la sortie équivalente.

    Comme tu peux voir, si on simplifie les choses, tu utilises trois fonctions "newff" (définition de l'architecture en feed-forward), "train" (pour qu'il apprend à approximer ta fonction non-linéaire en fixant les poids du réseau) et "sim" (pour simuler ton réseau)

    Mon problème est que je voudrais lui dire que je connais les poids associés à ma sortie. C'est à dire qu'entre le vecteur de 125 units et mes 3 sorties (il sait qu'il y en a que trois grâce ou dimension du vecteur "output" dans la commande newff) je connais mes trois vecteurs de poids et je ne veux pas qu'ils fasse d'apprentissage dessus.

    Il est possible d'initialiser les poids mais comment lui dire de ne pas y toucher (pour le lien entre la couche 3 et 4) ?

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 769
    Par défaut
    Avec la fonction :

    Je peux fixer mes poids entre la couche 4 et la couche 3 mais ils sont quand-même modifié lors de l'apprentissage (utilisation de la fonction "train")...

    Un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    %% essai
     
    x=-pi:pi/180:pi;
    y=2*cos(x);
     
    net=newff(x,y,[5 5]);
    net.LW{2,1}=ones(5,5);
    s=net.LW{2,1};
    net=train(net,y);
    u=net.LW{2,1};

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/04/2009, 00h04
  2. Neural network - enregistrement de réseaux entrainés
    Par christophe_halgand dans le forum MATLAB
    Réponses: 5
    Dernier message: 22/04/2009, 18h48
  3. Réponses: 0
    Dernier message: 10/02/2009, 15h08
  4. Réponses: 3
    Dernier message: 31/03/2008, 14h58
  5. [Neural Network] comment utiliser nntool ?
    Par sandy07 dans le forum MATLAB
    Réponses: 1
    Dernier message: 17/04/2007, 17h24

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