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 :

[IA] Comment entraîner un réseau de neurones avec algorithme de rétropropagation


Sujet :

Méthodes prédictives

  1. #41
    Membre actif
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 54
    Par défaut
    oui maintenant ca marche merci

  2. #42
    Membre actif
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 54
    Par défaut
    oui maintenant ca marche merci

  3. #43
    Membre actif
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 54
    Par défaut
    salut francy
    j'ai programmé un réseau de neurone je t'ai envoyé déjà le programme hier
    j'ai pas compris une chose j'ai lancé mon programme dans matlab il tourne bien j'ai obtenue les résultats mais lorsque j'ai relancé le programme dans le même spacework j'ai obtenu de résultats (c'est a dire j'ai tapé le programme dans matlab je trouves des résultats mais lorsque j'ai fait copier coller de la même programme dans la même spacework j'ai obtenue des résultats différentes j'ai pas compris pourquoi

  4. #44
    Membre Expert
    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 : 38
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Par défaut
    Je ne vois pas trop mais dans le doute fait un coup de clear all entre tes essais. Sinon vu la taille du programme le plus simple est de le mettre dans un fichier .m

  5. #45
    Membre actif
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 54
    Par défaut
    bonjour francy
    voici mon programme
    % les données de reseaux (l'entrée: (sal, BPT ), la sortie:TE
    sal=[0.6186 0.6369 1.5707 1.6867 3.735 4.5285 6.4212 7.1354 1.8504 2.5375 3.469 4.0254 5.8352 5.9126 0.7981 1.001 1.7117 2.151 3.473 3.618 5.0555 5.0648 1.2813 1.9457 3.0582 3.3534 4.911 5.4038 1.1263 2.2542 5.178 0.6239 2.643 4.779 6.3231 1.2566 3.03 4.281 0.19101 2.5357 3.9086 5.9291 1.1735 3.0542 5.7635 1.253 3.467 5.3929 6.4064 1.683 3.3541 4.876 0.6887 2.6012 4.4208 6.4108];
    sall=(sal-mean(sal))/std(sal);
    BPT=[60 60 60 60 60 60 60 60 80 80 80 80 80 80 100 100 100 100 100 100 100 100 120 120 120 120 120 120 60 60 60 80 80 80 80 100 100 100 120 120 120 120 60 60 60 80 80 80 80 100 100 100 120 120 120 120 ];
    BPTT= (BPT-mean(BPT))/std(BPT);
    TE=[ 0.0710 0.0720 0.1780 0.1920 0.4400 0.5420 0.8030 0.9070 0.2410 0.3320 0.4610 0.5420 0.8160 0.8300 0.1180 0.1470 0.2510 0.3180 0.5240 0.5470 0.7890 0.7900 0.2130 0.3240 0.5160 0.5670 0.8560 0.9510 0.128 0.258 0.629 0.081 0.347 0.654 0.894 0.185 0.454 0.657 0.033 0.425 0.670 1.056 0.134 0.356 0.709 0.163 0.461 0.654 0.894 0.248 0.505 0.756 0.116 0.437 0.764 1.154];
    TEE=(TE-mean(TE))/std(TE);
    p=[sall;BPTT];
    %division de donées
    sal1=[0.6186 0.6369 1.5707 1.6867 3.735 4.5285 6.4212 7.1354 1.8504 2.5375 3.469 4.0254 5.8352 5.9126 0.7981 1.001 1.7117 2.151 3.473 3.618 5.0555 5.0648 1.2813 1.9457 3.0582 3.3534 4.911 5.4038] ;
    sal1=(sal1-mean(sal))/std(sal);

    BPT1=[60 60 60 60 60 60 60 60 80 80 80 80 80 80 100 100 100 100 100 100 100 100 120 120 120 120 120 120];
    BPT1=(BPT1-mean(BPT))/std(BPT);
    TE1=[ 0.0710 0.0720 0.1780 0.1920 0.4400 0.5420 0.8030 0.9070 0.2410 0.3320 0.4610 0.5420 0.8160 0.8300 0.1180 0.1470 0.2510 0.3180 0.5240 0.5470 0.7890 0.7900 0.2130 0.3240 0.5160 0.5670 0.8560 0.9510] ;
    TE1=(TE1-mean(TE))/std(TE);
    trainv.P=[sal1;BPT1] ;
    trainv.T=TE1 ;
    sal2=[1.1263 2.2542 5.178 0.6239 2.643 4.779 6.3231 1.2566 3.03 4.281 0.19101 2.5357 3.9086 5.9291];
    sal2=(sal2-mean(sal))/std(sal);
    BPT2= [60 60 60 80 80 80 80 100 100 100 120 120 120 120 ] ;
    BPT2=(BPT2-mean(BPT))/std(BPT);
    TE2= [ 0.128 0.258 0.629 0.081 0.347 0.654 0.894 0.185 0.454 0.657 0.033 0.425 0.670 1.056];
    TE2=(TE2-mean(TE))/std(TE) ;
    valv.P=[sal2;BPT2] ;
    valv.T=TE2;
    sal3=[ 1.1735 3.0542 5.7635 1.253 3.467 5.3929 6.4064 1.683 3.3541 4.876 0.6887 2.6012 4.4208 6.4108];
    sal3=(sal3-mean(sal))/std(sal);
    BPT3= [60 60 60 80 80 80 80 100 100 100 120 120 120 120] ;
    BPT3=(BPT3-mean(BPT))/std(BPT);
    TE3= [ 0.134 0.356 0.709 0.163 0.461 0.654 0.894 0.248 0.505 0.756 0.116 0.437 0.764 1.154];
    TE3=(TE3-mean(TE))/std(TE) ;
    testv.P=[sal3;BPT3];
    testv.T=TE3 ;

    %apprentissage de reseaux
    pr=minmax(p);
    net=newff(pr,[4 1],{'tansig' 'purelin'});

    [net,tr]=train( net,trainv.P,trainv.T,[],[],valv,testv)
    %affichage de poids et de biais de couche d'entrée
    net.IW{1,1}
    net.b{1}
    %affichage de poids et de biais de couche de sortie
    net.LW{2}
    net.b{2}
    fais "copier coller" et lance le programme dans matlab , vois le résultats de poids et de biais et après fais une autre fois"coller "dans la même spacework et vois les nouveaux résultats
    merci

  6. #46
    Membre Expert
    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 : 38
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Par défaut
    J'ai testé rapidement, effectivement les poids et les biais changent pas mal mais les performances du réseau (i.e. la valeur de sim(net,[0;2]) par exemple) sont à peu près les mêmes... donc je pense que cela veut dire simplement que le réseau ne converge pas vers une structure particulière. Il faudrait probablement analyser cela avantage, mais malheureusement je n'ai pas le temps en ce moment.

    Au passage la ligne "net.trainParam.showWindow = false;" qui désactive l'affichage de la fenêtre d'apprentissage t'intéressera peut-être pour ce genre de test.

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    % les données de reseaux (l'entrée: (sal, BPT ), la sortie:TE
    sal=[0.6186 0.6369 1.5707 1.6867 3.735 4.5285 6.4212 7.1354 1.8504 2.5375 3.469 4.0254 5.8352 5.9126 0.7981 1.001 1.7117 2.151 3.473 3.618 5.0555 5.0648 1.2813 1.9457 3.0582 3.3534 4.911 5.4038 1.1263 2.2542 5.178 0.6239 2.643 4.779 6.3231 1.2566 3.03 4.281 0.19101 2.5357 3.9086 5.9291 1.1735 3.0542 5.7635 1.253 3.467 5.3929 6.4064 1.683 3.3541 4.876 0.6887 2.6012 4.4208 6.4108];
    sall=(sal-mean(sal))/std(sal);
    BPT=[60 60 60 60 60 60 60 60 80 80 80 80 80 80 100 100 100 100 100 100 100 100 120 120 120 120 120 120 60 60 60 80 80 80 80 100 100 100 120 120 120 120 60 60 60 80 80 80 80 100 100 100 120 120 120 120 ];
    BPTT= (BPT-mean(BPT))/std(BPT);
    TE=[ 0.0710 0.0720 0.1780 0.1920 0.4400 0.5420 0.8030 0.9070 0.2410 0.3320 0.4610 0.5420 0.8160 0.8300 0.1180 0.1470 0.2510 0.3180 0.5240 0.5470 0.7890 0.7900 0.2130 0.3240 0.5160 0.5670 0.8560 0.9510 0.128 0.258 0.629 0.081 0.347 0.654 0.894 0.185 0.454 0.657 0.033 0.425 0.670 1.056 0.134 0.356 0.709 0.163 0.461 0.654 0.894 0.248 0.505 0.756 0.116 0.437 0.764 1.154];
    TEE=(TE-mean(TE))/std(TE);
    p=[sall;BPTT];
    %division de donées
    sal1=[0.6186 0.6369 1.5707 1.6867 3.735 4.5285 6.4212 7.1354 1.8504 2.5375 3.469 4.0254 5.8352 5.9126 0.7981 1.001 1.7117 2.151 3.473 3.618 5.0555 5.0648 1.2813 1.9457 3.0582 3.3534 4.911 5.4038] ;
    sal1=(sal1-mean(sal))/std(sal);
     
    BPT1=[60 60 60 60 60 60 60 60 80 80 80 80 80 80 100 100 100 100 100 100 100 100 120 120 120 120 120 120];
    BPT1=(BPT1-mean(BPT))/std(BPT);
    TE1=[ 0.0710 0.0720 0.1780 0.1920 0.4400 0.5420 0.8030 0.9070 0.2410 0.3320 0.4610 0.5420 0.8160 0.8300 0.1180 0.1470 0.2510 0.3180 0.5240 0.5470 0.7890 0.7900 0.2130 0.3240 0.5160 0.5670 0.8560 0.9510] ;
    TE1=(TE1-mean(TE))/std(TE);
    trainv.P=[sal1;BPT1] ;
    trainv.T=TE1 ;
    sal2=[1.1263 2.2542 5.178 0.6239 2.643 4.779 6.3231 1.2566 3.03 4.281 0.19101 2.5357 3.9086 5.9291];
    sal2=(sal2-mean(sal))/std(sal);
    BPT2= [60 60 60 80 80 80 80 100 100 100 120 120 120 120 ] ;
    BPT2=(BPT2-mean(BPT))/std(BPT);
    TE2= [ 0.128 0.258 0.629 0.081 0.347 0.654 0.894 0.185 0.454 0.657 0.033 0.425 0.670 1.056];
    TE2=(TE2-mean(TE))/std(TE) ;
    valv.P=[sal2;BPT2] ;
    valv.T=TE2;
    sal3=[ 1.1735 3.0542 5.7635 1.253 3.467 5.3929 6.4064 1.683 3.3541 4.876 0.6887 2.6012 4.4208 6.4108];
    sal3=(sal3-mean(sal))/std(sal);
    BPT3= [60 60 60 80 80 80 80 100 100 100 120 120 120 120] ;
    BPT3=(BPT3-mean(BPT))/std(BPT);
    TE3= [ 0.134 0.356 0.709 0.163 0.461 0.654 0.894 0.248 0.505 0.756 0.116 0.437 0.764 1.154];
    TE3=(TE3-mean(TE))/std(TE) ;
    testv.P=[sal3;BPT3];
    testv.T=TE3 ;
     
    %apprentissage de reseaux
    pr=minmax(p);
    net=newff(pr,[4 1],{'tansig' 'purelin'});
    net.trainParam.showWindow = false;
    [net,tr]=train( net,trainv.P,trainv.T,[],[],valv,testv);
    %affichage de poids et de biais de couche d'entrée
    net.IW{1,1}
    net.b{1}
    %affichage de poids et de biais de couche de sortie
    net.LW{2}
    net.b{2}
    sim(net,[0;2])

  7. #47
    Membre actif
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 54
    Par défaut
    merci francy
    je crois que les conditions initiales influencent sur la convergence de réseau j'ai pas compris les paramétrés suivants:
    lors de la creation de réseaux
    numInputDelays: 0 (read-only)
    numLayerDelays: 0 (read-only)
    je sais que avec la commande newff se fait la création de réseau et les initialisation des poids et de biais donc comment je peux a ce niveau afficher les poids et les biais initiales

  8. #48
    Membre Expert
    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 : 38
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Par défaut
    comment je peux a ce niveau afficher les poids et les biais initiales
    Simplement en commentant la ligne [net,tr]=train( net,trainv.P,trainv.T,[],[],valv,testv);

  9. #49
    Membre actif
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 54
    Par défaut
    avec la commande newff je peux afficher les valeurs finales des bias et des poids mais je veux afficher les valeurs initiales des poids et de biais

  10. #50
    Membre Expert
    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 : 38
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Par défaut
    Fait :


    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    % les données de reseaux (l'entrée: (sal, BPT ), la sortie:TE
    sal=[0.6186 0.6369 1.5707 1.6867 3.735 4.5285 6.4212 7.1354 1.8504 2.5375 3.469 4.0254 5.8352 5.9126 0.7981 1.001 1.7117 2.151 3.473 3.618 5.0555 5.0648 1.2813 1.9457 3.0582 3.3534 4.911 5.4038 1.1263 2.2542 5.178 0.6239 2.643 4.779 6.3231 1.2566 3.03 4.281 0.19101 2.5357 3.9086 5.9291 1.1735 3.0542 5.7635 1.253 3.467 5.3929 6.4064 1.683 3.3541 4.876 0.6887 2.6012 4.4208 6.4108];
    sall=(sal-mean(sal))/std(sal);
    BPT=[60 60 60 60 60 60 60 60 80 80 80 80 80 80 100 100 100 100 100 100 100 100 120 120 120 120 120 120 60 60 60 80 80 80 80 100 100 100 120 120 120 120 60 60 60 80 80 80 80 100 100 100 120 120 120 120 ];
    BPTT= (BPT-mean(BPT))/std(BPT);
    TE=[ 0.0710 0.0720 0.1780 0.1920 0.4400 0.5420 0.8030 0.9070 0.2410 0.3320 0.4610 0.5420 0.8160 0.8300 0.1180 0.1470 0.2510 0.3180 0.5240 0.5470 0.7890 0.7900 0.2130 0.3240 0.5160 0.5670 0.8560 0.9510 0.128 0.258 0.629 0.081 0.347 0.654 0.894 0.185 0.454 0.657 0.033 0.425 0.670 1.056 0.134 0.356 0.709 0.163 0.461 0.654 0.894 0.248 0.505 0.756 0.116 0.437 0.764 1.154];
    TEE=(TE-mean(TE))/std(TE);
    p=[sall;BPTT];
    %division de donées
    sal1=[0.6186 0.6369 1.5707 1.6867 3.735 4.5285 6.4212 7.1354 1.8504 2.5375 3.469 4.0254 5.8352 5.9126 0.7981 1.001 1.7117 2.151 3.473 3.618 5.0555 5.0648 1.2813 1.9457 3.0582 3.3534 4.911 5.4038] ;
    sal1=(sal1-mean(sal))/std(sal);
     
    BPT1=[60 60 60 60 60 60 60 60 80 80 80 80 80 80 100 100 100 100 100 100 100 100 120 120 120 120 120 120];
    BPT1=(BPT1-mean(BPT))/std(BPT);
    TE1=[ 0.0710 0.0720 0.1780 0.1920 0.4400 0.5420 0.8030 0.9070 0.2410 0.3320 0.4610 0.5420 0.8160 0.8300 0.1180 0.1470 0.2510 0.3180 0.5240 0.5470 0.7890 0.7900 0.2130 0.3240 0.5160 0.5670 0.8560 0.9510] ;
    TE1=(TE1-mean(TE))/std(TE);
    trainv.P=[sal1;BPT1] ;
    trainv.T=TE1 ;
    sal2=[1.1263 2.2542 5.178 0.6239 2.643 4.779 6.3231 1.2566 3.03 4.281 0.19101 2.5357 3.9086 5.9291];
    sal2=(sal2-mean(sal))/std(sal);
    BPT2= [60 60 60 80 80 80 80 100 100 100 120 120 120 120 ] ;
    BPT2=(BPT2-mean(BPT))/std(BPT);
    TE2= [ 0.128 0.258 0.629 0.081 0.347 0.654 0.894 0.185 0.454 0.657 0.033 0.425 0.670 1.056];
    TE2=(TE2-mean(TE))/std(TE) ;
    valv.P=[sal2;BPT2] ;
    valv.T=TE2;
    sal3=[ 1.1735 3.0542 5.7635 1.253 3.467 5.3929 6.4064 1.683 3.3541 4.876 0.6887 2.6012 4.4208 6.4108];
    sal3=(sal3-mean(sal))/std(sal);
    BPT3= [60 60 60 80 80 80 80 100 100 100 120 120 120 120] ;
    BPT3=(BPT3-mean(BPT))/std(BPT);
    TE3= [ 0.134 0.356 0.709 0.163 0.461 0.654 0.894 0.248 0.505 0.756 0.116 0.437 0.764 1.154];
    TE3=(TE3-mean(TE))/std(TE) ;
    testv.P=[sal3;BPT3];
    testv.T=TE3 ;
     
    %apprentissage de reseaux
    net.trainParam.show = 2;
    pr=minmax(p);
    net=newff(pr,[4 1],{'tansig' 'purelin'});
    %net.trainParam.showWindow = false;
    %net.trainParam.epochs = 1;
    %[net,tr]=train( net,trainv.P,trainv.T,[],[],valv,testv);
    %affichage de poids et de biais de couche d'entrée
    net.IW{1,1}
    net.b{1}
    %affichage de poids et de biais de couche de sortie
    net.LW{2}
    net.b{2}
    sim(net,[0;2])

  11. #51
    Membre Expert
    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 : 38
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Par défaut
    (Comme tu le verras les poids et les biais sont random, regarde la fonction initnw pour les initialiser à la main)

  12. #52
    Membre actif
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 54
    Par défaut
    merci énormément francy
    il reste une petite chose
    j'ai pas compris
    numInputDelays
    numLayerDelays
    et
    net.trainParam.show = 2;
    net.trainParam.showWindow = false

  13. #53
    Membre Expert
    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 : 38
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Par défaut
    * Pour net.trainParam.showWindow = false et net.trainParam.show = 2 cf http://www.mathworks.com/help/toolbox/nnet/trainbr.html

    * Pour numInputDelays et numLayerDelays cf http://www.mathworks.com/help/toolbo.../network2.html

    Un des énormes avantages de MATLAB est sa doc

  14. #54
    Membre actif
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 54
    Par défaut
    quelle est la différence entre training function et learning ??

  15. #55
    Membre Expert
    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 : 38
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Par défaut
    http://www.mathworks.com/products/ne...cription4.html :
    Training and learning functions are mathematical procedures used to automatically adjust the network's weights and biases. The training function dictates a global algorithm that affects all the weights and biases of a given network. The learning function can be applied to individual weights and biases within a network.

  16. #56
    Membre actif
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 54
    Par défaut
    Salut francy
    pour choisir le meilleur réseau de neurone j'ai fait une régression linéaire pour ce raison j'ai ajouté à mon programme une boucle while pour imposer m(la pente de la droite de régression à 1 et b (l'ordonnée à l'origine) d'être <0.00001 et r(coefficient de corrélation ) à 1 mais en ajoutant cette boucle mon programme n'a pas tourné il m'affiche une erreur
    voici mon code

    r=0
    m=0
    b=1
    While r~=1&m~=1&b>0.00001
    % les données de reseaux (l'entrée: (sal, BPT ), la sortie:TE
    sal=[0.6186 0.6369 1.5707 1.6867 3.735 4.5285 6.4212 7.1354 1.8504 2.5375 3.469 4.0254 5.8352 5.9126 0.7981 1.001 1.7117 2.151 3.473 3.618 5.0555 5.0648 1.2813 1.9457 3.0582 3.3534 4.911 5.4038 1.1263 2.2542 5.178 0.6239 2.643 4.779 6.3231 1.2566 3.03 4.281 0.19101 2.5357 3.9086 5.9291 1.1735 3.0542 5.7635 1.253 3.467 5.3929 6.4064 1.683 3.3541 4.876 0.6887 2.6012 4.4208 6.4108];
    sall=(sal-mean(sal))/std(sal);
    BPT=[60 60 60 60 60 60 60 60 80 80 80 80 80 80 100 100 100 100 100 100 100 100 120 120 120 120 120 120 60 60 60 80 80 80 80 100 100 100 120 120 120 120 60 60 60 80 80 80 80 100 100 100 120 120 120 120 ];
    BPTT= (BPT-mean(BPT))/std(BPT);
    TE=[ 0.0710 0.0720 0.1780 0.1920 0.4400 0.5420 0.8030 0.9070 0.2410 0.3320 0.4610 0.5420 0.8160 0.8300 0.1180 0.1470 0.2510 0.3180 0.5240 0.5470 0.7890 0.7900 0.2130 0.3240 0.5160 0.5670 0.8560 0.9510 0.128 0.258 0.629 0.081 0.347 0.654 0.894 0.185 0.454 0.657 0.033 0.425 0.670 1.056 0.134 0.356 0.709 0.163 0.461 0.654 0.894 0.248 0.505 0.756 0.116 0.437 0.764 1.154];
    TEE=(TE-mean(TE))/std(TE);
    p=[sall;BPTT];
    %division de donées
    sal1=[0.6186 0.6369 1.5707 1.6867 3.735 4.5285 6.4212 7.1354 1.8504 2.5375 3.469 4.0254 5.8352 5.9126 0.7981 1.001 1.7117 2.151 3.473 3.618 5.0555 5.0648 1.2813 1.9457 3.0582 3.3534 4.911 5.4038] ;
    sal1=(sal1-mean(sal))/std(sal);

    BPT1=[60 60 60 60 60 60 60 60 80 80 80 80 80 80 100 100 100 100 100 100 100 100 120 120 120 120 120 120];
    BPT1=(BPT1-mean(BPT))/std(BPT);
    TE1=[ 0.0710 0.0720 0.1780 0.1920 0.4400 0.5420 0.8030 0.9070 0.2410 0.3320 0.4610 0.5420 0.8160 0.8300 0.1180 0.1470 0.2510 0.3180 0.5240 0.5470 0.7890 0.7900 0.2130 0.3240 0.5160 0.5670 0.8560 0.9510] ;
    TE1=(TE1-mean(TE))/std(TE);
    trainv.P=[sal1;BPT1] ;
    trainv.T=TE1 ;
    sal2=[1.1263 2.2542 5.178 0.6239 2.643 4.779 6.3231 1.2566 3.03 4.281 0.19101 2.5357 3.9086 5.9291];
    sal2=(sal2-mean(sal))/std(sal);
    BPT2= [60 60 60 80 80 80 80 100 100 100 120 120 120 120 ] ;
    BPT2=(BPT2-mean(BPT))/std(BPT);
    TE2= [ 0.128 0.258 0.629 0.081 0.347 0.654 0.894 0.185 0.454 0.657 0.033 0.425 0.670 1.056];
    TE2=(TE2-mean(TE))/std(TE) ;
    valv.P=[sal2;BPT2] ;
    valv.T=TE2;
    sal3=[ 1.1735 3.0542 5.7635 1.253 3.467 5.3929 6.4064 1.683 3.3541 4.876 0.6887 2.6012 4.4208 6.4108];
    sal3=(sal3-mean(sal))/std(sal);
    BPT3= [60 60 60 80 80 80 80 100 100 100 120 120 120 120] ;
    BPT3=(BPT3-mean(BPT))/std(BPT);
    TE3= [ 0.134 0.356 0.709 0.163 0.461 0.654 0.894 0.248 0.505 0.756 0.116 0.437 0.764 1.154];
    TE3=(TE3-mean(TE))/std(TE) ;
    testv.P=[sal3;BPT3];
    testv.T=TE3 ;

    %apprentissage de reseaux
    pr=minmax(p);
    net=newff(pr,[4 1],{'tansig' 'purelin'});

    [net,tr]=train( net,trainv.P,trainv.T,[],[],valv,testv)
    %affichage de poids et de biais de couche d'entrée
    net.IW{1,1}
    net.b{1}
    %affichage de poids et de biais de couche de sortie
    net.LW{2}
    net.b{2}
    y=sim(net,p);
    y=y*std(TE)+mean(TE);
    [m,b,r]=postreg(y,TE)
    end

    merci

  17. #57
    Membre Expert
    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 : 38
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Par défaut
    Ca devrait tourner :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    r=0 
    m=0
    b=1
    while ((r~=1)&(m~=1)&(b>0.00001))
        % les données de reseaux (l'entrée: (sal, BPT ), la sortie:TE
        sal=[0.6186 0.6369 1.5707 1.6867 3.735 4.5285 6.4212 7.1354 1.8504 2.5375 3.469 4.0254 5.8352 5.9126 0.7981 1.001 1.7117 2.151 3.473 3.618 5.0555 5.0648 1.2813 1.9457 3.0582 3.3534 4.911 5.4038 1.1263 2.2542 5.178 0.6239 2.643 4.779 6.3231 1.2566 3.03 4.281 0.19101 2.5357 3.9086 5.9291 1.1735 3.0542 5.7635 1.253 3.467 5.3929 6.4064 1.683 3.3541 4.876 0.6887 2.6012 4.4208 6.4108];
        sall=(sal-mean(sal))/std(sal);
        BPT=[60 60 60 60 60 60 60 60 80 80 80 80 80 80 100 100 100 100 100 100 100 100 120 120 120 120 120 120 60 60 60 80 80 80 80 100 100 100 120 120 120 120 60 60 60 80 80 80 80 100 100 100 120 120 120 120 ];
        BPTT= (BPT-mean(BPT))/std(BPT);
        TE=[ 0.0710 0.0720 0.1780 0.1920 0.4400 0.5420 0.8030 0.9070 0.2410 0.3320 0.4610 0.5420 0.8160 0.8300 0.1180 0.1470 0.2510 0.3180 0.5240 0.5470 0.7890 0.7900 0.2130 0.3240 0.5160 0.5670 0.8560 0.9510 0.128 0.258 0.629 0.081 0.347 0.654 0.894 0.185 0.454 0.657 0.033 0.425 0.670 1.056 0.134 0.356 0.709 0.163 0.461 0.654 0.894 0.248 0.505 0.756 0.116 0.437 0.764 1.154];
        TEE=(TE-mean(TE))/std(TE);
        p=[sall;BPTT];
        %division de donées
        sal1=[0.6186 0.6369 1.5707 1.6867 3.735 4.5285 6.4212 7.1354 1.8504 2.5375 3.469 4.0254 5.8352 5.9126 0.7981 1.001 1.7117 2.151 3.473 3.618 5.0555 5.0648 1.2813 1.9457 3.0582 3.3534 4.911 5.4038] ;
        sal1=(sal1-mean(sal))/std(sal);
     
        BPT1=[60 60 60 60 60 60 60 60 80 80 80 80 80 80 100 100 100 100 100 100 100 100 120 120 120 120 120 120];
        BPT1=(BPT1-mean(BPT))/std(BPT);
        TE1=[ 0.0710 0.0720 0.1780 0.1920 0.4400 0.5420 0.8030 0.9070 0.2410 0.3320 0.4610 0.5420 0.8160 0.8300 0.1180 0.1470 0.2510 0.3180 0.5240 0.5470 0.7890 0.7900 0.2130 0.3240 0.5160 0.5670 0.8560 0.9510] ;
        TE1=(TE1-mean(TE))/std(TE);
        trainv.P=[sal1;BPT1] ;
        trainv.T=TE1 ;
        sal2=[1.1263 2.2542 5.178 0.6239 2.643 4.779 6.3231 1.2566 3.03 4.281 0.19101 2.5357 3.9086 5.9291];
        sal2=(sal2-mean(sal))/std(sal);
        BPT2= [60 60 60 80 80 80 80 100 100 100 120 120 120 120 ] ;
        BPT2=(BPT2-mean(BPT))/std(BPT);
        TE2= [ 0.128 0.258 0.629 0.081 0.347 0.654 0.894 0.185 0.454 0.657 0.033 0.425 0.670 1.056];
        TE2=(TE2-mean(TE))/std(TE) ;
        valv.P=[sal2;BPT2] ;
        valv.T=TE2;
        sal3=[ 1.1735 3.0542 5.7635 1.253 3.467 5.3929 6.4064 1.683 3.3541 4.876 0.6887 2.6012 4.4208 6.4108];
        sal3=(sal3-mean(sal))/std(sal);
        BPT3= [60 60 60 80 80 80 80 100 100 100 120 120 120 120] ;
        BPT3=(BPT3-mean(BPT))/std(BPT);
        TE3= [ 0.134 0.356 0.709 0.163 0.461 0.654 0.894 0.248 0.505 0.756 0.116 0.437 0.764 1.154];
        TE3=(TE3-mean(TE))/std(TE) ;
        testv.P=[sal3;BPT3];
        testv.T=TE3 ;
     
        %apprentissage de reseaux
        pr=minmax(p);
        net=newff(pr,[4 1],{'tansig' 'purelin'});
     
        [net,tr]=train( net,trainv.P,trainv.T,[],[],valv,testv)
        %affichage de poids et de biais de couche d'entrée
        net.IW{1,1}
        net.b{1}
        %affichage de poids et de biais de couche de sortie
        net.LW{2}
        net.b{2}
        y=sim(net,p);
        y=y*std(TE)+mean(TE);
        [m,b,r]=postreg(y,TE) 
    end

  18. #58
    Membre actif
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 54
    Par défaut réseau de neurone
    j'ai fait l'apprentissage d'un réseau de neurone j'ai obtenu les poids et les biais , après j'ai crée de nouveau le réseau de neurone par newff et j'ai introduit les valeurs des poids et de bais que j'ai obtenu par l'apprentissage mais lors de simulation de réseau je trouve des valeurs fausses. j'ai pas compris le problème car normalement avec ces valeurs de poids et de biais je dois trouver des bons résultats.

    le réseau est un preceptron a deux couche couche cachée et l'autre de sortie

  19. #59
    Membre Expert
    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 : 38
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Par défaut
    Citation Envoyé par frihat mohamed
    je trouve des valeurs fausses
    Fausse dans quel sens ? Output du réseau différent de l'output souhaité ? Ou bien output du réseau différent de l'output obtenu en calculant la forward-propagation de l'input à la main ?

    Citation Envoyé par frihat mohamed
    normalement avec ces valeurs de poids et de biais je dois trouver des bons résultats.
    Seulement si le réseau "a bien appris" : utilises-tu un ensemble de validation pour valider la qualité de l'apprentissage ?

  20. #60
    Membre actif
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 54
    Par défaut
    j'ai fait la creation et l'apprentissage de rseau de neurone
    j'ao obtient les pods et le biais avec ces poids et biais les srties de réseau suivent biens les sorties cibles sur les trois ensembles (apprentissage , validation et test) j'ai gardé les valeurs de poids et de bias mais lorsque j'ai crée de nouveau le réseau avec newff et j'ai introduit les valeurs de poids et de bias , lors de lasimulations j'ao obenu des sorties qui sont loin de sorties cibles et meme loin de sortie de réseau de neurones que j'ai obetnu apres l'apprentissage de réseau de neurone , j'ai pa compris le probleme
    merci )

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. Comment simuler un réseau des neurones en 'live'
    Par mclaurien dans le forum MATLAB
    Réponses: 1
    Dernier message: 30/08/2011, 17h40
  2. Réponses: 1
    Dernier message: 20/06/2011, 11h08
  3. entraîner un réseau de neurone
    Par rafrouf2010 dans le forum MATLAB
    Réponses: 0
    Dernier message: 28/02/2011, 10h49
  4. Réponses: 1
    Dernier message: 29/06/2010, 14h23
  5. créeation d'un réseau de neurones avec newnarx
    Par guefrachi dans le forum MATLAB
    Réponses: 0
    Dernier message: 06/05/2010, 20h19

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