Вы находитесь на странице: 1из 24

cole Polytechnique de l'Universit de Tours 64, Avenue Jean Portalis 37200 TOURS, FRANCE Tl.

+33 (0)2 47 36 14 14 Fax +33 (0)2 47 36 14 22


www.polytech.univ-tours.fr

Dpartement Informatique 4eme anne 2007-2008 Rapport de projet

Rseaux de neurones sous Matlab


tudiants :
Cyrille FAUCHEUX Alexandre LISSY Pascal Makris

Encadrant :

cyrille.faucheux@etu.univ-tours.fr alexandre.lissy@etu.univ-tours.fr

pascal.makris@univ-tours.fr Universit Franois-Rabelais, Tours

Version du 27 mars 2008

Table des matires

Introduction 1 Rseaux de neurones

1.1 Rappel(s) sur le neurone biologique . . . . . 1.1.1 Qu'est-ce qu'un neurone biologique ? 1.1.2 Composition d'un neurone . . . . . . 1.1.3 Communication entre neurones . . . 1.2 Concept de neurone formel . . . . . . . . . 1.3 Principe du rseau de neurones . . . . . . . 1.3.1 Ide de rseau . . . . . . . . . . . . 1.3.2 Une organisation en couches . . . . 1.4 Types de rseaux possibles . . . . . . . . . 1.4.1 Perceptron . . . . . . . . . . . . . . 1.4.2 ADAline . . . . . . . . . . . . . . . 1.4.3 Carte auto-adaptive . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

8 8 8 8 10 11 11 11 11 12 14 15

2 Neurones de base disponibles dans MatLab

2.1 Le perceptron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Adaline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Rseaux avec dlai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 Perceptron mono-neurone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 Implmentation mathmatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.2 Implmentation avec la toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Conclusion

16

16 16 16 17 17 19

3 Implmentations de rseaux de neurones sous Matlab

17

20

Rseaux de neurones

III

Table des gures


1.1 1.2 1.3 1.4 1.5 Neurone Biologique (Wikipedia - Nicolas Rougier) . . . . . . . . . . Le perceptron monocouche . . . . . . . . . . . . . . . . . . . . . . Frontire de dcision . . . . . . . . . . . . . . . . . . . . . . . . . . Correction des poids du perceptron dans le cas d'une erreur positive Correction des poids du perceptron dans le cas d'une erreur ngative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9 12 13 13 13 18 19

3.1 Rsultat de l'apprentissage d'un mono-neurone sur un problme de classication linaire en 2 dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Rsultat de l'apprentissage d'un mono-neurone sur un problme de classication linaire en 3 dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

IV

Rseaux de neurones

Liste des tableaux

Rseaux de neurones

Liste des codes


3.1 Implmentation mathmatique du perceptron mono-neurone . . . . . . . . . . . . . . . .
17

VI

Rseaux de neurones

Introduction
Le neurone est au centre de la vie de l'Homme. Toute espce animale voit sa survie uniquement assure grce aux caractristiques qui permettent ses meilleurs reprsentants de se perptuer. Cela se fait grce au brassage gntique, combin au phnomne de slection naturelle : les meilleurs lments de l'espce perptuent leurs caractristiques, les transmettant leur descendance. Les mauvais lments, peu adapts leur environnement, ne peuvent se reproduire, ou pas susament pour assurer la transmissions de leurs caractristiques gntiques. Ce fut tristement le cas pour les trilobites, qui nous ont quitt voil 250 millions d'annes, la n du Permien. Il en rsulte ainsi que l'espce volue, et converge vers une adaptation propre son environnement. Chez l'Homme, le mme phnomne se produit. Seulement, de tous les animaux, l'Homme est celui dont les caractristiques physiques sont les moins adapts pour la survie : il est souvent plus faible physiquement que ses adversaires animaux, moins rapide, etc. Comment se fait-il qu'Homo sapiens rgne prsent sur la plante ? Il a un cerveau. Le gupard a dvelopp sa vitesse, par exemple. L'Homme, lui, a d dvelopper son intelligence pour survivre. Cette intelligence passe par un lment de base, une cellule direncie : le neurone. De sa sublime intelligence, l'Homme a vite appris que souvent, la Nature avait dj bien mieux rchit que lui aux problmes auquel il est confront, et qu'il est par consquent plus intressant de mimer sa solution et de l'adapte au problme plutt que de rinventer la roue. Si l'on ne sait pas ce qu'est le propre de l'Homme, on peut nanmoins acquiescer le fait que la machine a quelques dicults prendre une dcision. Par dcision, on fait bien videmment rfrence la notion cognitive. En appliquant le principe prcdemment nnonc, l'Homme a donc dcid de mimer le comportement de son outils le plus puissant, savoir le cerveau, en recrant des neurones articiels. Aprs avoir prsenter les neurones biologiques et les neurones articiels, nous pourrons tudier comment est architectur un rseau de neurones articiels. Pass ce cap, nous pourrons enn voir comment crer et manipuler, avec MatLab, de tels rseaux : comment crer le rseau, comment dnir ses proprits, comment l'entraner, et enn, comment l'utiliser.

Rseaux de neurones

CHAPITRE 1

Rseaux de neurones
Avant d'expliquer comment est construit un neurone, puis un rseau de neurones (articiel), nous allons d'abord regarder comment est structur un neurone ainsi qu'un rseau de neurones naturels (vulgairement appel cerveau). Nous pourrons ensuite aborder la notion de neurone formel (articiel), pour tudier les similitudes et les dirences par rapport au neurone naturel. Nous continuerons en expliquant comment se construit un rseau de neurones articiels, et enn, nous expliciterons les types de rseaux de neurones articiels qui existent.
1.1
1.1.1

Rappel(s) sur le neurone biologique


Qu'est-ce qu'un neurone biologique ?

Le cerveau de l'tre Humain est principalement compos de deux types de cellules direncies que sont :  Les neurones  Les cellules gliales Ces dernires assurent le soutient des premires. Ce sont en quelque sorte des cellules  logistiques  pour le cerveau, puisqu'elles sont galement charges de la nutrition des neurones, et qu'elles facilitent l'tablissement des connexions entre neurones. Nous reviendrons sur ce point par la suite. Un neurone est donc l'unit de base de ce qui constitue la partie active du cerveau, celle qui va  rchir .
1.1.2 Composition d'un neurone

Comme toute cellule, le neurone est compos d'un corps cellulaire, qui renferme le ncessaire la survie de la cellule :  Noyau, renfermant le matriel gntique. Le noyau est bloqu en interphase, c'est dire qu'il ne sera pas mme de procder une division cellulaire - mitose -, l'tape ncessaire au renouvellement de toute cellule.  Cytoplasme, contenant les lments habituels permettant la vie de la cellule (production d'nergie, etc). Son autre caractristique principale, au contraire des autres cellules, est de pouvoir crer des connexions. Ce sont les axones et dendrites, la dnomination variant suivant la dimension par ordre dcroissant. Axones et dendrites sont simplement des bres nerveuses, c'est dire une sorte de cble lectrique biologique. Elles sont gaines de myline, sauf en certains endroits. Le signal lectrique est simplement vhicul de proches en proche par un dplacements d'ions : au centre du  cble , on trouve des anions Cl , et sur les bords des cations N a+ . Ceci permet de gnrer une tension - une dirence de potentiel - de l'ordre de -70mV. Les axones et dendrites sont donc capables de transmettre une tension lectrique. La gure 1.1 propose une vue d'ensemble de la composition d'un neurone biologique.
1.1.3 Communication entre neurones

Nous avons vu que les neurones sont pourvus de bres nerveuses, qui sont en mesures de transmettre un inux nerveux classique. De cette possibilit dcoule la puissance potentielle d'un cerveau. l'image des
8 Rseaux de neurones

Rappel(s) sur le neurone biologique

Dendrites

Noyau Corps cellulaire Noeud de Ranvier Cellules de Schwann Gaine de myline Axone Terminaisons de laxone

Figure 1.1  Neurone Biologique (Wikipedia - Nicolas Rougier)

Rseaux de neurones

Chapitre 1. Rseaux de neurones

super-ordinateurs dvelopps par l'tre humain, la Nature a dj compris l'intrt du paralllisme massif. Du fait se ses caractristiques physiques, un neurone n'est pas spcialement rapide, puisqu'en priode d'excitation intense il peut aller 100Hz. Ceci parce qu'il a une rserve d'nergie limite, et qu'une fois qu'il l'a exploite totalement, il lui faut au moins 10ms pour se recharger. De fait, la Nature a exploit les possibilits d'inter-connexion oertes via les bres nerveuses que constituent dendrites et axones. Il en rsulte une grille de calcul extrmement inter-connecte, puisqu'on estime qu'en gnral, un seul neurone va crer 50000 connexions. raison d'une estimation de 100 milliards de neurone dans un cerveau humain, on voit la complexit du routage des informations qui en dcoule. Et l'on verra d'ailleurs qu'un rseau de neurones articiels n'a pas besoin de tant de complexit pour nous tre utile. Mais pas forcment aussi versatile qu'un cerveau, bien sr. La communication entre neurones se fait donc via ces axones et dendrites, qui possdent des interfaces pour se connecter, ce sont les synapses. Chez l'Homme, cette interface est chimique. C'est--dire que l'inux nerveux parcours la bre, jusqu' son extrmit, o se trouve le synapse. L, la tension lectrique correspondant au signal nerveux est transforme en une libration d'lments chimiques - les neuro-transmetteurs - , qui sont passs l'autre synpase, et vont gnrer le mme signal, qui se propagera en entre au neurone. titre d'anecdote, de nombreuses drogues et mdicaments agissent ce niveau, en perturbant ou en saturant les rcepteurs de certains neuro-transmetteurs. Chez les invertbrs ainsi que pendant le dveloppement initial du cerveau humain, la connexion se fait au moyen de  cbles  directement grce une protine, la connexine. Pour rsumer, nous dirons que la puissance de calcul rside tant dans le nombre de neurones que dans le nombre de leurs inter-connexions. L'apprentissage des connaissances et des notions se traduit concrtement par la cration et la multiplication de connexions entre neurones, ainsi que par une acclration de la transmission du signal. Cette caractristique se retrouvera, au moins d'un point de vue conceptuel, dans le neurone formel.
1.2 Concept de neurone formel

L'ide du neurone formel est simple. La Nature nous a quip d'outils plutt performants, il est probablement intelligent de mimer leur comportement. Mais il ne s'agirait pas de recrer une cellule virtuelle totale, avec des mitochondries articielles qui creraient de l'ATP articiel an de gnrer des signaux lectriques. Mme si le concept peut tre amusant, au moins du point de vue d'une simulation du comportement naturel, il reste complexe implmenter prcisment ; donc fatalement sujet problmes. Mais surtout, une telle complexit est inutile. En eet, revenons au mcanisme dcrivant l'apprentissage dont on a parl prcdemment. Il s'agit, peu ou prou, de faire en sorte de faciliter la circulation de l'information et la stimulation des neurones. Notre neurone n'a donc besoin que de traiter l'information qui lui arrive en entre, et de renvoyer son rsultat en sortie. Grossirement, il s'agit simplement de produit matriciel. Ainsi, un neurone formel est caractris par :  Une entre. Il s'agit d'un vecteur qui comprends les grandeurs  physiques  analyser.  Des poids. Il s'agit l encore d'un vecteur. Ces poids sont une composante primordiale du neurone, et par la suite des rseaux.  Un biais. Il sert permettre d'agir sur le seui de dclenchement.  Une fonction de combinaison. C'est une application d'un espace de dimension N dans un espace de dimension 1. Dans la suite, les exemples concernent un rseau de type Perceptron Multi-Couches, pour lequel la fonction de combinaison est une combinaison linaire des entres. Les rseaux de type RBF (Radial Basis Function) utilisent un calcul de distance.  Une fonction de tranfert. Son rle est de retourner un rsultat (scalaire) que l'on pourra par la suite donner d'autres neurones en entre, ou bien qui sera la rponse - ou une partie de la rponse - de notre neurone.
10 Rseaux de neurones

Principe du rseau de neurones

Soit E = (ei ), i 1..n le vecteur d'entre du neurone, et soient W = (wi ), i 1..n ses poids. Soit b le biais du neurone. Considrons une fonction de transfert simple : signe(x). Alors, la rponse de notre neurone une entre sera simplement donne par :
Si = signe( (wi ei ) + b)

Un neurone articiel n'est rien d'autre. Il existe dirents types de fonctions de transferts utilisables, dont nous parlerons par la suite. De mme, souvent, le biais est implment comme tant une entre supplmentaire. Le travail de l'apprentissage sera de trouver les valeurs des poids adquats. Il existe plusieurs techniques pour entraner un rseau de neurones, allant d'une application des poids formelle. C'est dire qu'on xe nos sorties pour des entres connues, et que l'on rsoud le systme ainsi form pour trouver les poids. Cel ne se limite qu' de petits exemple. D'autres techniques cherchent calculer l'erreur entre ce que l'on obtient et ce que l'on a eu en entre, il s'agit des mthodes supervises. Enn, certaines mthodes consistent laisser le rseau de neurones de dbrouiller, un peu l'image de notre cerveau. On remarquera au nal les simplications qui ont t eectues par rapport la complexit d'un neurone biologique.
1.3 Principe du rseau de neurones

Nous avons pu admirer la conception remarquable d'un cerveau Humain. Cette machine ne tire sa puissance que de son incroyable paralllisation, raison de 100 milliards de neurone par cerveau, et de 50 000 connexions par neurone vers ses compatriotes. Tant qu' s'inspirer du concept cr par la Nature, l'Homme a donc aussi voulu exploiter les neurones articiels en rseau.
1.3.1 Ide de rseau

Le principe est simple : dans la section prcdente, nous avons vu que le neurone est - entre-autrescompos d'une entre et d'une sortie. Dans la nature, la connexion entre neurones est assure au moyen des axones et des dendrites. Dans le monde articiel, la connexion entre neurones sera assure. En  liant les sorties des neurones sur les composantes des vecteurs d'entres d'autres. Ainsi, de proches en proches, on peut constituer un maillage de neurones qui  communiquent , en s'changeant des valeurs numriques. Tous les rseaux de neurones existant reposent sur ce concept, en y ajoutant certaines hypothses (possibilit de cycles, sens unique, etc.). Un rseau de neurone ne sera cependant pas conu n'importe comment. Ses caractristiques, savoir le nombre d'entres et de sorties, ainsi que le nombre de neurones qui le composent dpendent la fois du problme, et galement du type de rseau utilis.
1.3.2 Une organisation en couches

Un rseau peut tre organis en couches. Chaque couche prends en entre la sortie de sa couche prcdente. La premire couche, dite couche d'entre, a quant elle l'honneur de recevoir les donnes du problme en entre. La dernire couche, elle, ne communique ses rsultats aucune autre : elle donne le rsultat de la classication du vecteur d'entre. Les couches intermdiaires, qui sont utilises pendant les calculs, sont appeles des douches caches.
1.4 Types de rseaux possibles

De toutes ses possibilits, on peut classier (sans rseau de neurone), les types de rseaux suivant dirents paramtres :  La fonction de combinaison utilise.
Rseaux de neurones 11

Chapitre 1. Rseaux de neurones

 La topologie du rseau.  Le mcanisme d'apprentissage.  La fonction de seuillage. Nous ne prsenterons ici que les plus courant. Pour chacun de ses rseaux, nous prsenterons la fois les caractristiques locales, savoir celles propres au neurone de base (fonction de seuillage, par exemple), et les caractristiques gobales (comme la topologie du rseau).
1.4.1 Perceptron

Nous allons tout d'abord nous intresser au perceptron, qui est le type le plus simple de rseau de neurones. Celui-ci a t invent en 1957 par Franck Rosenblatt dans la laboratoires du Cornell Aeronautical Laboratory. Dans sa version de base, il ne contient qu'un unique neurone, et peut ainsi rsoudre des problmes de classication linaires.

Figure 1.2  Le perceptron monocouche


Le rseau prsent ci-dessus comporte deux entres, les donnes que nous souhaitons classer se situent donc dans un espace de dimension 2, mais ceci peut tre gnralis sans soucis en dimension N. La fonction de transfert utilise ici est une fonction seuil. Nous disposons donc d'une sortie gale 1 si la donne appartient la classe reconnue par le rseau, 0 sinon. An de comprendre le principe du perceptron, nous allons nous limiter un exemple ou aucun biais n'est prsent. La frontire de dcision est donc une droite passant par l'origine de repre. Dans le cas d'une classication linaire, le vecteur des poids est perpendiculaire la frontire de dcision (voir gure 1.3 page 13). Lorsque nous prsentons un vecteur Pi en entre du rseau, nous obtenons la sortie a = hardlim(W Pi + b), partir de laquelle nous pouvons calculer l'erreur e = Ti a. An de rduire cette erreur, l'ide la plus logique est de diriger le vecteur de poids dans la direction des individus qui appartiennent la classe. En eet, si nous considrons les coordonnes d'un individu et que nous ajoutons indniment ses coordonnes au vecteur de poids, la direction de ce dernier convergera asymptotiquement vers la direction du l'individu considr, et sera, fortiori, du bon cot de la frontire de dcision, auquel cas nous arreterons le processus de correction. Nous allons donc appliquer ce principe l'ensemble des individus de l'ensemble d'apprentissage. Si l'individu appartient la rgion que nous souhaitons dlimiter (Ti = 1), mais qu'il est reconnu par le perceptron comme n'appartenant pas cette rgion (a = 0), nous obtenons donc une erreur positive (e = 1). En accord avec ce qui a t expliqu prcdemment, nous allons ajouter les coordonnes de ce vecteur au vecteur de poids (voir gure 1.4 page 13). En revanche, si l'individu n'appartient pas la rgion (Ti = 0), mais est reconnu par le rseau comme y appartenant (a = 1), alors il nous faut corriger de manire ngative la direction du vecteur des poids, pour ainsi l'loigner le plus possible des individus hors de la rgion. Nous allons donc soustraire les coordonnes de l'individu au vecteur de poids (voir gure 1.5 page 13).
12 Rseaux de neurones

Types de rseaux possibles

Figure 1.3  Frontire de dcision

Figure 1.4  Correction des poids du perceptron dans le cas d'une erreur positive

Figure 1.5  Correction des poids du perceptron dans le cas d'une erreur ngative
Enn, lorsque l'individu est correctement class par le perceptron, nous n'avons aucune raison de modier les poids, nous laissons donc le vecteur des poids tel qu'il est. Pour rsumer, lorsque l'erreur est positiove, nous ajoutons les coordonnes de l'individu au vecteur de poids. Quand elle est ngative, nous le soustrayons, et lorsqu'il est correctement reconnu (l'erreur est nulle),
Rseaux de neurones 13

Chapitre 1. Rseaux de neurones

nous n'y touchons pas. La formule de mise jour des poids est donc la suivante :
Wnew = Wold + e Pi

La dernire question en suspens est de savoir quand est ce que l'on va mettre n ce processus d'apprentissage. Nous l'arreterons quand tous les individus de la base d'apprentissage seront correctement reconnus. Pour simplier le problme, nous avons dit que nous considrions le biais conne nul. Celui-ci peut tre considr comme une dimension supplmentaire du vecteur d'entre, donc la coordonne est toujours 1. Nous allons donc appliquer la mme formule que prcdemment, ce qui nous donne
bnew = bold + e

Voici donc l'algorithme que nous allons appliquer : 1. Le rseau est tout d'abord initialis avec des poids (W ) et un biais (b) alatoires, de faible valeur. 2. Si tous les vecteurs de l'ensemble d'apprentissage sont correctements reconnus (i, hardlim(W Pi + b) = Ti ), alors l'apprentissage est termin. 3. Sinon, choisir un lment Pi de l'ensemble d'apprentissage et le prsenter l'entre du rseau. La rponse du rseau est a = hardlim(W Pi + b). 4. Corriger les poids et le biais. 5. Retourner l'tape 2. Cet processus d'apprentissage est toutefois criticable. Le premier reproche que nous pouvons lui faire est que la frontire de dcision n'est pas optimale. En eet, nous l'arretons ds qu'une frontire sparant les deux groupes d'individus est trouve, il n'y a aucune condition sur la prcision de la solution trouve. Cela est un comportement intrinsque l'algorithme, et est une contrepartie de la simplicit de celui-ci. Nous verrons plus tard comment amliorer ce comportement. Le second reproche que nous pouvons lui faire est que la frontire de dcision est un peu trop basique, car limite des problmes de classication linaire. une certaine poque, cela a mme fait profondment baisser le cotes des rseaux de neurones auprs des nanciers, poussant la recherche autour de ce sujet la limite du nant. La rponse arrivera quelques annes plus tard, avec les algorithmes de rtropropagation de l'erreur et les perceptrons multi-couches. Malgr cela, il nous est possible d'tendre quelque peu les possibilits de ce rseau. En eet, un unique neurone gnre une unique frontire de dcision, sparant l'espace en deux rgions. En utilisant deux neurones en parallle, nous pouvons grer deux frontire de dcision, nous sommes donc en mesure de diviser l'espace des donnes en quatres rgions (au maximum). Avec k neurones, nous pouvons donc grer jusqu' k2 rgions. Bien entendu, la classication eectues par chacun des neurones doit tre linaire, sans quoi aucune solution au problme ne pourra tre trouve. Le processus d'apprentissage est le mme que prcdemment, les neurones se trouvant en parallle, il sut d'appliquer l'algorithme prcdent sur chacun des neurones.
1.4.2 ADAline

Ce type de rseau de neurone a d dvelopp par le professeur Bernard Widrow et Ted Ho, de l'Universit de Stanford, dans les annes 1960. Il est bas sur une fonction de combinaision de type somme classique. C'est un rseau qui est compos d'une unique couche de neurones, o chaque neurone a plusieurs entres et une unique sortie. Soient  d N, la dimension de l'espace des entres,  X Rd , un vecteur d'entre,  W Rd , un vecteur de poids,  n N, le nombre de noeuds du rseau,
14 Rseaux de neurones

Types de rseaux possibles

 , le biais On peut dnir la sortie du rseau ainsi :


n

y=
j

(xj wj ) +

On n'utilise pas dans ce type de neurone de fonction de transfert. De plus, il s'agit d'un rseau apprentissage supervis. On dni donc :  X Rd , un vecteur d'entre,  [0; 1], le taux d'apprentissage,  S , la sortie dsire,  A, la sortie actuellement obtenue. L'apprentissage, c'est dire la mise jour des poids, se fait donc :
w = w + (D A)X

Le rseau ADALINE converge suivant le moindre carr de l'erreur :


E = (D A)2
1.4.3 Carte auto-adaptive

Rseaux de neurones

15

CHAPITRE 2

Neurones de base disponibles dans MatLab


2.1 2.2 2.3 Le perceptron Adaline Rseaux avec dlai

16

Rseaux de neurones

CHAPITRE 3

Implmentations de rseaux de neurones sous Matlab


3.1
3.1.1

Perceptron mono-neurone
Implmentation mathmatique

Avant de nous lancer dans l'utilisation de la toolbox "Rseaux de neurones", il est important de bien comprendre le mcanisme de fonctionnement du perceptron. Celui-ci est par ailleurs simple implmenter, de mme que les rsultats obtenus sont facilement visualisables. Pour cela, nous avons besoin d'un ensemble d'apprentissage. Il est constitu de deux ensembles de k donnes :  P , les k vecteurs d'entre de dimension n (dans notre cas, de dimension 2 pour faciliter la reprsentation),  T (Target), les classe d'appartenance des k vecteurs d'entre. Voici le code ncessaire l'apprentissage d'un perceptron mono-neurone pour un problme de classication linaire.
1 % Ensemble d ' apprentissage P = [[0; 0] [0; 1] [1; 0] [1; 1]]; 3 T = [0 0 0 1]; 5 % Initialisation des poids et biais une valeur alatoire % comprise entre -1 et 1 7 w = rand (1 , length ( P (: ,1) ) ) *2 -1; b = rand (1 ,1) *2 -1; 9 % Compteur d ' itrations 11 epoch = 0; 13 j = 0; 15 % Tant que tous les individus de l ' ensemble d ' apprentissage % ne sont pas correctement reconnus ... 17 while (~ all ( T == hardlim ( w * P + b ) ) ) % Parcours linaire de l ' ensemble d ' apprentissage 19 j = mod (j , length ( T ) ) +1; % Parcours alatoire 21 % j = floor (( rand (1 ,1) * length ( T ) ) +1) ; epoch = epoch + 1; 23 % a : sortie du rseau 25 a = hardlim ( w * P (: , j ) + b ) ; % e : erreur 27 e = T (: , j ) - a ; % Correction des poids et du biais 29 w = w + e * P (: , j ) '; b = b + e;

Rseaux de neurones

17

Chapitre 3. Implmentations de rseaux de neurones sous Matlab

31 33 35 37 39 41 43

% Affichage dynamique de l ' apprentissage du neurone plotpv (P , T ) ; plotpc (w , b ) ; pause (0.5) % Affichage du nombre d ' itrations effectues if ( mod ( epoch , 10) == 0) disp ( sprintf ( '% d itrations ... ' , epoch ) ) ; end end

% Affichage de la classification finale 45 plotpv (P , T ) ; plotpc (w , b ) ; 47 % Affichage des valeurs calcules durant l ' apprentissage 49 disp ( sprintf ( '% d itrations ' , epoch ) ) ; disp ( sprintf ( ' Poids : ') ) ; 51 disp ( w ) ; disp ( sprintf ( ' Biais : ') ) ; 53 disp ( b ) ;

Code 3.1  Implmentation mathmatique du perceptron mono-neurone

Comme vous pouvez le voir, le code est assez concis. Il l'est mme plus qu'il n'y parait, car seulement 12 de ces lignes sont rellement ncessaire, le reste n'est que commentaires et achage d'informations concernant l'volution de l'algorithme. L'volution des paramtres du rseau est ici ach de manire graphique, via les fonctions plotpv (achage des vecteurs d'entre et de leur classe)et plotpc (achage de la frontire de classication). Aprs excution de cet algorithme, vous devriez obtenir un achage de ce type. On voit ici clairement que la frontire de dcision n'est pas optimale.
Vectors to be Classified 1.5

P(2)

0.5

0.5 0.5

0.5 P(1)

1.5

Figure 3.1  Rsultat de l'apprentissage d'un mono-neurone sur un problme de classication linaire
en 2 dimensions

La rponse du rseau lorsqu'un individu P t y est entr est obtenu par la formule hardlim(w*Pt+b).
18 Rseaux de neurones

Perceptron mono-neurone

Notez que ce script fonctionne aussi en dimension 3, Matlab grant tout fait bien l'achage en dimension 3. Pour des dimensions suprieures, le script fonctionne toujours, mais il faut retirer les appels plotpv et plotpv.
Vectors to be Classified

1.4 1.2 1 0.8 P(3) 0.6 0.4 0.2 0 0.2 0.4 0.5 0.5 P(2) P(1) 1 1.5

0.5

1.5

0.5

Figure 3.2  Rsultat de l'apprentissage d'un mono-neurone sur un problme de classication linaire
en 3 dimensions

3.1.2

Implmentation avec la toolbox

Maintenant que nous avons vu l'aspect mathmatique, nous allons l'occulter pour laisser le gros du travail aux fonctions de la toolbox.

Rseaux de neurones

19

Conclusion

20

Rseaux de neurones

Bibliographie

Rseaux de neurones

21

Rseaux de neurones sous Matlab


Dpartement Informatique eme 4 anne 2007-2008 Rapport de projet

Rsum:

Introduction la manipulation de rseaux de neurones sous MatLab. rseaux de neurones, matlab, neurone formel Introduction to neural network with MatLab. neural network, matlab, formal neuron

Mots clefs: Abstract : Keywords :

tudiants :

Cyrille FAUCHEUX Alexandre LISSY

cyrille.faucheux@etu.univ-tours.fr alexandre.lissy@etu.univ-tours.fr

pascal.makris@univ-tours.fr Universit Franois-Rabelais, Tours

Pascal Makris

Encadrant :