42096823 Commencons Les Reseaux de Neurone Avec Matlab

download 42096823 Commencons Les Reseaux de Neurone Avec Matlab

of 18

Transcript of 42096823 Commencons Les Reseaux de Neurone Avec Matlab

  • 7/28/2019 42096823 Commencons Les Reseaux de Neurone Avec Matlab

    1/18

    Intelligence Artificielle TP 2 Rseaux de neurone 2010 2011

    TP 2 Commenons les rseaux de neuroneavec Matlab

    1.Objectif

    Ce TP explique comment utiliser deux outils graphiques pour rsoudredes problmes par les rseaux de neurone.Les deux outils que nous allons prsenter dans ce TP sont l'ajustement defonction et la classification.L'utilisation de ces deux outils nous donnera une excellente introduction

    l'utilisation de la Bote outils des Rseaux de Neurone (Neural NetworkToolbox software).

    2.Prsentation des rseaux de neurone

    Les rseaux de neurone sont composs par des lments simplesfonctionnant en parallle. Ces lments sont inspirs par des systmesnerveux biologiques. Comme dans la nature, les connexions entre ceslments dterminent en grande partie la fonction de rseau. Nous

    pouvons exploiter un rseau de neurone pour excuter une fonctionparticulire en ajustant les valeurs (paramtres) des connexions (despoids) entre ces lments.

    Typiquement, les rseaux de neurone sont ajusts, ou forms, pour qu'unobjet entr (input) mne une production cible (target) spcifique. Lafigure ci dessous illustre une telle situation.

    Le rseau est ajust en se basant sur une comparaison de la production etla cible (target), jusqu' ce que la production de rseau correspond lacible (target). Typiquement plusieurs tel paires Entr/Cible (Input/Target)

    sont ncessaire pour former un rseau.

    M. HELAOUI

  • 7/28/2019 42096823 Commencons Les Reseaux de Neurone Avec Matlab

    2/18

    Intelligence Artificielle TP 2 Rseaux de neurone 2010 2011

    Les rseaux de neurone ont t forms pour excuter des fonctionscomplexes dans des divers domaines, comme la reconnaissance deformes, l'identification, la classification, le discours, la vision et dessystmes de commande.

    3.Exemple Illustrative: Classification des fruits

    TAF :

    Dans la command window tapez:>> nnd3pc Cliquer sur Go Dcrire lexemple. Que fera la machine pour classer le fruit ? Quelle est la mthode ou technique de classification utilise ? Il est possible dutiliser dautres techniques : dans la command

    window tapez:>> nnd3hamc

    Quelle est la nouvelle technique de classification utilise ? Quelle est la technique de classification utilise en tapant la

    commende ci dessous?>>nnd3hopc

    Dfinir les rseaux de neurone en prsentant son apport pourlIntelligence Artificielle.

    Les rseaux neuraux peuvent aussi tre forms pour rsoudre lesproblmes qui sont difficiles mme pour des ordinateurs conventionnelsou pour les tre humain. La bote outils souligne l'utilisation desrseaux de neurone dans lingnierie, la finance et d'autres applicationspratiques.

    1.Fonctions dajustement

    M. HELAOUI

  • 7/28/2019 42096823 Commencons Les Reseaux de Neurone Avec Matlab

    3/18

    Intelligence Artificielle TP 2 Rseaux de neurone 2010 2011

    Supposons, par exemple, que nous avons des donnes d'unedemande de logement [HaRu78]. Nous voulons concevoir un rseauqui peut prvoir la valeur d'une maison, tant donn 13 picesd'informations gographiques et immobilires. Nous avons un total

    de 506 exemples de maisons pour lesquelles nous avons ces 13packs de donnes.

    4.1 Prsentation du problme

    Pour dfinir un problme la bote outils, arrangeons unensemble de vecteurs d'entrs Q comme des colonnes dans unematrice. Ensuite, arrangeons un autre ensemble de vecteurs de ciblede Q (le vecteur production correct pour chaque vecteur d'entr)dans une deuxime matrice. Par exemple, nous pouvons dfinir leproblme dajustement du Boolen ET portant sur quatre ensembles deux lments de vecteurs d'entrs et un lment de cible commesuit :

    >>inputs = [0 1 0 1; 0 0 1 1];>>targets = [0 0 0 1];

    La sous section suivante dmontre comment apprendre un rseau adapter un ensemble de donnes, utilisant l'outil d'ajustement derseau de neurone, nftool. Cet exemple utilise le jeu de donnes delogement fourni avec la bote outils.

    4.2 Utilisation de l'Outil d'Ajustement de Rseau deNeurone

    1 Ouvrir loutil dajustement en tapant:

    >>nftool

    M. HELAOUI

  • 7/28/2019 42096823 Commencons Les Reseaux de Neurone Avec Matlab

    4/18

    Intelligence Artificielle TP 2 Rseaux de neurone 2010 2011

    2 Cliquer Next pour procder.

    3 Cliquer Load Example Data Set dans la fentre Select Data. La fentreFitting Data Set Chooser souvre.

    M. HELAOUI

  • 7/28/2019 42096823 Commencons Les Reseaux de Neurone Avec Matlab

    5/18

    Intelligence Artificielle TP 2 Rseaux de neurone 2010 2011

    Noter Utiliser les options dentrs (Inputs) et cibles (Targets) dans lafentre Select Data lorsque vous avez besoin dimporter des donns deMATLAB workspace.

    4 Selectionner House Pricing, et cliquer Import. Ceci retourne la fentreSelect Data.

    5 Cliquer Next pour afficher la fentre Validation and Test Data, voir lafigure ci-dessous.Les ensembles Validation et test data prennent chacun 15% commevaleurs dorigine.

    M. HELAOUI

  • 7/28/2019 42096823 Commencons Les Reseaux de Neurone Avec Matlab

    6/18

    Intelligence Artificielle TP 2 Rseaux de neurone 2010 2011

    Avec ces fixations de donns, les vecteurs d'entrs et les vecteurs ciblesseront alatoirement diviss dans trois ensembles comme suit :70% sera utilis pour la formation (training).

    15% sera utilis pour valider le rseau gnralis et arrter la formationauparavant de l'ajustement.Les 15% restante sera utilise comme un test compltementindpendant de la gnralisation de rseau.

    6 Cliquer Next.Le rseau standard qui est utilis pour l'ajustement de fonction est unrseau feedforward deux couches, avec une fonction de transfert desigmoid dans la couche cache et une fonction de transfert linaire dans lacouche de production. Le nombre par dfaut de neurones cachs est mis 10. Vous pourriez augmenter ce nombre plus tard, si le rseau formant la

    performance est pauvre.

    M. HELAOUI

  • 7/28/2019 42096823 Commencons Les Reseaux de Neurone Avec Matlab

    7/18

    Intelligence Artificielle TP 2 Rseaux de neurone 2010 2011

    7 Cliquer Next.

    8 Cliquer Train.La formation continu jusqu' lchec de l'erreur de validation diminuerdurant six itrations (l'arrt de validation).

    M. HELAOUI

  • 7/28/2019 42096823 Commencons Les Reseaux de Neurone Avec Matlab

    8/18

    Intelligence Artificielle TP 2 Rseaux de neurone 2010 2011

    9 Cliquer Rgression. Ceci est utilis pour valider la performance derseau.Les reprsentations de rgression suivantes montrent les productions derseau en respectant les cibles forms, la validation et les testes desensembles. Pour une crise parfaite, les donnes devraient chuter le longde 45 degr, o les productions de rseau sont gales aux cibles. Pour ceproblme, la crise est raisonnablement bonne pour tous les ensembles dedonnes, avec des valeurs de R de 0.93 dans chaque cas. Si des rsultatsencore plus prcis ont t exigs, vous pourriez recycler le rseau parcliquer Recyclent dans nftool. Cela changera les poids initiaux et les

    prventions du rseau et peut produire un rseau amlior aprsRetraining. On fournit d'autres options sur le carreau suivant.

    M. HELAOUI

  • 7/28/2019 42096823 Commencons Les Reseaux de Neurone Avec Matlab

    9/18

    Intelligence Artificielle TP 2 Rseaux de neurone 2010 2011

    10 Considrez l'histogramme d'erreur pour obtenir une vrificationsupplmentaire de la performance de rseau. Sur le Plots pane, cliquerError Histogram.

    M. HELAOUI

  • 7/28/2019 42096823 Commencons Les Reseaux de Neurone Avec Matlab

    10/18

    Intelligence Artificielle TP 2 Rseaux de neurone 2010 2011

    Les barres bleues reprsentent des donnes de formation, les barresvertes reprsentent des donnes de validation et les barres rougesreprsentent des donnes de test. L'histogramme peut vous donner uneindication d'outliers, qui sont des points de donnes o la crise estsignificativement plus mauvaise que la majorit de donnes. Dans ce cas,vous pouvez voir que tandis que la plupart d'erreurs chutent entre -5 et 5,cest un point de formation avec une erreur de 17 et des points devalidation avec des erreurs de 12 et 13. Ces outliers sont aussi visibles surle complot de rgression de test. Le premier correspond au point avec unecible de 50 et la production prs de 33. C'est une bonne ide de vrifierl'outliers pour dterminer si les donnes sont mauvaises, ou si ces pointsde donnes sont diffrents que le reste densemble de donnes. Sil'outliers sont des points de donnes valables, mais elles sont diffrentesdu reste des donnes, donc le rseau extrapole pour ces points. Vousdevriez rassembler plus de donnes qui ressemblent aux points d'outlieret recycler le rseau.11 Cliquer Ensuite dans l'Outil d'Ajustement de Rseau de Neurone pourvaluer le rseau.

    M. HELAOUI

  • 7/28/2019 42096823 Commencons Les Reseaux de Neurone Avec Matlab

    11/18

    Intelligence Artificielle TP 2 Rseaux de neurone 2010 2011

    ce point, vous pouvez tester le rseau contre de nouvelles donnes. Sivous tes peu satisfaits avec la performance du rseau sur les donnesoriginales ou nouvelles, vous pouvez faire une des choses suivantes :

    Train cela de nouveau.Increase le numro de neurones.Get un ensemble plus grand de donnes de formation.Si la performance sur lensemble de formation est bonne, mais laperformance de lensemble de test est significativement plus mauvaise,qui pourrait indiquer le sur ajustement, donc la rduction du nombre deneurones peut amliorer vos rsultats. En formant une performanceFaible, alors vous pouvez augmenter le nombre de neurones.12 si vous tes satisfaits de la performance de rseau, cliquez Ensuite.13 Utilisent les boutons sur cet cran pour produire des scnarios ousauver vos rsultats.

    M. HELAOUI

  • 7/28/2019 42096823 Commencons Les Reseaux de Neurone Avec Matlab

    12/18

    Intelligence Artificielle TP 2 Rseaux de neurone 2010 2011

    - Vous pouvez cliquer sur le Simple Script ou Advanced Script pourcrer le code MATLAB qui peut tre utilis pour reproduire tous lestapes prcdents de la ligne de commande. La cration du code MATLAB peut tre utile si vous voulez apprendre comment utilisez lafonctionnalit de ligne de commande de la bote outils pourpersonnaliser le processus de formation.- Vous pouvez aussi faire sauver le rseau comme le rseau dans l'espacede travail. Vous pouvez y excuter des tests supplmentaires ou le mettrepour travailler sur de nouveaux entrs.14 Quand vous avez cr le code MATLAB et a sauv vos rsultats,cliquer Finish.

    4.3 Comment utiliser la fonctionalit de la ligne decommande

    La faon la plus facile d'apprendre comment utiliser la fonctionnalitde ligne de commande de la bote outils est de produire des scnariosdu GUIS et les modifier ensuite pour personnaliser la formation de rseau.Comme un exemple, regardez le scnario simple qui a t cr l'tape13 de la section prcdente.

    % Solve an Input-Output Fitting problem with a Neural Network

    % Script generated by NFTOOL%

    M. HELAOUI

  • 7/28/2019 42096823 Commencons Les Reseaux de Neurone Avec Matlab

    13/18

    Intelligence Artificielle TP 2 Rseaux de neurone 2010 2011

    % This script assumes these variables are defined:%% houseInputs - input data.% houseTargets - target data.inputs = houseInputs;

    targets = houseTargets;% Create a Fitting NetworkhiddenLayerSize = 10;net = fitnet(hiddenLayerSize);% Set up Division of Data for Training, Validation, Testingnet.divideParam.trainRatio = 70/100;net.divideParam.valRatio = 15/100;net.divideParam.testRatio = 15/100;% Train the Network[net,tr] = train(net,inputs,targets);% Test the Networkoutputs = net(inputs);errors = gsubtract(outputs,targets);performance = perform(net,targets,outputs)% View the Network

    view(net)

    % Plots% Uncomment these lines to enable various plots.%figure, plotperform(tr)%figure, plottrainstate(tr)

    %figure, plotfit(targets,outputs)%figure, plotregression(targets,outputs)%figure, ploterrhist(errors)

    Vous pouvez sauver le scnario et l'excuter ensuite de la ligne decommande pour vous reproduire les rsultats de la session GUIprcdente. Vous pouvez aussi diter le scnario personnaliser leprocessus de formation. Dans ce cas, suivez chaque scnario.0 le scnario suppose que les vecteurs d'entrs et les vecteurs cibles sontdj chargs dans l'espace de travail. Si les donnes ne sont pascharges, vous pouvez les charger comme Suit :

    load house_datasetinputs = houseInputs;targets = houseTargets;

    Cet ensemble de donnes est un des ensembles de donnes types qui faitpartie de la bote outils. Vous pouvez voir une liste de tous lesensembles de donnes disponibles en entrant la commande helpnndatasets.

    La commande de chargement vous permet aussi de charger les variablesde n'importe quel de ces ensembles de donnes utilisant votre propre nomde variable.Par exemple, la commande

    M. HELAOUI

  • 7/28/2019 42096823 Commencons Les Reseaux de Neurone Avec Matlab

    14/18

    Intelligence Artificielle TP 2 Rseaux de neurone 2010 2011

    [inputs,targets] = house_dataset;

    1 Crez un rseau. Le rseau par dfaut pour ajustement de fonction (ourgression) les problmes, fitnet, sont un rseau feedforward avec lebronzage-sigmoid par dfaut la fonction de transfert dans la couche

    cache et le transfert linaire fonctionne dans laCouche de production. Vous avez assign dix neurones (quelque peuarbitraire) celuiCouche cache dans la section prcdente. Le rseau a un neurone deproduction,Parce qu'il y a seulement une valeur cible associe chaque vecteurdentrs.hiddenLayerSize = 10;net = fitnet(hiddenLayerSize);2 Fondez la division de donnes.

    net.divideParam.trainRatio = 70/100;net.divideParam.valRatio = 15/100;net.divideParam.testRatio = 15/100;

    Avec ces fixations, les vecteurs d'entrs et les vecteurs cibles serontalatoirement diviss, avec 70 % utiliss pour la formation, 15 % pour lavalidation et 15 % pour le test.

    3 Formez le rseau. Le rseau utilise par dfaut lalgorthme de Levenberg-Marquardt pour la formation the network (trainlm). Pour former le rseau,

    entrer:[net,tr] = train(net,inputs,targets);

    Pendant la formation, la fentre de formation suivante s'ouvre. Cesaffichages de fentre formant le progrs et vous permettent d'interromprela formation n'importe quel point en cliquant Stop Training.

    M. HELAOUI

  • 7/28/2019 42096823 Commencons Les Reseaux de Neurone Avec Matlab

    15/18

    Intelligence Artificielle TP 2 Rseaux de neurone 2010 2011

    Cette formation s'est arrte quand l'erreur de validation a augment

    durant six itrations, ce qui se fera l'itration 23. Si vous cliquezPerformance dans la fentre de formation, Un affichage des erreursdune formation, des erreurs de validation et des erreurs de test apparat,comme indiqu dans la figure suivante.Dans cet exemple, le rsultat est raisonnable cause des considrationssuivantes :L'erreur carre moyenne finale est petite.L'erreur de lensemble test et lerreur de lensemble validation ont descaractristiques semblables.Pas de surajustement significatif obtenu par l'itration 17 (o on a obtenula meilleure performance de validation).

    M. HELAOUI

  • 7/28/2019 42096823 Commencons Les Reseaux de Neurone Avec Matlab

    16/18

    Intelligence Artificielle TP 2 Rseaux de neurone 2010 2011

    4Testez le rseau. Aprs que le rseau a t form, vous pouvez l'utiliserpour calculer les productions de rseau. Le code suivant calcule lesproductions de rseau, des erreurs et la performance complte.outputs = net(inputs);errors = gsubtract(targets,outputs);performance = perform(net,targets,outputs)

    Il est aussi possible de calculer la performance de rseau seulement sur lelensemble de test, en utilisant les indices de test, qui sont placs dans le

    rapport de formation.

    tInd = tr.testInd;tstOutputs = net(inputs(tInd));tstPerform = perform(net,targets(tInd),tstOutputs)

    5 Excutez quelques analyses de la rponse de rseau. Si vous cliquezRegression dans la fenetre de formation (training window), Vous pouvezexcuter une rgression linaire entre les productions de rseau et lescibles correspondantes.

    La figure suivante montre les rsultats.

    M. HELAOUI

  • 7/28/2019 42096823 Commencons Les Reseaux de Neurone Avec Matlab

    17/18

    Intelligence Artificielle TP 2 Rseaux de neurone 2010 2011

    La production suit la trace les bons cibles pour la formation, le test et lavalidation et la R-valeur est plus de 0.95 pour la rponse totale. Si des

    rsultats encore plus prcis ont t exigs, vous pourriez essayern'importe laquelle de ces approches :

    Reset les poids de rseau initiaux et les prventions nouvelles valeursavec init et train de nouveau.Augmenter le nombre de neurones cachs. Augmenter le nombre de vecteurs de formation. Augmenter le nombre de valeurs d'entrs, si des informations plusappropries sont disponibles.Essayez un algorithme de formation diffrent.Dans ce notre cas, la rponse de rseau est satisfaisante et vous pouvezmaintenant utiliser le rseau avec de nouveaux entrs.

    M. HELAOUI

  • 7/28/2019 42096823 Commencons Les Reseaux de Neurone Avec Matlab

    18/18

    Intelligence Artificielle TP 2 Rseaux de neurone 2010 2011

    6 Considrez le diagramme de rseau.view(net)Cela cre le diagramme de rseau suivant.

    Pour obtenir plus d'exprience dans des oprations de ligne decommande, essayez certaines de ces tches :

    Pendant la formation, ouvrez une fentre daffichage (comme laffichagede rgression) et animez la Affichez de la ligne de commande avec les fonctions comme plotfit,plotregression, plottrainstate et plotperform.

    M HELAOUI