Intelligence Artificielle
TP 3 Réseaux de neurone
2010 2011
TP 3 Comment initialiser, simuler des réseaux perceptron et implémenter des règles d¶apprentissage ?
1. Objectif Ce TP a plusieurs plus ieurs objectifs. object ifs. D'abord, il vous présente l'étude de règles r ègles : méthodes d·apprentissage, qui est une procédure par laquelle un réseau est ajusté pour faire un travail particulier. Ce TP 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. 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. 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. Ensuite, nous allons implémenter un algorithme qui exploite les règles d·apprentissage. 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.
2. Modèle de Neurone Ci-dessous on présente u n neurone : perceptron, qu'utilise qu'ut ilise la fonction fon ction de transfert hard-limit hardlim :
M. HELAOUI
1
Inte Inte
ence
tific tificie e
3 ése
e ne
ne
2010 2011
Chaque entrée externe est p ndérée avec un p ids ids appro pprop prié et la somm somme e des entrées pond ondérées est env envoyée la oncti onction de transfert hard hard limit limit, qui qui a aussi aussi une entrée de transmi transmise se par le déplace placem ment la prév révent entiion) . Ci dessous on présente la foncti fonction de transfert hard hard limit limit, qui qui rend rend 0 ou :
Le neurone percep erceptron retourne si l entrée du réseau dans la foncti fonction de transfert est sup supéri érieure ou égal 0; sinon il retourne 0. La foncti fonction de transfert hard hard limit limit donne un percep erceptron la cap capaci acité de class if ier des vecteurs d entrées en divisant divisant l esp espace d entrées dans deux eux régi régions ons.. Spéc Spéciif iquem quement ent,, les prod roducti uctions Outp utputs) seront 0 si l entrée au réseau n est inféri nférieur 0, ou si l entré au réseau n est sup supéri érieur ou égale 0. La f igure igure suiv suivante ante montre l esp espace d entrées d un neurone hard hard limit limit deux eux entrées avec les poids ids , = , ,2= et un déplace placem ment =0.
I
2
Inte Inte ige igence Artific Artificie e
TP 3 Rése
de ne rone ron e
2010 2011
Deux eux
régi régions ons de classi assif icati cation sont form formées par la fronti fronti re de déci écision L : p+ =0. Cette ligne ligne est perp erpendi endicu cullaire la matri atrice de poids ids et chang changée sel selon le déplace placem ment . Les vecteurs d entrés ci dessus et gauche de la ligne ligne L abouti aboutiront un réseau d entrées plus plus grand rand que 0 et, et, donc, onc, causent une prod roducti uction de au neurone de hard hard limit limit. Les vecteurs d entrés ci dessous et droi roite de la ligne ligne L causent une prod roducti uction de 0 au neurone. neurone. Les neurones de hard limit sans un déplace placem ment b=0) =0) auront toujours une ligne ligne hard limit de classi assif icati cation passant l origi origine ne.. L ajout d un déplace placem ment b perm ermet au neurone de résoud résoudre des probl robl mes où les deux eux ensem ensembles de vecteurs d entrées ne sont pas placés placés sur les côtés différents différents de l origi origine ne.. Le déplace placem ment perm ermet la fronti fronti re de déci écision d tre chang changé loin de l origi origine ne,, comm comme e indiqué diqué dans la f igure igure ci dessus. essus. TAF
. Créer un f ichi chier eurone.m eurone.m 2. xécuter le prog rogramm ramme e nnd4d nnd4db b de démonstrati onstration. on. vec cel cela déplacer placer une fronti fronti re de déci écision autour, autour, choi choisir de nouv nouveaux eaux entrées pour classi ass if ier et voir comm comment ent l applicat pplicatiion rép répétée de la règl règle e apprenante pprenante rapp rapporte orte un réseau qui qui classi ass if ie vraim raiment ent les vecteurs d entrées correctem correcte ment ent.. 3. Trouv rouver 3 com combinai naisons { ,b} perm ermettant de classi ass if ier l esp espace d entrées comm comme e dési ésiré sachant que P= p =5, p2= . Dans chaque prop roposi osition trouv trouver resp respectiv ective ement la valeur ent entiière min minima imale resp respectiv ective ement de , ,2 et b. Tra T rav vailler iller sous form forme de comm commenta entaiires. res. 4. eprésenter ces 3 sol soluti utions dans une m me f igure igure tiliser iliser un subpl subplot ot pour chaque sol soluti ution, on, les troi trois subpl subplot otss doivent ivent occup occuper le m me esp espace. ace. Dans chaque subpl subplot ot rep représenter la droi roite de départ L et la droi roite sol soluti ution Lsi avec une autre coul couleur, eur, n·oubli n·oublier er pas de tracer et si).
M. HELAOUI
3
Inte Inte ige igence Artific Artificie e
TP 3 Rése
de ne rone ron e
2010 2011
5. Prop roposer et implé implémenter un algor lgoriithm thme sous form forme de foncti fonction nomm nommée ée classi assif icati cation) qui qui en fai faisant vari arier prog rogressiv ressive ement , ,2 et b perm ermet de classi assif ier l·esp ·espace d·entrées comm comme e dési ésiré. ré. L·alg ·algor oriithm thme parti artira des valeurs de , ,2 et b très fai faible, choi choisis par l·utili ·utilisateur sateur,, il cal calcul cule a, il aff iche la déci écision courante, courante, par la sui suite, te, il per perm met l·utili ·utilisateur sateur de choi choisir le poids ids ou le déplace placem ment qui qui sera incrém ncrémenté d·une uni unité sel selon son dési ésir. L·a L ·alg lgor oriithm thme doit s·arrêter lorsque a= . t il do doit aff icher , b et la déci écision. on. . Implé Implémenter un second second algor lgoriithm thme sous form forme de foncti fonction nomm nommée ée classi assif icati cation_op on_o pt) qui qui en fai faisant vari arier un seul seul param aramètre choi choisit par l·utili ·ut ilisateur sateur retourne la valeur optima imale de ce param aramètre pour laquell aquelle e a= . 3.
A hi
Le réseau percep erceptron est form formé d·une seul seule couche : il s·agi s·agitt de S perce p ercep ptrons de neurones connectés aux aux entrées par un un ensem ense mble de poids ids i, j, j, comm comme e indiqué diqué ci dessous en deux eux form formes. es. Comm Comme e aup auparav aravant, ant, les indices dices de réseau i et j et j indiquent diquent que i, j i, j est la force de la connexi connexion on du jem jeme entrée au i eme neurone. neurone.
Le percep erceptron qu·on va étu étudi dier er est cap capabl able de form former seul seulement une seul seule couche. couche. insi nsi on consid considère ère des réseaux réseaux un seul seule couche ici. Ce qui qui nous présente des limites limites au percep erceptron. tron.
4.
M. HELAOUI
i
¶
4
Intelligence Artificielle
TP 3 Réseaux de neurone
2010 2011
TAF : 1. Dans un fichier Creation_perceptron.m créer un perceptron avec la fonction newp: y
net = newp(P,T)
Les parameters d·entrées sont comme suit: y
y
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 -par-Q tel que Q représente les vecteurs cible (target) et ses éléments.
La fonction hardlim est utilisée souvent par défaut pour les perceptrons. Les commandes suivantes permettent de créer un réseau de perceptron avec un seul vecteur d·entré P qui prend les values et , et un neuron avec un vecteur de sortie (outputs) T qui prend les valeurs ou 1: y y y
P = [ ]; T = [ 1]; net = newp(P,T); . Vérifier que le réseau a été créé en exécutant la commande suivante:
y
inputweights = net.inputweights 1,1}
y
ce qui produit: y y y y y y y y y y
inputweights = delay delays: initFcn: 'initzero' learn: 1 learnFcn: 'learnp' learnParam: [] size: [1 1] userdata: [1x1 struct] weightFcn: 'dotprod' weightParam: [1x1 struct]
y
La function d·apprentissage par défaut est learnp. Le net d·entrée de la function de transfert hardlim est dotprod, Ce qui génère la production du vecteur d·entré P et la matrice des poids W et ajoute b pour calculer le net d·entrée.
M. HELAOUI
5
Intelligence Artificielle
TP 3 Réseaux de neurone
2010 2011
La function d·inicialisation par défaut est initzero et elle est utilisée pour inicialiser les valeurs des poids à . . Similairement taper biases = net.biases 1}
y y
donne biases = initFcn: 'initzero' learn: 1 learnFcn: 'learnp' learnParam: [] size: 1 userdata: [1x1 struct]
y y y y y y y y
4.
Vérifier que b est aussi initialisé à .
Simulation (sim)
Cette sous section montre comment la fonction sim tourne en utilisant un problème simple. Supposons
que nous traitons un seul perceptron (netex) avec vecteurs P1 et P d·entrées chacun avec éléments éléments P1=[P1= [- ] et P =[]. Ce perceptron a comme sorties les valeurs et 1. TAF 1. Créer ce perceptron en utilisant le fichier exemple_sim.m . Quelles sont les valeurs initiales des poids et du déplacement b. . Nous voulons des poids et un déplacement avec des valeurs différentes de celles d·initialisation pour cela mettez les deux poids et le déplacement à 1, 1 et 1, en utilisant les commandes suivantes : y y
net.IW 1,1}= [-1 1]; net.b 1} = [1]; . Afficher les valeurs de ces paramètres par les commandes suivantes:
y y y y
net.IW 1,1} ans = -1 1 net.b 1}
M. HELAOUI
6
Intelligence Artificielle
TP 3 Réseaux de neurone
2010 2011
ans = 1
y y y
. Maintenant voir si le réseau répond à deux signaux, un sur chaque côté de la frontière du perceptron : p1 = [1;1]; a1 = sim(net,p1) a1 = 1
y y y y y
Et pour p = [1;-1]; a = sim(net,p ) a =
y y y y y
6. S·assurer que le perceptron a classifié les deux entrées correctement. 7. Présenter les deux entrées en ordre et obtenir tous les productions comme suit : p = [1;1] [1;-1]}; a = sim(net,p ) a = [1] [ ]
y y y y y
Initialization (init)
TAF 1. Utiliser la fonction init pour remettre W et b à leurs valeurs originales. Supposons, par exemple, que vous commencez par le réseau utiliser un fichier nommé exemple_Init.m net = newp([-
y
;-
],[ 1]);
y
. . . .
Afficher les valeurs de W et b Affecter les valeurs et à W et la valeur à b Afficher W et b Utiliser la fonction init pour remettere W et b à leurs valeurs d·origine:
M. HELAOUI
7
Intelligence Artificielle
y
TP 3 Réseaux de neurone
2010 2011
net = init(net);
y
6. Afficher les nouvelles valeurs de W et b 7. Changer l·effet de la fonction init. Par exemple nous allons faire de sorte que la la function init affecte des valeurs aléatoires à W et b à travers les fonctions initFcns et rands: y y y
net.inputweights 1,1}.initFcn = 'rands'; net.biases 1}.initFcn = 'rands'; net = init(net);
y
8. Afficher les nouvelles valeurs de W et b
5. 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. Dans l'étude surveillée, on fournit à la règle apprenante un ensemble d'exemples (ensemble de formation) de comportement de réseau approprié P1, T1}, P ,T },.., PQ,TQ} ù PQ est l·ensemble des entrées au réseau et TQ est la correspondante correcte production (cible). Comme les entrées sont appliquées au réseau, les productions de réseau sont comparées aux cibles. La règle apprenante est alors utilisée pour ajuster W et b du réseau pour ajuster les productions de réseau vers les cibles. Les règles d·apprentissage du perceptron assurent l·apprentissage de cette catégorie. Dans l'étude non surveillée, W et b sont modifié en réponse seulement des entrées au réseau. Il n'y 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.
6. Règles d¶apprentissage du perceptron: Les perceptrons sont formés sur les exemples de comportement désirable. Le comportement désirable peut être récapitulé par un ensemble d'entrés Pi, des paires de production Ti. M. HELAOUI
8
Intelligence Artificielle
TP 3 Réseaux de neurone
2010 2011
Où
P est l·ensemble des entrées au réseau et T est la correspondante correcte production (cible). L'objectif est de réduire l'erreur e, qui est la différence T-a entre la réponse de neurone a et le vecteur cible T. La règle d·apprentissage du perceptron learnp calcule des changements désirables à W et b du perceptron, étant donné un vecteur d'entrées P et l'erreur associée e. Le vecteur cible T doit contenir les valeurs de ou 1, parce que un perceptron (avec des fonctions de transfert de hardlim) peut seulement assurer la production de ces valeurs. 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 . 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 : 1 er CA S. Si un vecteur d'entrée P est présenté et la production du neurone est correcte (a = T et e = T - a = ), donc le vecteur de poids W ne sera pas changé. eme CA S. Si la production de neurone est et devrait être 1 (a = et T = 1 et e = T - a = 1), le vecteur d'entrée P sera ajouté au vecteur de poids W. Cela fait que le vecteur de poids W pointe plus près du vecteur d·entré, en augmentant ainsi la chance que le vecteur d'entrée sera classifié comme 1 dans l'avenir. eme CA S. S i la production de neurone est 1 et devrait être (a = 1 et T = et e = T - a =-1), le vecteur d·entrées P est soustrait du vecteur de poids W. Cela fait que le vecteur de poids pointe plus loin loin du vecteur d·entrées, en augmentant la chance que le vecteur d'entrées sera classifié comme dans l'avenir. La règle d·apprentissage du perceptron peut être écrit en termes de l'erreur e = T - a et le changement doit être fait au vecteur de poids deltat W : 1 er C AS. Si (e = ) alors faire DeltatW = . C ASE 2. Si (e = 1) alors DeltatW = PT. C ASE 3. If (e = -1) alors DeltatW = -PT.
M. HELAOUI
9
Intelligence Artificielle
TP 3 Réseaux de neurone
2010 2011
Ces trois cas peuvent être résumés par cette expression: Deltat W=(T-a) PT =ePT 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 : Deltat b=(T-a) (1) =e Pour le cas d'une couche de neurones vous avez Deltat W=(T-a) (P)T =e(P)T Et
Deltat b=(T-a) (1) =e
TAF 1. Dans un fichier RAP.m commencer avec un neurone simple ay a yant un vecteur d'entrées avec juste deux éléments. Voici des vecteurs d'entrées avec les valeurs - et et des productions avec des valeurs et 1 : créer le perceptron netRAP. . Pour simplifier, prendre b = et des valeurs de W de 1 et - .8: . Soit une paire d·entrées production (target) donnée comme suit y y
p = [1; ]; t = [1];
. Calculer la production a et l·erreur e. . Utiliser la fonction learnp pour calculer la variation de poids dw. y y y
dw = learnp(w,p,[],[],[],[],e,[],[],[]) dw = 1
6. Calculer les nouveaux poids. 7. Essay Essayer la démonstration nnd pr. Il vous permet de choisir des nouveaux vecteurs d'entrées et appliquer la règle apprenante pour les classifier. 8. Le processus de trouver de nouveaux poids W (et des déplacements b) peut être répété jusqu'à il n'y n' y a aucune erreur. Rappelez-vous que le perceptron garantit que la règle d·apprentissage converge dans un nombre fini d'étapes pour tous les problèmes qui peuvent être résolus par un perceptron. Ceux-ci incluent tous les problèmes de classification qui sont linéairement séparables. Les objets à être classifiés dans de tels cas peuvent être séparés par une ligne simple. Implémenter un algorithme de classification qui exploite les règles d·apprentissage du perceptron. Implémenter toutes les fonctions utilisées.
M. HELAOUI
10
Intelligence Artificielle
M. HELAOUI
TP 3 Réseaux de neurone
2010 2011
11