Académique Documents
Professionnel Documents
Culture Documents
net/publication/266392354
CITATIONS READS
0 19,080
1 author:
Maher Helaoui
Institut Supérieur d'Administration des Entreprises de Gafsa
24 PUBLICATIONS 16 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
Première partie : Introduction à Matlab ..................................................................... 2
TP1 Initiation Matlab ..................................................................................................... 3
Introduction ................................................................................................................. 3
Matlab comme interpréteur en ligne .......................................................................... 3
Un peu de méthode ...................................................................................................... 4
Ctrl-C Ctrl-V, M-files, fonctions : rationalisons notre travail .................................... 8
Fonctions...................................................................................................................... 9
TAF .............................................................................................................................. 9
Instructions et structures de contrôle ......................................................................... 9
Un peu plus sur la programmation ............................................................................10
Les figures ..................................................................................................................10
TAF .............................................................................................................................12
Deuxième partie : LES RESEAUX DE NEURONES ........................................................14
TP2 Ajustement de fonction et classification.................................................................15
Objectif ........................................................................................................................15
Présentation des réseaux de neurones.......................................................................15
TAF .............................................................................................................................16
TAF : Exemple Illustrative de Classification des fruits ............................................16
(Notes de Lecture) ......................................................................................................16
Fonctions d’ajustement ..............................................................................................17
TP3 Réseaux perceptron et règles d’apprentissage .......................................................31
Objectif ........................................................................................................................31
Modèle de Neurone .....................................................................................................31
TAF .............................................................................................................................33
Architecture ................................................................................................................34
Création d’un perceptron : TAF .................................................................................34
Simulation (sim) .........................................................................................................36
TAF .............................................................................................................................36
Initialization (init) : TAF ............................................................................................37
Régles d’aprentissage .................................................................................................37
Règles d’apprentissage du perceptron .......................................................................38
TAF .............................................................................................................................39
Troisième partie : La logique floue .............................................................................41
TP4 Utiliser un régulateur avec Matlab ........................................................................42
Exemple 0 Application avec Matlab ...........................................................................42
Exemple 1 Contrôle du niveau d'eau .........................................................................45
TAF : ...........................................................................................................................48
TP5 Exemple de Freinage ..............................................................................................50
TAF .............................................................................................................................54
Questions ................................................................................................................54
Références de base .........................................................................................................55
M.Helaoui
1
Intelligence artificielle Introduction à Matlab ISIMa 2011
Première partie :
Introduction à Matlab
M.Helaoui
2
Intelligence artificielle Initiation Matlab ISIMa 2011
Démarrer Matlab
1. Trouvez Matlab sur votre ordinateur.
2. Démarrez le programme. Un certain nombre de fenêtres apparaissent. Les plus
importantes sont l'interpréteur en ligne et la fenêtre Help. Si cette dernière
n'apparaît pas, dans l'onglet Help sélectionnez Matlab Help.
C'est tout ; l'aide en ligne est extrêmement conviviale et permet d'acquérir tout seul la
maîtrise du logiciel…
Ce manuel se propose tout de même de décrire l'utilisation du logiciel pour une
utilisation en intelligence artificielle (La logique floue et les réseaux de neurones…).
Arrêter Matlab
Taper quit ou exit ou fermez les fenêtres.
Premiers pas
Au lancement de Matlab, une fenêtre s'ouvre et propose le prompt >> : on est en
présence de l'interpréteur 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 résoudre des opérations
Deuxième 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;
>>
Troisième essai
Taper i^2. La réponse est :
>> i^2
ans =
-1
>>
Ouf. Matlab sait manipuler des nombres complexes voire compliqués.
Un peu de méthode
TAF.
Choisir un répertoire de travail (Nom de l’étudiant : Tous les exemples, les fichiers.m et
ou fichiers.mat, les figures… doivent être testés et enregistrés dans ce répertoire)
Avant toutes choses, choisir un répertoire 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'enchaînement d'expressions composées de
variables, de nombres, d’opérateurs et de fonctions.
• Variables
Il n'est pas nécessaire de déclarer 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
Crée 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 deuxième 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 données sont entrées en ligne, séparées par des virgules ou des espaces. Les lignes
sont séparées par des point virgules.
• Opérateurs
+ Addition - Soustraction
* Multiplication / Division
ˆ Puissance ./ Division élément par
élément (matrices)
' Conjugué et transpose .* Multiplication
élément par élément
(matrices)
.' Transposée
Pour la liste des opérateurs disponibles, tapez help ops.
• Fonctions
Pour obtenir une liste des fonctions mathématiques élémentaires 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 données sous formes de structures : les données sont
rangées dans une arborescence et accessibles par des champs. L'exemple suivant permet
de comprendre comment créer 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 accéder à un élément de la structure, on utilise le point :
>> toto.tata
ans =
1 2 3 4
>>
Bien sûr, on peut imbriquer plus de deux champs et inclure des variables de nature
différentes. 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 flèches de direction (←↑→↓) permettent de retrouver et modifier les lignes de
commandes précédentes.
La version 2009a de Matlab propose une fenêtre command history qui garde en mémoire
les commandes passées dans la session courante et dans les sessions précédentes.
Scripts
L'étape suivante consiste à créer 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.
Créons par exemple un nouveau script :
File / New / M-file
Puis écrivons la séquence de commande qui nous intéresse :
%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 défaut.
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 précédée du caractère % n'a pas été interprétée : il s'agit d'une ligne de
commentaires.
2. Seule les expressions qui ne sont pas terminées par un point virgule ( ; ) sont visibles
dans la fenêtre de l'interpréteur.
M.Helaoui
8
Intelligence artificielle Initiation Matlab ISIMa 2011
Fonctions
Les M-files permettent aussi de définir des fonctions. A la différence des scripts, les
variables définies 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 l’ensemble des notes
obtenues en %200X et coef est l’ensemble des coefficients.
M.Helaoui
9
Intelligence artificielle Initiation Matlab ISIMa 2011
Les figures
Matlab permet de créer des graphiques complexes et d'en contrôler les moindres détails.
Ce chapitre donne l'essentiel à savoir ainsi que quelques clefs pour aller plus loin.
M.Helaoui
10
Intelligence artificielle Initiation Matlab ISIMa 2011
sinusoïde
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
première case. Le second subplot partitionne de la même manière et place le pointeur sur
la deuxième case. Le troisième subplot partitionne en deux lignes et une seule colonne et
place le pointeur sur la deuxième case (la deuxième ligne).
TAF
1. Tracer dans le même 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
Références
http://www.mathworks.com/ LA société Mathworks, qui développe et commercialise Matlab
http://pauillac.inria.fr/cdrom/www/scilab/fra.htm La page officielle de Scilab
M.Helaoui
13
Intelligence artificielle Les réseaux 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 : l’ajustement de fonctions et la
classification. Ceci pour résoudre des problèmes en appliquant la technique des réseaux de neurones.
L'utilisation de ces deux techniques nous donnera une excellente introduction à l'utilisation de la boîte
à outils des réseaux de neurones (neural network toolbox™ software).
M.Helaoui
15
Intelligence artificielle Ajustement de fonctions et classification ISIMa 2011
Les réseaux de neurones ont été formés pour exécuter des fonctions complexes dans des divers
domaines, comme la reconnaissance de formes, l'identification, la classification, le discours, la
vision et des systèmes de commande.
TAF
- Décrire le rôle des réseaux de neurones en se basant sur la figure ci-dessus.
(Notes de Lecture)
Les réseaux de neurones peuvent aussi être utilisés pour résoudre des problèmes qui sont difficiles
même pour des ordinateurs conventionnels ou pour des êtres humains. La boîte à outils souligne
l'utilisation des réseaux de neurones dans l’ingénierie, la finance et d'autres applications pratiques.
M.Helaoui
16
Intelligence artificielle Ajustement de fonctions et classification ISIMa 2011
Fonctions d’ajustement
Supposons, par exemple, que nous avons des données d'une demande de logement
[HaRu78]. Nous voulons concevoir un réseau qui peut prévoir la valeur d'une maison, étant
donné 13 pièces d'informations géographiques et immobilières. Nous avons un total de 506
exemples de maisons pour lesquelles nous avons ces 13 packs de données.
Présentation du problème
>>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 fenêtre Select Data. La fenêtre Fitting Data Set Chooser
s’ouvre.
Noter Utiliser les options d’entrés (Inputs) et cibles (Targets) dans la fenêtre Select Data lorsque
vous avez besoin d’importer des donnés de MATLAB workspace.
4 Selectionner House Pricing, et cliquer Import. Ceci retourne la fenêtre Select Data.
5 Cliquer Next pour afficher la fenêtre Validation and Test Data, voir la figure ci-dessous.
Les ensembles Validation et test data prennent chacun 15% comme valeurs d’origine.
M.Helaoui
18
Intelligence artificielle Ajustement de fonctions et classification ISIMa 2011
Avec ces fixations de donnés, les vecteurs d'entrés et les vecteurs cibles seront aléatoirement divisés
dans trois ensembles comme suit :
•70% sera utilisé pour la formation (training).
•15% sera utilisé pour valider le réseau généralisé et arrêter la formation auparavant de l'ajustement.
•Les 15% restante sera utilisée comme un test complètement indépendant de la généralisation de
réseau.
6 Cliquer Next.
Le réseau standard qui est utilisé pour l'ajustement de fonction est un réseau feedforward à deux
couches, avec une fonction de transfert de sigmoid dans la couche cachée et une fonction de transfert
linéaire dans la couche de production. Le nombre par défaut de neurones cachés est mis à 10. Vous
pourriez augmenter ce nombre plus tard, si le réseau 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'à l’échec de l'erreur de validation à diminuer durant six itérations (l'arrêt
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 représentent des données de formation, les barres vertes représentent des données de
validation et les barres rouges représentent des données de test. L'histogramme peut vous donner une
indication d'outliers, qui sont des points de données où la crise est significativement plus mauvaise que
la majorité de données. Dans ce cas, vous pouvez voir que tandis que la plupart d'erreurs chutent entre
-5 et 5, c’est 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 régression de test. Le premier correspond
au point avec une cible de 50 et la production près de 33. C'est une bonne idée de vérifier l'outliers
pour déterminer si les données sont mauvaises, ou si ces points de données sont différents que le reste
d’ensemble de données. Si l'outliers sont des points de données valables, mais elles sont différentes du
reste des données, donc le réseau extrapole pour ces points. Vous devriez rassembler plus de données
qui ressemblent aux points d'outlier et recycler le réseau.
11 Cliquer Ensuite dans l'Outil d'Ajustement de Réseau de Neurone pour évaluer le réseau.
M.Helaoui
23
Intelligence artificielle Ajustement de fonctions et classification ISIMa 2011
À ce point, vous pouvez tester le réseau contre de nouvelles données. Si vous êtes peu satisfaits avec la
performance du réseau sur les données originales ou nouvelles, vous pouvez faire une des choses
suivantes :
·Train de nouveau.
·Augmenter le numéro de neurones.
·Choisir un ensemble plus grand de données de formation.
Si la performance sur l’ensemble de formation est bonne, mais la performance de l’ensemble de test
est significativement plus mauvaise, qui pourrait indiquer le sur ajustement, donc la réduction du
nombre de neurones peut améliorer vos résultats. En formant une performance faible, alors vous
pouvez augmenter le nombre de neurones.
12 si vous êtes satisfaits de la performance de réseau, cliquez Next.
13 Utilisez les boutons sur cet écran pour produire d’autres scénarios ou sauvegarder vos résultats.
M.Helaoui
24
Intelligence artificielle Ajustement de fonctions et classification ISIMa 2011
- Vous pouvez cliquer sur le Simple Script ou Advanced Script pour créer le code MATLAB ® qui
peut être utilisé pour reproduire tous les étapes précédents de la ligne de commande. La création du
code MATLAB ® peut être utile si vous voulez apprendre comment utilisez la fonctionnalité de ligne
de commande de la boîte à outils pour personnaliser le processus de formation.
- Vous pouvez aussi faire sauver le réseau comme le réseau dans l'espace de travail. Vous pouvez y
exécuter des tests supplémentaires ou le mettre pour travailler sur de nouveaux entrés.
14 Quand vous avez créé le code MATLAB ® et après avoir sauvegardé vos résultats, 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 scénario et l'exécuter ensuite de la ligne de commande pour vous
reproduire les résultats de la session GUI précédente. Vous pouvez aussi éditer le scénario à
personnaliser le processus de formation. Dans ce cas, suivez chaque scénario.
0 le scénario suppose que les vecteurs d'entrés et les vecteurs cibles sont déjà chargés dans l'espace de
travail. Si les données ne sont pas chargées, vous pouvez les charger comme Suit :
load house_dataset
inputs = houseInputs;
targets = houseTargets;
Cet ensemble de données est un des ensembles de données types qui fait partie de la boîte à outils.
Vous pouvez voir une liste de tous les ensembles de données 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 données utilisant votre propre nom de variable.
Par exemple, la commande
[inputs,targets] = house_dataset;
1 Créez un réseau. Le réseau par défaut pour ajustement de fonction (ou régression) les problèmes,
fitnet, sont un réseau feedforward avec le bronzage-sigmoid par défaut la fonction de transfert dans la
couche cachée et le transfert linéaire fonctionne dans la couche de production. Vous avez assigné dix
neurones (quelque peu arbitraire) à celui couche cachée dans la section précédente. Le réseau a un
neurone de production, parce qu'il y a seulement une valeur cible associée à chaque vecteur d’entrés.
hiddenLayerSize = 10;
net = fitnet(hiddenLayerSize);
2 Fondez la division de données.
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;
Avec ces fixations, les vecteurs d'entrés et les vecteurs cibles seront aléatoirement divisés, avec 70 %
utilisés 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 fenêtre de formation suivante s'ouvre. Ces affichages de fenêtre formant le
progrès et vous permettent d'interrompre la formation à n'importe quel point en cliquant Stop
Training.
Cette formation s'est arrêtée quand l'erreur de validation a augmenté durant six itérations, ce qui se
fera à l'itération 23. Si vous cliquez Performance dans la fenêtre de formation, Un affichage des
erreurs d’une formation, des erreurs de validation et des erreurs de test apparaît, comme indiqué dans
la figure suivante.
Dans cet exemple, le résultat est raisonnable à cause des considérations suivantes :
·L'erreur carrée moyenne finale est petite.
·L'erreur de l’ensemble test et l’erreur de l’ensemble validation ont des caractéristiques semblables.
M.Helaoui
27
Intelligence artificielle Ajustement de fonctions et classification ISIMa 2011
·Pas de surajustement significatif obtenu par l'itération 17 (où on a obtenu la meilleure performance de
validation).
4 Testez le réseau. Après que le réseau a été formé, vous pouvez l'utiliser pour calculer les productions
de réseau. Le code suivant calcule les productions de réseau, des erreurs et la performance complète.
outputs = net(inputs);
errors = gsubtract(targets,outputs);
performance = perform(net,targets,outputs)
Il est aussi possible de calculer la performance de réseau seulement sur l’ensemble de test, en utilisant
les indices de test, qui sont placés dans le rapport de formation.
tInd = tr.testInd;
tstOutputs = net(inputs(tInd));
tstPerform = perform(net,targets(tInd),tstOutputs)
5 Exécutez quelques analyses de la réponse de réseau. Si vous cliquez Regression dans la fenetre de
formation (training window), Vous pouvez exécuter une régression linéaire entre les productions de
réseau et les cibles correspondantes.
La figure suivante montre les résultats.
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 réponse totale. Si des résultats encore plus précis ont été exigés, vous pourriez
essayer n'importe laquelle de ces approches :
·Reset les poids de réseau initiaux et les préventions à nouvelles valeurs avec init et train de nouveau.
·Augmenter le nombre de neurones cachés.
· Augmenter le nombre de vecteurs de formation.
· Augmenter le nombre de valeurs d'entrés, si des informations plus appropriées sont disponibles.
·Essayez un algorithme de formation différent.
Dans notre cas, la réponse de réseau est satisfaisante et vous pouvez maintenant utiliser le réseau avec
de nouveaux entrés.
M.Helaoui
29
Intelligence artificielle Ajustement de fonctions et classification ISIMa 2011
Pour obtenir plus d'expérience dans des opérations de ligne de commande, essayez certaines de ces
tâches :
•Pendant la formation, ouvrez une fenêtre d’affichage (comme l’affichage de régression) et animez la
• Affichez de la ligne de commande avec les fonctions comme plotfit, plotregression, plottrainstate et
plotperform.
M.Helaoui
30
Intelligence artificielle Réseaux perceptron et règles d’apprentissage ISIMa 2011
TP3 Réseaux
perceptron et règles
d’apprentissage
Objectif
En effet, ce TP définit que signifie une règle apprenante, explique le réseau perceptron et
son étude de la règle et vous présente comment initialiser et simuler des réseaux
perceptron. Il décrit la boîte à outils de MATLAB permettant de créer un réseau de
perceptron simple tout en présentant les fonctions pour initialiser et simuler de tels
réseaux. Le perceptron est utilisé comme un lien de ces divers concepts.
Vous pouvez créer des réseaux perceptron avec la fonction newp. Ces réseaux peuvent
être initialisés, simulés et formés avec init, sim, et train. Le modèle de Neurone décrit
comment les perceptrons travaillent tout en présentant ces fonctions.
Modèle de Neurone
Rosenblatt [Rose61] a créé plusieurs variations de perceptrons. Un du plus simples
était un réseau d’une seule couche dont les poids W et les préventions b pourraient être
ajustés pour produire un vecteur cible correct en partant d’un vecteur d’entrés (Input) P.
Le perceptron occupe un grand intérêt en raison de sa capacité de se généraliser de ses
vecteurs de formation et apprendre en partant de connexions initialement aléatoirement
distribuées. Les perceptrons sont particulièrement convenus pour des problèmes de la
classification de modèle simples. Ils sont des réseaux rapides et fiables pour les
problèmes qu'ils peuvent résoudre. De plus, une compréhension des opérations du
perceptron fournit une bonne base pour comprendre des réseaux plus complexes.
M.Helaoui
31
Intelligence artificielle Réseaux perceptron et règles d’apprentissage ISIMa 2011
Chaque entrée externe est pondérée avec un poids approprié W1j et la somme des
entrées pondérées est envoyée à la fonction de transfert hard-limit, qui a aussi une
entrée de 1 transmise par le déplacement (la prévention) b. Ci-dessous on présente la
fonction de transfert hard-limit, qui rend 0 ou 1 :
M.Helaoui
32
Intelligence artificielle Réseaux perceptron et règles d’apprentissage ISIMa 2011
Deux régions de classification sont formées par la frontière de décision L : Wp+b=0. Cette
ligne est perpendiculaire à la matrice de poids W et changée selon le déplacement b. Les
vecteurs d'entrés ci-dessus et à gauche de la ligne L aboutiront à un réseau d’entrées
plus grand que 0 et, donc, causent une production de 1 au neurone de hard-limit. Les
vecteurs d'entrés ci-dessous et à droite de la ligne L causent une production de 0 au
neurone.
Les neurones de hard-limit sans un déplacement (b=0) auront toujours une ligne de
classification passant l'origine. L'ajout d'un déplacement b permet au neurone de
résoudre des problèmes où les deux ensembles de vecteurs d'entrées ne sont pas placés
sur les côtés différents de l'origine. Le déplacement permet à la frontière de décision
d'être changée loin de l'origine, comme indiqué dans la figure ci-dessus.
TAF
1. Créer un fichier Neurone.m
2. Exécuter le programme nnd4db de démonstration. Avec cela déplacer une
frontière de décision autour, choisir de nouveaux entrées pour classifier et voir
comment l'application répétée de la règle apprenante rapporte un réseau qui
classifie vraiment les vecteurs d'entrées correctement.
3. Trouver trois combinaisons {W,b} permettant de classifier l’espace d’entrées
comme désiré sachant que P= [p1=5, p2=1]. Dans chaque proposition trouver
respectivement la valeur entière minimale respectivement de W11 W12 et b.
Travailler sous forme de commentaires.
4. Représenter ces trois solutions dans une même figure (Utiliser un subplot pour
chaque solution, les trois subplots doivent occuper le même espace. Dans chaque
subplot représenter la droite de départ L et la droite solution Lsi avec une autre
couleur, n’oublier pas de tracer W et Wsi).
5. Proposer et implémenter un algorithme (sous forme de fonction nommée
classification) qui en faisant varier progressivement W11 W12 et b permet de
classifier l’espace d’entrées comme désiré. L’algorithme partira des valeurs de
M.Helaoui
33
Intelligence artificielle Réseaux perceptron et règles d’apprentissage ISIMa 2011
W11 W12 et b très faible, choisis par l’utilisateur, il calcule a, il affiche la décision
courante, par la suite, il permet à l’utilisateur de choisir le poids ou le
déplacement qui sera incrémenté d’une unité selon son désir. L’algorithme doit
s’arrêter lorsque a=1. Et il doit afficher W, b et la décision.
6. Implémenter un second algorithme (sous forme de fonction nommée
classification_opt) qui en faisant varier un seul paramètre choisit par l’utilisateur
retourne la valeur optimale de ce paramètre pour laquelle a=1.
Architecture
Le réseau perceptron est formé d’une seule couche : il s’agit de S perceptrons de
neurones connectés aux R entrées par un un ensemble de poids
Wij, comme indiqué ci-dessous en deux formes. Comme auparavant, les indices de réseau
i et j indiquent que Wij est la force de la connexion du jème entrée au ième neurone.
Le perceptron qu’on va étudier est capable de former seulement une seule couche. Ainsi
on considère des réseaux à une seule couche ici. Ce qui nous présente des limites au
perceptron.
• net = newp(P,T)
M.Helaoui
34
Intelligence artificielle Réseaux perceptron et règles d’apprentissage ISIMa 2011
• P est une matrice R-par-Q tel que Q représente les vecteurs d’entrées et R ses
éléments.
• T est une matrice S-par-Q tel que Q représente les vecteurs cible (target) et S ses
éléments.
La fonction hardlim est utilisée souvent par défaut 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 d’initialisation par défaut est initzero et elle est utilisée 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 Réseaux perceptron et règles d’apprentissage 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 Réseaux perceptron et règles d’apprentissage 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);
•
Régles d’aprentissage
Une règle d’apprentissage est définie comme une procédure pour modifier W et b d'un
réseau. (Cette procédure peut aussi être mentionnée comme un algorithme recevant une
formation.) la règle apprenante est appliquée pour apprendre au réseau à exécuter une
certaine tâche particulière. L'étude de règles dans ce tp traite deux larges catégories :
étude surveillée et étude non surveillée.
M.Helaoui
37
Intelligence artificielle Réseaux perceptron et règles d’apprentissage ISIMa 2011
Dans l'étude non surveillée, W et b sont modifiés en réponse seulement des entrées au
réseau. Il n'y a aucune production cible disponible. La plupart de ces algorithmes
exécutent des opérations pendantes par grappes. Ils catégorisent les modèles d'entrées
dans un nombre fini de classes. C'est particulièrement utile dans de telles applications
que la quantification vectorielle.
Chaque fois la fonction learnp est exécutée, le perceptron aura une meilleure chance
d’obtenir des productions correctes. La règle d’apprentissage du perceptron est prouvée
pour converger vers une solution dans un nombre fini d'itérations 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'entrées comme 1 et loin de les classifier comme 0. Cela aboutit à
une frontière de décision qui est perpendiculaire à W et qui classifie correctement les
vecteurs d’entrées.
Il y a trois conditions qui peuvent arriver pour un neurone simple une fois qu'un vecteur
d'entrée P est présenté et la réponse du réseau a est calculée :
1er CAS. Si un vecteur d'entrée P est présenté 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 Réseaux perceptron et règles d’apprentissage 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 entrées de 1 :
TAF
• p = [1; 2];
• t = [1];
M.Helaoui
39
Intelligence artificielle Réseaux perceptron et règles d’apprentissage ISIMa 2011
• dw = learnp(w,p,[],[],[],[],e,[],[],[])
• dw =
• 1 2
M.Helaoui
40
Intelligence artificielle Réseaux perceptron et règles d’apprentissage ISIMa 2011
Troisième partie :
La logique floue
M.Helaoui
41
Intelligence artificielle Utiliser un régulateur avec Matlab ISIMa 2011
TP4 Utiliser un
régulateur avec
Matlab
Exemple 0 Application avec Matlab
Principe
Le calcul en logique floue nécessite, 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 régulateur par logique floue.
Un bloc fonctionnel à intégrer dans un schéma de régulation Simulink.
Conception du régulateur
On accède à la fenêtre principale du «FIS Editor» par une instruction sur la ligne de
commande MATLAB: » fuzzy
M.Helaoui
42
Intelligence artificielle Utiliser un régulateur avec Matlab ISIMa 2011
On y choisit premièrement le nombre d'entrées depuis la barre de menu: Edit --> Add
input. On trouve alors sur la fenêtre principale du «FIS Editor» autant d'icônes qu'on
veutde signaux d'entrées et sorties, et une pour les règles d'inférence. La partie
inférieure permette de spécifier les méthodes d'inférences. On accède alors à une
fenêtre spécifique par un double clics sur l'icône du signal dont on veut spécifier les
fonctions d'appartenance.
M.Helaoui
43
Intelligence artificielle Utiliser un régulateur avec Matlab ISIMa 2011
Lorsque tous les signaux sont spécifiés, on ouvre l'éditeur des règles d'inférence:
M.Helaoui
44
Intelligence artificielle Utiliser un régulateur avec Matlab ISIMa 2011
Essai en simulation
On crée un schéma Simulink dans lequel on colle un bloc "Fuzzy Logic Controller"
qu'on trouve dans la boîte "SIMULINK Fuzzy", elle-même placée dans la boîte
"Blocksets & Toolboxes". On doit y spécifier un nom de régulateur parmi ceux chargés
précédemment dans l'espace de travail. Ce bloc doit être précédé de blocs gain chargés
de la normalisation des signaux et suivi d'un gain ajustable de l'amplification du
régulateur.
(http://www.tn.refer.org/hebergement/cours/logique_floue/_we_hinfo/trav1.htm)
Le menu view permet de passer d’une interface graphique à une autre. On définit
ensuite les ensembles flous et les fonctions d’appartenances de l’entrée level en
utilisant l’option add mfs du menu édit. On précisera alors le type de ces fonctions :
gaussiènnes et l’intervalle sur le quel varie cette entrée.
M.Helaoui
45
Intelligence artificielle Utiliser un régulateur avec Matlab ISIMa 2011
On fait de même pour l’entrée variation de niveau: rate et on s’intéressera aux petites
variations.
M.Helaoui
46
Intelligence artificielle Utiliser un régulateur avec Matlab ISIMa 2011
Sur le Rule Editor on définit les règles d’inférences liants les entrées et la sortie du
régulateur. On définit à chaque fois la relation logique entre les deux entrées, ensuite
on choisit la sortie qu’on va appliquer et on clique sur add rule.
Une fois les entrées sont définies, ainsi que la sortie et les règles, on enregistre notre
système d’inférence (le régulateur flou crée) dans le workspace sous le nom tank.fis.
Lors de la construction du modèle du système sur SIMULINK on utilisera le bloc Fuzzy
Controller pour modéliser le régulateur flou. Et en cliquant sur ce bloc, on nous invite à
préciser quel système d'inférences on va utiliser, On choisira alors le tank.fis. Une fois
la simulation est lancée on peut voir la réponse du système sur le scope1. Les interfaces
Rule Viewer et Surface Viewer s’activent avec la simulation.
Le rule viewer qui s’active pendant la simulation nous permet de voir la participation
M.Helaoui
47
Intelligence artificielle Utiliser un régulateur 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 asymétrie sur ce graphe ; elle est dûe à l’asymétrie de la
sortie valve.
TAF :
1. Copier le dossier fuzzy de la toolbox vers votre répertoire de travail.
M.Helaoui
48
Intelligence artificielle Utiliser un régulateur 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 Références de base ISIMa 2011
Références 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