discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/266392354
CITATIONS READS
0 1,649
1 author:
Maher Helaoui
Institut Suprieur d'Administration des Entreprises de Gafsa
19 PUBLICATIONS 8 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Maher Helaoui on 05 October 2014.
Contact : maher.helaoui@gmail.com
Site : www.sites.google.com/site/maherhelaoui/Home/
(ISIMa 2011)
Intelligence artificielle Introduction Matlab ISIMa 2011
Sommaire
Premire partie : Introduction Matlab ..................................................................... 2
TP1 Initiation Matlab ..................................................................................................... 3
Introduction ................................................................................................................. 3
Matlab comme interprteur en ligne .......................................................................... 3
Un peu de mthode ...................................................................................................... 4
Ctrl-C Ctrl-V, M-files, fonctions : rationalisons notre travail .................................... 8
Fonctions...................................................................................................................... 9
TAF .............................................................................................................................. 9
Instructions et structures de contrle ......................................................................... 9
Un peu plus sur la programmation ............................................................................10
Les figures ..................................................................................................................10
TAF .............................................................................................................................12
Deuxime partie : LES RESEAUX DE NEURONES ........................................................14
TP2 Ajustement de fonction et classification.................................................................15
Objectif ........................................................................................................................15
Prsentation des rseaux de neurones.......................................................................15
TAF .............................................................................................................................16
TAF : Exemple Illustrative de Classification des fruits ............................................16
(Notes de Lecture) ......................................................................................................16
Fonctions dajustement ..............................................................................................17
TP3 Rseaux perceptron et rgles dapprentissage .......................................................31
Objectif ........................................................................................................................31
Modle de Neurone .....................................................................................................31
TAF .............................................................................................................................33
Architecture ................................................................................................................34
Cration dun perceptron : TAF .................................................................................34
Simulation (sim) .........................................................................................................36
TAF .............................................................................................................................36
Initialization (init) : TAF ............................................................................................37
Rgles daprentissage .................................................................................................37
Rgles dapprentissage du perceptron .......................................................................38
TAF .............................................................................................................................39
Troisime partie : La logique floue .............................................................................41
TP4 Utiliser un rgulateur avec Matlab ........................................................................42
Exemple 0 Application avec Matlab ...........................................................................42
Exemple 1 Contrle du niveau d'eau .........................................................................45
TAF : ...........................................................................................................................48
TP5 Exemple de Freinage ..............................................................................................50
TAF .............................................................................................................................54
Questions ................................................................................................................54
Rfrences de base .........................................................................................................55
M.Helaoui
1
Intelligence artificielle Introduction Matlab ISIMa 2011
Premire partie :
Introduction Matlab
M.Helaoui
2
Intelligence artificielle Initiation Matlab ISIMa 2011
Dmarrer Matlab
1. Trouvez Matlab sur votre ordinateur.
2. Dmarrez le programme. Un certain nombre de fentres apparaissent. Les plus
importantes sont l'interprteur en ligne et la fentre Help. Si cette dernire
n'apparat pas, dans l'onglet Help slectionnez Matlab Help.
C'est tout ; l'aide en ligne est extrmement conviviale et permet d'acqurir tout seul la
matrise du logiciel
Ce manuel se propose tout de mme de dcrire l'utilisation du logiciel pour une
utilisation en intelligence artificielle (La logique floue et les rseaux de neurones).
Arrter Matlab
Taper quit ou exit ou fermez les fentres.
Premiers pas
Au lancement de Matlab, une fentre s'ouvre et propose le prompt >> : on est en
prsence de l'interprteur en ligne.
M.Helaoui
3
Intelligence artificielle Initiation Matlab ISIMa 2011
Premier essai
Taper 2+2 et appuyez sur envoi. L'affichage propose alors :
>> 2+2
ans =
4
>>
Bravo : Matlab sait rsoudre des oprations
Deuxime essai
Taper a=2 et envoi. L'affichage propose :
>> a=2
a=
2
>>
Bravo : Matlab sait manipuler des objets.
Pour travailler en silence : taper a=2; L'affichage propose :
>>a=2;
>>
Troisime essai
Taper i^2. La rponse est :
>> i^2
ans =
-1
>>
Ouf. Matlab sait manipuler des nombres complexes voire compliqus.
Un peu de mthode
TAF.
Choisir un rpertoire de travail (Nom de ltudiant : Tous les exemples, les fichiers.m et
ou fichiers.mat, les figures doivent tre tests et enregistrs dans ce rpertoire)
Avant toutes choses, choisir un rpertoire de travail : c'est dans celui-ci que vous
stockerez vos fichiers personnels. Dans la barre de menu, utilisez File/Set Path
Les expressions
La programmation en Matlab consiste en l'enchanement d'expressions composes de
variables, de nombres, doprateurs et de fonctions.
Variables
Il n'est pas ncessaire de dclarer le type ou la dimension des variables : Matlab choisit
selon le contexte.
M.Helaoui
4
Intelligence artificielle Initiation Matlab ISIMa 2011
Par exemple :
a=2.37
Cre la variable a de dimension 1 et lui attribue la valeur 2.37.
Autre exemple :
>> a(2)=1.5
a=
2.37 1.5
>>
reprend la variable a et modifie sa dimension : c'est maintenant un vecteur de dimension
2 dont la deuxime valeur vaut 1.5
Nombres
Exemples de nombres :
3 -99 0.001
1.6e-20 1i -3.14j
3e5i
Les nombres ont jusqu' 16 chiffres significatifs et doivent rester entre 10-308 et 10+308.
Matrices
Exemple :
>> mamatrice=[1 2 3;4,5,6;7 8,9]
mamatrice =
1 2 3
4 5 6
7 8 9
>>
Les donnes sont entres en ligne, spares par des virgules ou des espaces. Les lignes
sont spares par des point virgules.
Oprateurs
+ Addition - Soustraction
* Multiplication / Division
Puissance ./ Division lment par
lment (matrices)
' Conjugu et transpose .* Multiplication
lment par lment
(matrices)
.' Transpose
Pour la liste des oprateurs disponibles, tapez help ops.
Fonctions
Pour obtenir une liste des fonctions mathmatiques lmentaires taper :
>>help elfun
M.Helaoui
5
Intelligence artificielle Initiation Matlab ISIMa 2011
M.Helaoui
6
Intelligence artificielle Initiation Matlab ISIMa 2011
Les structures
Matlab permet de manipuler des donnes sous formes de structures : les donnes sont
ranges dans une arborescence et accessibles par des champs. L'exemple suivant permet
de comprendre comment crer une structure simple :
>> toto.tata=[1 2 3 4]
toto =
tata: [1 2 3 4]
>> toto.titi=2
toto =
tata: [1 2 3 4]
titi: 2
>> toto
toto =
tata: [1 2 3 4]
titi: 2
>>
La structure toto contient deux champs : tata (qui est un vecteur de dimension 4) et titi
(qui est un entier). Pour accder un lment de la structure, on utilise le point :
>> toto.tata
ans =
1 2 3 4
>>
Bien sr, on peut imbriquer plus de deux champs et inclure des variables de nature
diffrentes. Ainsi le "papa du papa du papa de mon papa tait un fameux pioupiou"2
donne :
>>papa.papa.papa.papa='fameux pioupiou';
1 Par exemple pour tre trait par un autre logiciel comme Excel
2 Paroles et musique Boby Lapointe
M.Helaoui
7
Intelligence artificielle Initiation Matlab ISIMa 2011
Historique
Les flches de direction () permettent de retrouver et modifier les lignes de
commandes prcdentes.
La version 2009a de Matlab propose une fentre command history qui garde en mmoire
les commandes passes dans la session courante et dans les sessions prcdentes.
Scripts
L'tape suivante consiste crer des scripts : il s'agit de fichiers textes comprenant un
ensemble de commandes. Pour cela le plus simple consiste utiliser l'diteur/Debugger
de Matlab.
Crons par exemple un nouveau script :
File / New / M-file
Puis crivons la squence de commande qui nous intresse :
%Mon premier script
a=2;
b=3;
a+b
Sauvegardons ce script dans un fichier : File / Save As puis choisir un nom de fichier, par
exemple essai. Notons que Matlab ajoute l'extension .m par dfaut.
Pour lancer le script depuis Matlab il suffit de taper son nom essai sans l'extension .m.
L'affichage propose alors :
>> essai
ans=
5
>>
Deux remarques :
1. La ligne prcde du caractre % n'a pas t interprte : il s'agit d'une ligne de
commentaires.
2. Seule les expressions qui ne sont pas termines par un point virgule ( ; ) sont visibles
dans la fentre de l'interprteur.
M.Helaoui
8
Intelligence artificielle Initiation Matlab ISIMa 2011
Fonctions
Les M-files permettent aussi de dfinir des fonctions. A la diffrence des scripts, les
variables dfinies dans une fonction sont locales. Examinons par exemple le m-file
comportant les lignes d'instruction suivantes :
TAF
1. Developper, Moyenne.m la fonction
function Moy = Moyenne(n, Note_2009, Note_2008, coef)
%Cette fonction permet le calcul de la moyenne d'un etudiant tel que
n %est le nombre de notes, Note_200X est lensemble des notes
obtenues en %200X et coef est lensemble des coefficients.
M.Helaoui
9
Intelligence artificielle Initiation Matlab ISIMa 2011
Les figures
Matlab permet de crer des graphiques complexes et d'en contrler les moindres dtails.
Ce chapitre donne l'essentiel savoir ainsi que quelques clefs pour aller plus loin.
M.Helaoui
10
Intelligence artificielle Initiation Matlab ISIMa 2011
sinusode
1
0.8
0.6
0.4
0.2
sinus de x
-0.2
-0.4
-0.6
-0.8
-1
0 1 2 3 4 5 6 7
x = 0:2
Variables complexes
Si Z est un vecteur de nombre complexes la fonction plot(Z) est quivalente
plot(real(Z),imag(Z)).
x=0:pi/100:pi*2;
M.Helaoui
11
Intelligence artificielle Initiation Matlab ISIMa 2011
subplot(2,2,1);plot(x,sin(x);
subplot(2,2,1);plot(x,sin(x));
subplot(2,2,2);plot(x,cos(x));
subplot(2,1,2);plot(x,cos(x).*cos(x));
1 1
0.5 0.5
0 0
-0.5 -0.5
-1 -1
0 2 4 6 8 0 2 4 6 8
0.8
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7
Le premier subplot partitionne en deux lignes et deux colonnes et place le pointeur sur la
premire case. Le second subplot partitionne de la mme manire et place le pointeur sur
la deuxime case. Le troisime subplot partitionne en deux lignes et une seule colonne et
place le pointeur sur la deuxime case (la deuxime ligne).
TAF
1. Tracer dans le mme graphe dans un premier subplot les notes de Najah en 2008
et en 2009, et dans un second subplot les notes de Raceb en 2008 et en 2009.
M.Helaoui
12
Intelligence artificielle Initiation Matlab ISIMa 2011
Rfrences
http://www.mathworks.com/ LA socit Mathworks, qui dveloppe et commercialise Matlab
http://pauillac.inria.fr/cdrom/www/scilab/fra.htm La page officielle de Scilab
M.Helaoui
13
Intelligence artificielle Les rseaux de neurones ISIMa 2011
DEUXIEME PARTIE :
LES RESEAUX DE
NEURONES
M.Helaoui
14
Intelligence artificielle Ajustement de fonctions et classification ISIMa 2011
TP2 Ajustement de
fonction et
classification
Objectif
Ce TP explique comment utiliser deux outils graphiques : lajustement de fonctions et la
classification. Ceci pour rsoudre des problmes en appliquant la technique des rseaux de neurones.
L'utilisation de ces deux techniques nous donnera une excellente introduction l'utilisation de la bote
outils des rseaux de neurones (neural network toolbox software).
M.Helaoui
15
Intelligence artificielle Ajustement de fonctions et classification ISIMa 2011
Les rseaux de neurones ont t forms pour excuter des fonctions complexes dans des divers
domaines, comme la reconnaissance de formes, l'identification, la classification, le discours, la
vision et des systmes de commande.
TAF
- Dcrire le rle des rseaux de neurones en se basant sur la figure ci-dessus.
(Notes de Lecture)
Les rseaux de neurones peuvent aussi tre utiliss pour rsoudre des problmes qui sont difficiles
mme pour des ordinateurs conventionnels ou pour des tres humains. La bote outils souligne
l'utilisation des rseaux de neurones dans lingnierie, la finance et d'autres applications pratiques.
M.Helaoui
16
Intelligence artificielle Ajustement de fonctions et classification ISIMa 2011
Fonctions dajustement
Supposons, par exemple, que nous avons des donnes d'une demande de logement
[HaRu78]. Nous voulons concevoir un rseau qui peut prvoir la valeur d'une maison, tant
donn 13 pices d'informations gographiques et immobilires. Nous avons un total de 506
exemples de maisons pour lesquelles nous avons ces 13 packs de donnes.
Prsentation du problme
>>Q = [0 1 0 1; 0 0 1 1];
>>T = [0 0 0 1];
>>nftool
M.Helaoui
17
Intelligence artificielle Ajustement de fonctions et classification ISIMa 2011
3 Cliquer Load Example Data Set dans la fentre Select Data. La fentre Fitting Data Set Chooser
souvre.
Noter Utiliser les options dentrs (Inputs) et cibles (Targets) dans la fentre Select Data lorsque
vous avez besoin dimporter des donns de MATLAB workspace.
4 Selectionner House Pricing, et cliquer Import. Ceci retourne la fentre Select Data.
5 Cliquer Next pour afficher la fentre Validation and Test Data, voir la figure ci-dessous.
Les ensembles Validation et test data prennent chacun 15% comme valeurs dorigine.
M.Helaoui
18
Intelligence artificielle Ajustement de fonctions et classification ISIMa 2011
Avec ces fixations de donns, les vecteurs d'entrs et les vecteurs cibles seront 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 formation auparavant de l'ajustement.
Les 15% restante sera utilise comme un test compltement indpendant de la gnralisation de
rseau.
6 Cliquer Next.
Le rseau standard qui est utilis pour l'ajustement de fonction est un rseau feedforward deux
couches, avec une fonction de transfert de sigmoid dans la couche cache et une fonction de transfert
linaire dans la couche 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
19
Intelligence artificielle Ajustement de fonctions et classification ISIMa 2011
7 Cliquer Next.
8 Cliquer Train.
La formation continue jusqu' lchec de l'erreur de validation diminuer durant six itrations (l'arrt
de validation).
M.Helaoui
20
Intelligence artificielle Ajustement de fonctions et classification ISIMa 2011
M.Helaoui
21
Intelligence artificielle Ajustement de fonctions et classification ISIMa 2011
M.Helaoui
22
Intelligence artificielle Ajustement de fonctions et classification ISIMa 2011
Les barres bleues reprsentent des donnes de formation, les barres vertes reprsentent des donnes de
validation et les barres rouges reprsentent des donnes de test. L'histogramme peut vous donner une
indication d'outliers, qui sont des points de donnes o la crise est significativement 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 de validation avec des erreurs
de 12 et 13. Ces outliers sont aussi visibles sur le complot de rgression de test. Le premier correspond
au point avec une cible de 50 et la production prs de 33. C'est une bonne ide de vrifier l'outliers
pour dterminer si les donnes sont mauvaises, ou si ces points de donnes sont diffrents que le reste
densemble de donnes. Si l'outliers sont des points de donnes valables, mais elles sont diffrentes du
reste des donnes, donc le rseau extrapole pour ces points. Vous devriez rassembler plus de donnes
qui ressemblent aux points d'outlier et recycler le rseau.
11 Cliquer Ensuite dans l'Outil d'Ajustement de Rseau de Neurone pour valuer le rseau.
M.Helaoui
23
Intelligence artificielle Ajustement de fonctions et classification ISIMa 2011
ce point, vous pouvez tester le rseau contre de nouvelles donnes. Si vous tes peu satisfaits avec la
performance du rseau sur les donnes originales ou nouvelles, vous pouvez faire une des choses
suivantes :
Train de nouveau.
Augmenter le numro de neurones.
Choisir un ensemble plus grand de donnes de formation.
Si la performance sur lensemble de formation est bonne, mais la performance de lensemble de test
est significativement plus mauvaise, qui pourrait indiquer le sur ajustement, donc la rduction du
nombre de neurones peut amliorer vos rsultats. En formant une performance faible, alors vous
pouvez augmenter le nombre de neurones.
12 si vous tes satisfaits de la performance de rseau, cliquez Next.
13 Utilisez les boutons sur cet cran pour produire dautres scnarios ou sauvegarder vos rsultats.
M.Helaoui
24
Intelligence artificielle Ajustement de fonctions et classification ISIMa 2011
- Vous pouvez cliquer sur le Simple Script ou Advanced Script pour crer le code MATLAB qui
peut tre utilis pour reproduire tous les tapes prcdents de la ligne de commande. La cration du
code MATLAB peut tre utile si vous voulez apprendre comment utilisez la fonctionnalit de ligne
de commande de la bote outils pour personnaliser le processus de formation.
- Vous pouvez aussi faire sauver le rseau comme le rseau dans l'espace de travail. Vous pouvez y
excuter des tests supplmentaires ou le mettre pour travailler sur de nouveaux entrs.
14 Quand vous avez cr le code MATLAB et aprs avoir sauvegard vos rsultats, cliquer Finish.
M.Helaoui
25
Intelligence artificielle Ajustement de fonctions et classification ISIMa 2011
% 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 sauvegarder le scnario et l'excuter ensuite de la ligne de commande pour vous
reproduire les rsultats de la session GUI prcdente. Vous pouvez aussi diter le scnario
personnaliser le processus de formation. Dans ce cas, suivez chaque scnario.
0 le scnario suppose que les vecteurs d'entrs et les vecteurs cibles sont dj chargs dans l'espace de
travail. Si les donnes ne sont pas charges, vous pouvez les charger comme Suit :
load house_dataset
inputs = houseInputs;
targets = houseTargets;
Cet ensemble de donnes est un des ensembles de donnes types qui fait partie de la bote outils.
Vous pouvez voir une liste de tous les ensembles de donnes disponibles en entrant la commande
help nndatasets.
La commande de chargement vous permet aussi de charger les variables de n'importe quel de ces
ensembles de donnes utilisant votre propre nom de variable.
Par exemple, la commande
[inputs,targets] = house_dataset;
1 Crez un rseau. Le rseau par dfaut pour ajustement de fonction (ou rgression) les problmes,
fitnet, sont un rseau feedforward avec le bronzage-sigmoid par dfaut la fonction de transfert dans la
couche cache et le transfert linaire fonctionne dans la couche de production. Vous avez assign dix
neurones (quelque peu arbitraire) celui couche cache dans la section prcdente. Le rseau a un
neurone de production, parce qu'il y a seulement une valeur cible associe chaque vecteur dentrs.
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 seront alatoirement diviss, avec 70 %
utiliss pour la formation, 15 % pour la validation et 15 % pour le test.
M.Helaoui
26
Intelligence artificielle Ajustement de fonctions et classification ISIMa 2011
[net,tr] = train(net,inputs,targets);
Pendant la formation, la fentre de formation suivante s'ouvre. Ces affichages de fentre formant le
progrs et vous permettent d'interrompre la formation n'importe quel point en cliquant Stop
Training.
Cette formation s'est arrte quand l'erreur de validation a augment durant six itrations, ce qui se
fera l'itration 23. Si vous cliquez Performance dans la fentre de formation, Un affichage des
erreurs dune 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 considrations suivantes :
L'erreur carre moyenne finale est petite.
L'erreur de lensemble test et lerreur de lensemble validation ont des caractristiques semblables.
M.Helaoui
27
Intelligence artificielle Ajustement de fonctions et classification ISIMa 2011
4 Testez le rseau. Aprs que le rseau a t form, vous pouvez l'utiliser pour calculer les productions
de rseau. Le code suivant calcule les productions 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 lensemble 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 cliquez Regression dans la fenetre de
formation (training window), Vous pouvez excuter une rgression linaire entre les productions de
rseau et les cibles correspondantes.
La figure suivante montre les rsultats.
M.Helaoui
28
Intelligence artificielle Ajustement de fonctions et classification ISIMa 2011
La production suit la trace les bons cibles pour la formation, le test et la validation et la R-valeur est
plus de 0.95 pour la rponse totale. Si des rsultats encore plus prcis ont t exigs, vous pourriez
essayer n'importe laquelle de ces approches :
Reset les poids de rseau initiaux et les prventions nouvelles valeurs avec 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 plus appropries sont disponibles.
Essayez un algorithme de formation diffrent.
Dans notre cas, la rponse de rseau est satisfaisante et vous pouvez maintenant utiliser le rseau avec
de nouveaux entrs.
M.Helaoui
29
Intelligence artificielle Ajustement de fonctions et classification ISIMa 2011
Pour obtenir plus d'exprience dans des oprations de ligne de commande, essayez certaines de ces
tches :
Pendant la formation, ouvrez une fentre daffichage (comme laffichage de rgression) et animez la
Affichez de la ligne de commande avec les fonctions comme plotfit, plotregression, plottrainstate et
plotperform.
M.Helaoui
30
Intelligence artificielle Rseaux perceptron et rgles dapprentissage ISIMa 2011
TP3 Rseaux
perceptron et rgles
dapprentissage
Objectif
En effet, ce TP dfinit que signifie une rgle apprenante, explique le rseau perceptron et
son tude de la rgle et vous prsente comment initialiser et simuler des rseaux
perceptron. Il dcrit la bote outils de MATLAB permettant de crer un rseau de
perceptron simple tout en prsentant les fonctions pour initialiser et simuler de tels
rseaux. Le perceptron est utilis comme un lien de ces divers concepts.
Vous pouvez crer des rseaux perceptron avec la fonction newp. Ces rseaux peuvent
tre initialiss, simuls et forms avec init, sim, et train. Le modle de Neurone dcrit
comment les perceptrons travaillent tout en prsentant ces fonctions.
Modle de Neurone
Rosenblatt [Rose61] a cr plusieurs variations de perceptrons. Un du plus simples
tait un rseau dune seule couche dont les poids W et les prventions b pourraient tre
ajusts pour produire un vecteur cible correct en partant dun vecteur dentrs (Input) P.
Le perceptron occupe un grand intrt en raison de sa capacit de se gnraliser de ses
vecteurs de formation et apprendre en partant de connexions initialement alatoirement
distribues. Les perceptrons sont particulirement convenus pour des problmes de la
classification de modle simples. Ils sont des rseaux rapides et fiables pour les
problmes qu'ils peuvent rsoudre. De plus, une comprhension des oprations du
perceptron fournit une bonne base pour comprendre des rseaux plus complexes.
M.Helaoui
31
Intelligence artificielle Rseaux perceptron et rgles dapprentissage ISIMa 2011
Chaque entre externe est pondre avec un poids appropri W1j et la somme des
entres pondres est envoye la fonction de transfert hard-limit, qui a aussi une
entre de 1 transmise par le dplacement (la prvention) b. Ci-dessous on prsente la
fonction de transfert hard-limit, qui rend 0 ou 1 :
M.Helaoui
32
Intelligence artificielle Rseaux perceptron et rgles dapprentissage ISIMa 2011
Deux rgions de classification sont formes par la frontire de dcision L : Wp+b=0. Cette
ligne est perpendiculaire la matrice de poids W et change selon le dplacement b. Les
vecteurs d'entrs ci-dessus et gauche de la ligne L aboutiront un rseau dentres
plus grand que 0 et, donc, causent une production de 1 au neurone de hard-limit. Les
vecteurs d'entrs ci-dessous et droite de la ligne L causent une production de 0 au
neurone.
Les neurones de hard-limit sans un dplacement (b=0) auront toujours une ligne de
classification passant l'origine. L'ajout d'un dplacement b permet au neurone de
rsoudre des problmes o les deux ensembles de vecteurs d'entres ne sont pas placs
sur les cts diffrents de l'origine. Le dplacement permet la frontire de dcision
d'tre change loin de l'origine, comme indiqu dans la figure ci-dessus.
TAF
1. Crer un fichier Neurone.m
2. Excuter le programme nnd4db de dmonstration. Avec cela dplacer une
frontire de dcision autour, choisir de nouveaux entres pour classifier et voir
comment l'application rpte de la rgle apprenante rapporte un rseau qui
classifie vraiment les vecteurs d'entres correctement.
3. Trouver trois combinaisons {W,b} permettant de classifier lespace dentres
comme dsir sachant que P= [p1=5, p2=1]. Dans chaque proposition trouver
respectivement la valeur entire minimale respectivement de W11 W12 et b.
Travailler sous forme de commentaires.
4. Reprsenter ces trois solutions dans une mme figure (Utiliser un subplot pour
chaque solution, les trois subplots doivent occuper le mme espace. Dans chaque
subplot reprsenter la droite de dpart L et la droite solution Lsi avec une autre
couleur, noublier pas de tracer W et Wsi).
5. Proposer et implmenter un algorithme (sous forme de fonction nomme
classification) qui en faisant varier progressivement W11 W12 et b permet de
classifier lespace dentres comme dsir. Lalgorithme partira des valeurs de
M.Helaoui
33
Intelligence artificielle Rseaux perceptron et rgles dapprentissage ISIMa 2011
W11 W12 et b trs faible, choisis par lutilisateur, il calcule a, il affiche la dcision
courante, par la suite, il permet lutilisateur de choisir le poids ou le
dplacement qui sera incrment dune unit selon son dsir. Lalgorithme doit
sarrter lorsque a=1. Et il doit afficher W, b et la dcision.
6. Implmenter un second algorithme (sous forme de fonction nomme
classification_opt) qui en faisant varier un seul paramtre choisit par lutilisateur
retourne la valeur optimale de ce paramtre pour laquelle a=1.
Architecture
Le rseau perceptron est form dune seule couche : il sagit de S perceptrons de
neurones connects aux R entres par un un ensemble de poids
Wij, comme indiqu ci-dessous en deux formes. Comme auparavant, les indices de rseau
i et j indiquent que Wij est la force de la connexion du jme entre au ime neurone.
Le perceptron quon va tudier est capable de former seulement une seule couche. Ainsi
on considre des rseaux une seule couche ici. Ce qui nous prsente des limites au
perceptron.
net = newp(P,T)
M.Helaoui
34
Intelligence artificielle Rseaux perceptron et rgles dapprentissage ISIMa 2011
P est une matrice R-par-Q tel que Q reprsente les vecteurs dentres et R ses
lments.
T est une matrice S-par-Q tel que Q reprsente les vecteurs cible (target) et S ses
lments.
La fonction hardlim est utilise souvent par dfaut pour les perceptrons.
P = [0 2];
T = [0 1];
net = newp(P,T);
inputweights = net.inputweights{1,1}
ce qui produit:
inputweights =
delays: 0
initFcn: 'initzero'
learn: 1
learnFcn: 'learnp'
learnParam: []
size: [1 1]
userdata: [1x1 struct]
weightFcn: 'dotprod'
weightParam: [1x1 struct]
La fonction dinitialisation par dfaut est initzero et elle est utilise pour initialiser les
valeurs des poids 0.
3. Similairement taper
biases = net.biases{1}
donne
biases =
initFcn: 'initzero'
learn: 1
M.Helaoui
35
Intelligence artificielle Rseaux perceptron et rgles dapprentissage ISIMa 2011
learnFcn: 'learnp'
learnParam: []
size: 1
userdata: [1x1 struct]
Simulation (sim)
TAF
net.IW{1,1}
ans =
-1 1
net.b{1}
ans =
1
p1 = [1;1];
a1 = sim(net,p1)
a1 =
1
Et pour
p2 = [1;-1];
M.Helaoui
36
Intelligence artificielle Rseaux perceptron et rgles dapprentissage ISIMa 2011
a2 = sim(net,p2)
a2 =
0
p3 = {[1;1] [1;-1]};
a3 = sim(net,p3)
a3 =
[1] [0]
net = init(net);
net.inputweights{1,1}.initFcn = 'rands';
net.biases{1}.initFcn = 'rands';
net = init(net);
Rgles daprentissage
Une rgle dapprentissage est dfinie comme une procdure pour modifier W et b d'un
rseau. (Cette procdure peut aussi tre mentionne comme un algorithme recevant une
formation.) la rgle apprenante est applique pour apprendre au rseau excuter une
certaine tche particulire. L'tude de rgles dans ce tp traite deux larges catgories :
tude surveille et tude non surveille.
M.Helaoui
37
Intelligence artificielle Rseaux perceptron et rgles dapprentissage ISIMa 2011
Dans l'tude non surveille, W et b sont modifis en rponse seulement des entres au
rseau. Il n'y a aucune production cible disponible. La plupart de ces algorithmes
excutent des oprations pendantes par grappes. Ils catgorisent les modles d'entres
dans un nombre fini de classes. C'est particulirement utile dans de telles applications
que la quantification vectorielle.
Chaque fois la fonction learnp est excute, le perceptron aura une meilleure chance
dobtenir des productions correctes. La rgle dapprentissage du perceptron est prouve
pour converger vers une solution dans un nombre fini d'itrations si une telle solution
existe.
Si b n'est pas utilis, learnp cherche trouver une solution en variant seulement W pour
classifier les vecteurs d'entres comme 1 et loin de les classifier comme 0. Cela aboutit
une frontire de dcision qui est perpendiculaire W et qui classifie correctement les
vecteurs dentres.
Il y a trois conditions qui peuvent arriver pour un neurone simple une fois qu'un vecteur
d'entre P est prsent et la rponse du rseau a est calcule :
1er CAS. Si un vecteur d'entre P est prsent et la production du neurone est correcte (a
= T et e = T - a = 0), donc le vecteur de poids W ne sera pas chang.
M.Helaoui
38
Intelligence artificielle Rseaux perceptron et rgles dapprentissage ISIMa 2011
DeltatW = 0.
CASE 2. Si (e = 1) alors
DeltatW = PT.
DeltatW = -PT.
Vous pouvez obtenir l'expression pour des changements de b d'un neurone en notant que
b est simplement un poids qui a toujours des entres de 1 :
TAF
p = [1; 2];
t = [1];
M.Helaoui
39
Intelligence artificielle Rseaux perceptron et rgles dapprentissage ISIMa 2011
dw = learnp(w,p,[],[],[],[],e,[],[],[])
dw =
1 2
M.Helaoui
40
Intelligence artificielle Rseaux perceptron et rgles dapprentissage ISIMa 2011
Troisime partie :
La logique floue
M.Helaoui
41
Intelligence artificielle Utiliser un rgulateur avec Matlab ISIMa 2011
TP4 Utiliser un
rgulateur avec
Matlab
Exemple 0 Application avec Matlab
Principe
Le calcul en logique floue ncessite, outre la licence de base MATLAB, l'achat et
l'installation du Fuzzy Control Toolbox. Celui-ci met disposition de l'utilisateur deux
outils fondamentaux:
Un guide de construction du rgulateur par logique floue.
Un bloc fonctionnel intgrer dans un schma de rgulation Simulink.
Conception du rgulateur
On accde la fentre principale du FIS Editor par une instruction sur la ligne de
commande MATLAB: fuzzy
M.Helaoui
42
Intelligence artificielle Utiliser un rgulateur avec Matlab ISIMa 2011
On y choisit premirement le nombre d'entres depuis la barre de menu: Edit --> Add
input. On trouve alors sur la fentre principale du FIS Editor autant d'icnes qu'on
veutde signaux d'entres et sorties, et une pour les rgles d'infrence. La partie
infrieure permette de spcifier les mthodes d'infrences. On accde alors une
fentre spcifique par un double clics sur l'icne du signal dont on veut spcifier les
fonctions d'appartenance.
M.Helaoui
43
Intelligence artificielle Utiliser un rgulateur avec Matlab ISIMa 2011
Lorsque tous les signaux sont spcifis, on ouvre l'diteur des rgles d'infrence:
M.Helaoui
44
Intelligence artificielle Utiliser un rgulateur avec Matlab ISIMa 2011
Essai en simulation
On cre un schma Simulink dans lequel on colle un bloc "Fuzzy Logic Controller"
qu'on trouve dans la bote "SIMULINK Fuzzy", elle-mme place dans la bote
"Blocksets & Toolboxes". On doit y spcifier un nom de rgulateur parmi ceux chargs
prcdemment dans l'espace de travail. Ce bloc doit tre prcd de blocs gain chargs
de la normalisation des signaux et suivi d'un gain ajustable de l'amplification du
rgulateur.
(http://www.tn.refer.org/hebergement/cours/logique_floue/_we_hinfo/trav1.htm)
Le menu view permet de passer dune interface graphique une autre. On dfinit
ensuite les ensembles flous et les fonctions dappartenances de lentre level en
utilisant loption add mfs du menu dit. On prcisera alors le type de ces fonctions :
gaussinnes et lintervalle sur le quel varie cette entre.
M.Helaoui
45
Intelligence artificielle Utiliser un rgulateur avec Matlab ISIMa 2011
On fait de mme pour lentre variation de niveau: rate et on sintressera aux petites
variations.
M.Helaoui
46
Intelligence artificielle Utiliser un rgulateur avec Matlab ISIMa 2011
Sur le Rule Editor on dfinit les rgles dinfrences liants les entres et la sortie du
rgulateur. On dfinit chaque fois la relation logique entre les deux entres, ensuite
on choisit la sortie quon va appliquer et on clique sur add rule.
Une fois les entres sont dfinies, ainsi que la sortie et les rgles, on enregistre notre
systme dinfrence (le rgulateur flou cre) dans le workspace sous le nom tank.fis.
Lors de la construction du modle du systme sur SIMULINK on utilisera le bloc Fuzzy
Controller pour modliser le rgulateur flou. Et en cliquant sur ce bloc, on nous invite
prciser quel systme d'infrences on va utiliser, On choisira alors le tank.fis. Une fois
la simulation est lance on peut voir la rponse du systme sur le scope1. Les interfaces
Rule Viewer et Surface Viewer sactivent avec la simulation.
Le rule viewer qui sactive pendant la simulation nous permet de voir la participation
M.Helaoui
47
Intelligence artificielle Utiliser un rgulateur avec Matlab ISIMa 2011
Le graphique de la fonction : Valve = f(level, rate) est donn par la Surface Viewer, si
on remarque bien il y a une asymtrie sur ce graphe ; elle est de lasymtrie de la
sortie valve.
TAF :
1. Copier le dossier fuzzy de la toolbox vers votre rpertoire de travail.
M.Helaoui
48
Intelligence artificielle Utiliser un rgulateur avec Matlab ISIMa 2011
M.Helaoui
49
Intelligence artificielle Exemple de freinage ISIMa 2011
TP5 Exemple de
Freinage
M.Helaoui
50
Intelligence artificielle Exemple de freinage ISIMa 2011
M.Helaoui
51
Intelligence artificielle Exemple de freinage ISIMa 2011
M.Helaoui
52
Intelligence artificielle Exemple de freinage ISIMa 2011
M.Helaoui
53
Intelligence artificielle Exemple de freinage ISIMa 2011
TAF
Questions
M.Helaoui
54
Intelligence artificielle Rfrences de base ISIMa 2011
Rfrences de base
1. Ben Krose., Patrick. van. der. Smagt. An introduction to Neural Networks, Eighth
edition November, 1996.
6. Valluru B. Rao. C++ Neural Networks and Fuzzy Logic, IDG Books Worldwide,
Inc., 1995.
M.Helaoui
55
View publication stats