Vous êtes sur la page 1sur 27

228 Les rseaux neuronaux discriminants Chapitre 5

T RAVAUX P RATIQUES Le perceptron de Rosenblatt

Ce laboratoire consiste valuer la capacit du perceptron en tant que clas-


sificateur de donnes. Ce rseau relativement simple vous permettra aussi de
faire un tour dhorizon des possibilits offertes par le simulateur JavaNNS.

Le perceptron peut tre considr comme le premier des rseaux de neuro-


nes adaptatifs, cest--dire dont les poids des connexions sont changs par
apprentissage. Le but du perceptron est dassocier une rponse des signaux
prsents en entre. Le perceptron se compose, pour lessentiel, de deux cou-
ches de neurones. lorigine, la premire couche tait appele la rtine du per-
ceptron. La deuxime couche donne la rponse du perceptron la stimulation
donne en entre. Les cellules dentre sont relies aux cellules de sortie grce
des synapses.

Lapprentissage du perceptron seffectue en modifiant lintensit des synap-


ses. Les cellules de sortie valuent le degr de similitude de leur vecteur de
poids synaptiques avec la stimulation en provenance des cellules de la rtine en
effectuant la somme pondre des intensits des cellules actives. Les cellules de
sortie deviennent actives si leur degr dactivation dpasse un seuil fix.

THORIE

La classification de donnes linairement sparables

Un problme classique en reconnaissance de formes consiste classifier des


donnes selon une ou plusieurs catgories. Dans ce laboratoire, on dsire utiliser
le perceptron pour trouver la droite qui spare les deux classes de donnes de la
figure 5.a.

Chaque lment de cette figure est caractris par ses coordonnes x1 et x2,
et par la famille y laquelle il appartient. On a choisi dassocier la valeur +1 aux
chantillons et la valeur -1 aux chantillons . Ces tiquettes sont arbi-
traires. Afin de fixer les ides, supposons que les donnes de la figure 5.a pro-
viennent de mesures que lon a faites sur des pommes et des tomates. La mesure
x1 reprsente le diamtre relatif du fruit par rapport un talon (do la possibi-
lit de mesure ngative) et la mesure x2, son poids relatif. Les mesures tique-
Travaux Pratiques Thorie 229

x2
4

0 x1
-1

-2

-3

-4
-4 -3 -2 -1 0 1 2 3 4

Figure 5.a Donnes linairement sparables.

tes correspondent aux tomates alors que celles tiquetes


correspondent aux pommes. En entranant un simple perceptron avec les don-
nes de la figure 5.a, serait-il possible de dterminer automatiquement la cat-
gorie de fruit ?

Le perceptron recevra donc 2 entres, x1 et x2, et produira une seule sortie


y, soit ltiquette de llment correspondant. Le rseau construire, illustr
la figure 5.b, est justement constitu de deux neurones dentre, lun recevant
lentre x1 et lautre, lentre x2, et dun neurone de sortie, qui indiquera la
famille dappartenance y.

Si w 1 et w 2 sont les poids entre les neurones dentre et le neurone de sor-


tie, le rseau sparera lespace de la fig. 5.a selon lquation 5.a. Cette quation
dfinit une droite; dautre part, en posant pour ce laboratoire un seuil dactiva-
tion nul, la droite en question passera ncessairement par lorigine.

w
x 2 = -----1- x 1 + ------ (5.a)
w2 w2

Lapprentissage consiste dterminer les poids w 1 et w 2 tels que tous les


lments soient dun ct de la droite, et tous les lments soient de
lautre ct. cette tape, il faut donc indiquer au rseau si on veut obtenir une
230 Les rseaux neuronaux discriminants Chapitre 5

Figure 5.b Architecture du perceptron 2 entres.


Les chiffres indiquent la sortie des neurones et les poids
des connexions.

sortie de +1 ou -1 pour chaque paire (x1,x2) de la fig. 5.a. Le simulateur ajuste


ses poids itrativement selon la rgle du perceptron :

W ( t + 1 ) = W ( t ) + ( d ( k ) classe ( k ) )X k (5.b)

avec W ( t ) = [ w 1 w 2 ] le vecteur de poids litration t,


X k = [ x 1 ( k )x 2 ( k ) ] les kimes entres x1 et x2 du rseau,
d(k) la catgorie prdtermine : +1 ( ) ou -1( ),
classe(k) la sortie du rseau, soit la catgorie calcule par le
rseau, qui peut tre conforme ou non d(k).

Selon cette quation, les nouveaux poids W(t+1) sont ceux de litration
prcdente, plus un facteur de correction qui dpend de la forme Xk observe,
de lerreur de sortie (d(k)-classe(k)) et du taux dapprentissage .

La phase subsquente de gnralisation consiste observer la sortie du per-


ceptron pour des paires (x1,x2) qui ne font pas partie de lensemble dapprentis-
sage.
Travaux Pratiques Manipulations 231

MANIPULATIONS

Dmarrage de JavaNNS

1. Lancez JavaNNS. Configurez votre environnement de simulation de faon


pouvoir visualiser votre rseau, afficher les courbes dapprentissage,
montrer le panneau gnral de commandes et enfin afficher la fentre des
rsultats. Votre environnement de simulation ressemblera celui de la figure
5.c qui illustre un rseau une couche cache pour rsoudre le problme du
OU EXCLUSIF.

Figure 5.c Envvironnement de sinulation sous JavaNNS.


Le menu droulant File permet de charger en mmoire ou de
sauvegarder des descriptions de rseaux (suffixe .net), des donnes
dapprentissage ou de test (suffixe .pat) et des fichiers de
configuration (suffixe .cfg). Le menu droulant View permet de
visualiser un rseau, les courbes derreur en apprentissage et le
droulement des oprations. Le menu droulant Tools donne
accs des outils pour la conception et lanalyse de rseaux.
232 Les rseaux neuronaux discriminants Chapitre 5

Construction du rseau avec loutil CREATE

2. Choisissez litem CreateLayers du menu droulant Tools. Le panneau de


construction de rseau apparat (figure 5.d) et le rseau est ensuite bti
couche par couche.

Figure 5.d Panneau de construction des couches du rseau.


Le rseau est construit couche par couche, en spcifiant
pour chaque couche le type (entre, cache et sortie) et
les fonctions dactivation et de sortie.

3. La couche dentre est construite en spcifiant le type de couche (Unit


type = Input), le nombre de neurones et leur disposition de mme que leur
fonction dactivation et de sortie. Entrez 1 pour le nombre dunits dans la
direction des x (Width = 1), et 2 pour le nombre dunits en direction des y
(Height = 2) : ceci indique au simulateur quon dsire crer une matrice de
1 x 2 neurones sur la couche. Puisque la couche dentre ne sert qu
prsenter au rseau la forme classifier, les fonctions dactivation et de
sortie sont unitaires (Act_Identity et Out_Identity). Les donnes pour la
couche dentre sont enregistres en cliquant sur le bouton Create.

4. Configurez la couche de sortie en spcifiant le type de couche (Unit


type = Output). Entrez 1 pour le nombre dunits en direction des x et
galement 1 pour le nombre dunits en direction des y. La fonction de sortie
est unitaire alors que la fonction dactivation est la fonction bipolaire
(Activation function = Act_Signum). Le tableau 5.a rsume les principales
Travaux Pratiques Manipulations 233

Fonction SNNS Nom Expression


Fonctions dactivation
Act_Identity linaire a ( t ) = net ( t )
Act_IdentityPlus linaire avec
a ( t ) = net ( t ) +
Bias polarisation
1
Act_Logistic sigmode a ( t ) = -------------------------------
( net + )
1+e
1 si net ( t )
Act_Perceptron perceptron a(t) =
0 si net ( t ) <

1 si net ( t ) > 0
Act_Signum binaire a(t) =
1 si net ( t ) 0

1 si net ( t ) > 0
binaire
Act_Signum0 a(t) = 0 si net ( t ) = 0
incluant zro
1 si net ( t ) < 0

1 si net ( t ) > 0
Act_StepFunc chelon a(t) =
0 si net ( t ) 0
tangente
Act_Tanh a ( t ) = tanh ( net ( t ) + )
hyperbolique
Fonctions de sortie
1 si a(t) 1
linaire
Out_Clip_0_1 out ( t ) = a ( t ) si 0 < a(t) < 1
borne {0, 1}
0 si a(t) 0

1 si a(t) 1
linaire
Out_Clip_1_1 out ( t ) = a ( t ) si 1 < a ( t ) < 1
borne {-1, 1}
1 si a ( t ) 1
Out_Identity linaire out ( t ) = a ( t )
Out_Threshold_ binaire 1 si a ( t ) > 0, 5
out ( t ) =
0.5 dcale 0 si a ( t ) 0, 5
Tableau 5.a Fonctions dactivation et de sortie usuelles
234 Les rseaux neuronaux discriminants Chapitre 5

fonctions dactivation et de sortie offertes dans le simulateur. Les donnes


pour la couche de sortie doivent tre enregistres en cliquant sur le bouton
Create.
On a donc dfini un rseau compos de deux neurones sur la couche dentre
et dun seul neurone sur la couche de sortie. Le rseau ne contient pas de
couche cache.

5. Les connexions entre les couches sont spcifies par loutil


CreateConnections du menu droulant Tools. Le tableau de configuration
des connexions apparat tel quillustr la figure 5.e. Slectionnez une
connectivit directe totale (Connect feed-forward) et assurez-vous que les
connexions supplmentaires directes entre les couches dentre et de sortie
ne sont pas actives. Cette action dfinit une connectivit directe complte
entre les couches. Le neurone de sortie du rseau sera connect chacun des
neurones de la couche dentre.

Figure 5.e Panneau de construction des liens.

6. Lidentification de chaque neurone peut tre personnalise grce au menu


ddition du simulateur. Le menu droulant EditNames rend modifiable le
champs de nom de tous les neurones et vous pouvez alors changer le nom
Travaux Pratiques Manipulations 235

de nimporte quel neurone. Identifiez les neurones de la couche dentre par


les noms x1 et s2 et le neurone de la couche de sortie par classe y.

Affichage du rseau avec le menu View

7. Le menu ViewNetwork affiche le rseau lcran. Les paramtres de


laffichage comme le code de couleur utilis et lidentification des neurones
peuvent tre modifis au moyen du menu ViewDisplay settings. La figure
5.f montre les deux panneaux qui permettent de modifier les divers
paramtres daffichage.

Figure 5.f Paramtres daffichage du rseau.


Un code de couleurs permet de visualiser les valeurs de sortie
des neurones et les valeurs de poids des connexions. On peut
afficher, au dessus et au dessous de chaque neurone, divers
paramtres du neurone comme son numro, son nom, sa valeur
de sortie, dactivation, etc.
laide des deux panneaux dajustement de laffichage, affichez le nom de
chaque neurone au dessus de celui-ci et la valeur de sa sortie en dessous.
Affichez les connexions du rseau de mme que la valeur de poids associ
chaque lien.

8. Sauvegardez votre rseau sous le nom : perceptron laide du menu


droulant FileSave ou FileSave as. JavaNNS rajoutera lextension .net
au nom du fichier.
236 Les rseaux neuronaux discriminants Chapitre 5

Prparation des donnes dapprentissage

Le perceptron est un rseau apprentissage supervis, cest--dire quil


apprend par lexemple. On doit donc lui fournir des exemples de donnes dj
classifies pour quil apprenne les reconnatre. Ce modle nest dailleurs pas
sans rappeler lapprentissage chez les humains.

Les donnes dapprentissage sont fournies au simulateur dans un fichier


texte. La figure 5.g ci-dessous illustre la syntaxe du fichier texte qui doit tre res-
pecte afin que le simulateur puisse procder lapprentissage de la base
dexemples.

SNNS pattern definition file V3.2


generated at Mon Sept 8
12:28:26 2003

No. of patterns :6 nombre dexemples


No. of input units : 2 nombre de neurones lentre
No. of output units : 1 nombre de neurones la sortie

-1 2 -1 x1, x2 et classe de lexemple


-1 1 -1 x2
4
-1 0 -1
3
3 1 1
3 0 1 2

3 -1 1 1

0 x1
-1

-2

-3

-4
-4 -3 -2 -1 0 1 2 3 4
Figure 5.g Base dapprentissage.
Les donnes dexemple pour lentranement du rseau sont
stockes dans un fichier texte de suffixe .pat. Lexemple ci-
dessus est constitu des chantillons illustres et montre la
syntaxe qui doit tre respecte afin dtre compatible avec
JavaNNS.
Travaux Pratiques Manipulations 237

9. Le fichier de donnes de la figure 5.g est disponible sur le site Internet du


livre, dans le sous-rpertoire TP5/Donnees/exemple.pat. Ouvrez ce fichier
laide dun diteur de texte, sauvegardez-le dans votre rpertoire SNNS sous
le nom figure5.a.pat, puis modifiez-le pour quil corresponde aux donnes
de la figure 5.a.

Phase dapprentissage du rseau avec le panneau de


commande Control Panel

Le rseau doit maintenant apprendre classifier les donnes, cest--dire


placer correctement la droite de sparation au sein de la figure 5.a.

10. Pour charger les donnes en mmoire, slectionnez le fichier figure5.a.pat.


laide du menu droulant FileOpen. linverse, nimporte quelles
donnes (apprentissage, test, rsultats, etc.) peuvent tre sauvegardes au
moyen du menu droulant FileSave data.

11. Le panneau de commande du simulateur, Control Panel, est de loin la


fentre la plus importante du simulateur. Cest par ce panneau.que toutes les
tapes dune simulation sont initialises et commandes. La panneau de
commande est accessible par le menu droulant ToolsControl Panel. Le
panneau de commande offre plusieurs onglets pour spcifier les diffrentes
tapes dune simulation.

12. Pour confirmer que le simulateur lit correctement les donnes, cliquez sur
longlet Pattern du panneau de commande. Le panneau de commande
apparat alors comme la figure 5.h ci-dessous. Parcourez les donnes de la
base dapprentissage et vrifiez que les donnes dentre correspondent aux
donnes emmagasines. Dans ce mode de vrification, les donnes de la
base dapprentissage sont affiches sous forme de couleurs sur la couche
dentre et sur la couche de sortie qui affiche alors la valeur dsire.
Chacune des donnes de la base dapprentissage peut aussi tre propage
travers le rseau grce longlet Updating, aussi illustr la figure 5.h.
Slectionnez Topological_Order. En plus de laffichage selon le code de
couleur, ce mode permet de vrifier la valeur soumise lentre du rseau,
valeur qui est affiche sous chacun des neurones de la couche dentre.

Remarquez quun neurone inhibiteur (sortie ngative) devient rouge, alors


quun neurone excitateur (sortie positive) devient vert.
238 Les rseaux neuronaux discriminants Chapitre 5

Figure 5.h Panneau de commande pour lexamen des formes soumises


lentre.
Pourquoi le neurone de sortie a-t-il toujours une sortie de -1.000 ?

13. Les paramtres de lapprentissage sont ajusts au moyen de longlet


Learning du panneau de commande, comme il est illustr la figure 5.i ci-
dessous.Slectionnez la fonction Backpropagation comme fonction
dapprentissage. Entrez 0.1 dans la premire case de cette ligne : cest le
taux dapprentissage . Entrez 0.1 dans la deuxime case : ceci correspond
au seuil dmax de tolrance sur lerreur, au-dessous duquel on nexige pas de
correction des poids1.

Figure 5.i Panneau de commande pour lapprentissage.


Un premier onglet permet de rgler les paramtres de
lapprentissage tandis que longlet dinitialiser permet
dinitialiser les poids de connexion du rseau.
Entrez 10 dans la case Cycles. Lapprentissage devra sarrter aprs 10
poques, ce qui est suffisant pour cet exemple simple. Pour des rseaux plus
complexes, on limite plutt le nombre initial dpoques aux alentours de
1000.
Les poids des connexions du rseau sont initialiss au moyen de longlet
Initializing. Slectionnez la fonction dinitialisation Random Weights dans

1. Cette fonctionnalit est sans effet pour le perceptron, dont la sortie est discrte. Vous
devrez cependant ajuster dmax lors du TP sur le perceptron multicouche.
Travaux Pratiques Manipulations 239

une plage de -1 +1 afin dinitialiser tous les poids du rseau avec des
valeurs alatoires entre -1 et +1.

14. La direction de la propagation de la forme soumise lentre travers le


rseau est spcifie par longlet Updating du panneau de commande (figure
5.h droite). Assurez-vous que la fonction Topological_Order est
slectionne comme fonction de mise jour.

15. Pour visualiser la courbe derreur lors de lapprentissage, slectionnez


laffichage de la courbe derreur dans le menu droulant
ViewError Graph. Trois fonctions derreur sont affichables, avec n le
nombre de formes dans la base dapprentissage, et outputs le nombre de
neurones de sortie :
n outputs
2 2
e = SSE = ( dn ( k ) yn ( k ) )
k=1 o=1
1
--- e = MSE = SSE
2
----------
n n
1 2 SSE
------------------- e = SSE/# out-unit = -------------------
outputs outputs

La fonction SSE est propose par dfaut. Ajustez les chelles du graphique
laide des flches sur les cts de cette fentre pour voir 16 cycles en x, et
une erreur SSE de 20 units en y.
Le journal de bord des oprations ralises par le simulateur peut tre affich
par lintermdiaire du menu droulant ViewLog.
De combien la fonction cumulative derreur SSE augmentera-t-elle chaque
fois que le rseau fait une erreur de classification?

16. Cliquez sur le bouton INIT dans longlet dapprentissage du panneau de


commande pour initialiser les poids du rseau, et notez ces valeurs initiales
de poids. Lancez lapprentissage en cliquant sur Learn all, et notez les poids
finaux.

17. partir des poids des connexions entre les neurones, calculez lquation de
la droite qui spare les deux classes de donnes. Tracez cette droite sur la
figure 5.a pour vous assurer que tous les lments dune mme classe sont
situs dun seul ct de la droite.
240 Les rseaux neuronaux discriminants Chapitre 5

En cas derreur :

a) Revrifiez vos donnes dans le fichier


figure5.a.pat : correspondent-elles prcisment
aux donnes de la figure 5.a ?
b) Confirmez avec la fentre Unit Properties (souris
droite ou menu droulant Edit) que vos trois neu-
rones utilisent les fonctions dactivation et de sor-
tie mentionnes aux tapes 3. et 4.. Vrifiez que
le neurone de sortie nest pas configur comme
neurone cach.

Au besoin, refaites les tapes 16. et 17. aprs avoir corrig le problme.

18. Faites un snapshot de votre courbe derreur pour le rapport. Pour ce faire,
utilisez le programme de capture dcran, disponible parmi les utilitaires de
votre systme dexploitation : ceci vous permettra de photographier la
fentre Error Graph et den crer une image lisible par votre logiciel de
traitement de texte.

19. Sauvegardez votre rseau entran, comme ltape 8.


La coordonne verticale x 2 tait-elle vraiment ncessaire pour classifier les
formes de la figure 5.a ? la lumire de cette observation, commentez les
poids finaux obtenus par le rseau.

Apprentissage du rseau, 2e version

Vous disposez maintenant dun perceptron fonctionnel, prt pour utilisation.


Cependant, la mthode dapprentissage que vous avez utilise nindique pas
comment JavaNNS parvient ce rsultat : en effet, vous fournissez toutes les
donnes dapprentissage et le simulateur vous retourne dun seul coup la solu-
tion finale. Pour mieux comprendre lalgorithme du perceptron, nous allons
recommencer lapprentissage en prsentant les formes une une, et nous calcu-
lerons nous-mmes la correction apporter aux poids.
Travaux Pratiques Manipulations 241

Ne faites pas les oprations suivantes pour toutes vos donnes,


ce serait inutilement long. Contentez-vous de 2 ou 3 formes mal
classifies, juste ce quil faut pour comprendre le mcanisme.
Fournissez un exemple de calcul dans votre rapport.

20. Dans longlet dapprentissage du panneau de commande, entrez 1 dans la


case Cycles. Pesez sur le bouton Init pour initialiser vos poids une valeur
alatoire, et notez les valeurs de poids pour usage ultrieur.

Si vous le dsirez, vous pouvez aussi repartir avec les mmes poids initiaux
qu lapprentissage prcdent (tape 16.) : dans ce cas, il vous suffit de
slectionner les deux neurones relis par la connexion modifier, puis de
pointer un des deux neurones et slectionner Edit Links ... en cliquant sur le
bouton droit de la souris.

21. Faites afficher la fentre Error graph pour visualiser la courbe derreur. Au
besoin, appuyez sur licone de nouvelle page pour effacer lancienne
courbe.

22. Parcourez vos donnes avec les flches de dplacement dans longlet
Updating du panneau de commande. Pour chaque forme dentre, vrifiez
la sortie du rseau dans la fentre qui affiche votre rseau.

23. Si la forme est correctement classifie avec les poids actuels, passez la
forme suivante. Sinon :
1. Tracez sommairement lactuelle droite de
sparation sur la figure 5.a
2. Calculez les nouveaux poids avec la rgle du
perceptron (qu. 5.b) reproduite ci-dessous :

W ( t + 1 ) = W ( t ) + ( d ( k ) classe ( k ) )X k

avec W ( t + 1 ) : nouveaux poids


W ( t ) : poids actuels W ( t ) = [ w 1 w 2 ]
: taux dapprentissage
X k : signal ou forme dentre X k = [ x 1 ( k )x 2 ( k ) ]
d ( k ) : valeur dsire en sortie pour X k
242 Les rseaux neuronaux discriminants Chapitre 5

classe ( k ) : valeur obtenue en sortie pour X k

2
3. Calculez lerreur SSE = ( d ( k ) classe ( k ) )
4. Pressez le bouton Learn current pour indiquer
JavaNNS de corriger les poids pour cette seule
forme. Les poids et lerreur SSE apparaissant
respectivement dans les fentres Network et
Error graph doivent correspondre ceux que
vous avez calculs.
5. Tracez la nouvelle droite de sparation sur la fig.
5.a; observez dans quel sens elle sest dplace.

Continuez ce processus (tapes 22. et 23.) pour quelques autres formes.

Phase de gnralisation du rseau

Il sagit maintenant de vrifier si le perceptron peut classifier correctement


des chantillons de forme quil na pas appris.

24. Prparez le fichier de donnes correspondant la figure 5.j ci-dessous, de la


mme faon qu ltape 9. crivez 0 sur la ligne No. of outputs units , et
entrez seulement les valeurs (x1,,x2) des lment de la figure 5.j titre de
donnes. Sauvegardez ce fichier sous le nom figure5.j.pat.

25. Chargez ce fichier en mmoire comme ltape 10..

26. Parcourez toutes les formes utilises pour vrifier les capacits de
gnralisation (fig. 5.j) avec les flches de dplacement dans longlet
Updating du panneau de commande et observez la valeur de sortie du
perceptron dans la fentre daffichage du rseau. Comparez ces rsultats
avec la droite de sparation que vous avez obtenue ltape 17..
AVERTISSEMENT : ne touchez pas au bouton Init de longlet
dapprentissage, ce qui changerait les valeurs de poids.
quelle classe est assigne la forme situe (0, 0), point qui appartient la
ligne de sparation, et surtout pourquoi? Aurait-elle d tre classe
autrement?
Travaux Pratiques Manipulations 243

x2
4

0 x1
-1

-2

-3

-4
-4 -3 -2 -1 0 1 2 3 4

Figure 5.j Gnralisation.


chantillons de donnes qui nont pas t
apprises par le rseau.

27. Sauvegardez les rsultats de la gnralisation : menu droulant FileSave


data, tapez le nom de fichier figure5.j, spcifiez le type de fichier
Result files *.res, puis Save. JavaNNS ajoute automatiquement lextension
.res au nom de fichier. Vous pouvez consulter ce fichier avec un simple
diteur de texte.

Lorsquil y a beaucoup de donnes (comme pour le TP sur le perceptron


multicouche), il est gnralement plus pratique dcrire les rsultats dans un
fichier qui sera analys ultrieurement, plutt que de parcourir les formes
une une comme vous lavez fait.
244 Les rseaux neuronaux discriminants Chapitre 5

Un exemple de donnes non-sparables linairement

On tudiera ici le comportement du perceptron avec des donnes non spa-


rables linairement.

28. crivez le fichier de donnes correspondant la figure 5.k ci-dessous.


y
4

0 x
-1

-2

-3

-4
-4 -3 -2 -1 0 1 2 3 4

Figure 5.k Donnes non-sparables linairement.

29. Chargez ce fichier en mmoire.

30. Rinitialisez votre rseau en cliquant sur le bouton Init de longlet


dapprentissage.

31. Recommencez lapprentissage avec les donnes de la figure 5.k, en


augmentant le nombre de cycles dapprentissage. Exprimentez avec ou
sans SHUFFLE (dans longlet dapprentissage), qui indique au simulateur
de parcourir les donnes dapprentissage dans un ordre alatoire ou
squentiel.

32. Faites une capture dcran de la courbe derreur. Tracez la droite de


sparation obtenue ( partir des poids finaux) sur la fig. 5.k.
Concluez sur la pertinence du perceptron pour classifier ce genre de
donnes. quoi pourrait servir le perceptron dans lexploration de donnes
inconnues?
Travaux Pratiques Manipulations 245

Un exemple plus complexe de donnes sparables


linairement

Jusquici, la droite de sparation passait obligatoirement par lorigine. Cette


contrainte na pas empch le rseau dapprendre sparer correctement les
donnes de la fig. 5.a puisquil existe toute une famille de droites-solutions pas-
sant par lorigine. Mais cette contrainte empcherait le rseau de converger vers
une solution pour les donnes de la fig. 5.l ci-dessous. Lhyperplan de sparation
x2
4

0 x1
-1

-2

-3

-4
-4 -3 -2 -1 0 1 2 3 4

Figure 5.l Donnes linairement sparables.


Un degr de libert doit tre ajout parce que la
droite de dcision ne passe pas par lorigine.

des deux classes doit donc pouvoir se dplacer dans lespace des solutions et
non pas tre restreint passer par lorigine. Ce dplacement est matrialis en
ajoutant une valeur de seuil au neurone. Cette valeur de seuil est variable et
sera entrane comme toutes les valeurs de poids des connexions parvenant au
neurone. Cest pourquoi dans plusieurs simulateurs, cette valeur de seuil est
implante en rajoutant une connexion supplmentaire connecte une entre
fixe gale -1. Dans JavaNNS, lutilisation dun seuil seffectue par le choix de
la fonction dactivation, dont certaines incluent une valeur de seuil ou de pola-
risation.

33. Modifiez la fonction dactivation du neurone de classification en choisissant


la fonction Act_Perceptron. Avec cette fonction dactivation, le neurone de
classification met une sortie binaire { 0, 1 } et est muni dune valeur de
246 Les rseaux neuronaux discriminants Chapitre 5

seuil qui est entrane tout comme les autres valeurs de poids des
connexions qui parviennent ce neurone.

34. Les donnes de la fig. 5.l sont disponibles sur le site Internet du livre
lemplacement TP5/Donnees/lineaire.pat. Chargez ce fichier en mmoire.

35. Lorsque lapprentissage de la nouvelle base de donnes sera termine, notez


la valeur atteinte des poids de connexion et la valeur de seuil du neurone de
classification. Tracez la droite de sparation sur la fig. 5.l.

Rapport

Votre rapport devrait inclure les lments suivants :

Court expos du problme rsoudre : problme de


classification.
Fonctionnement du perceptron, avec quations
lappui.
Analyse des rsultats : droite de sparation,
convergence de lapprentissage, pertinence des
classes obtenues en gnralisation, etc.
Conclusions et observations.

Noubliez pas de rpondre spcifiquement aux questions identifies dans le


texte par une flche .

Incluez aussi dans votre rapport une illustration du rseau, vos courbes
derreur, et la dfinition du rseau (contenu du fichier perceptron.net) aprs
apprentissage.
Travaux Pratiques Les rseaux Adaline et Madaline 247

T RAVAUX P RATIQUES Les rseaux Adaline et Madaline

Ce laboratoire reprend essentiellement la problmatique de classification de


donnes linairement sparables du TP prcdent, mais cette fois en valuant les
performances du rseau Adaline de Widrow-Hoff et en les comparant avec cel-
les du perceptron de Rosenblatt. Nous examinons galement la possibilit
dajouter une couche cache au rseau Adaline afin de rsoudre des problmes
de classification de donnes qui ne sont pas linairement sparables. Le Mada-
line constituait une premire solution au problme de classification non-linaire
qui sera gnralis plus tard par le perceptron multicouche rtropropagation
derreur. Nous illustrons ici lutilisation du Madaline pour rsoudre le problme
non linaire classique du XOR.

LADALINE DE WIDROW-HOFF

Le rseau Adaline a t dvelopp la mme priode que le perceptron de


Rosenblatt, et les deux rseaux prsentent plusieurs similarits. La diffrence la
plus marque est que lAdaline de Widrow-Hoff ajuste ses poids selon un critre
de moindre carr en comparant la sortie dsire avec la valeur nette du neurone,
et non avec la sortie quantifie comme dans le cas du perceptron de Rosenblatt.
248 Les rseaux neuronaux discriminants Chapitre 5

Nous allons comparer ces deux rseaux laide des mmes donnes clas-
sifier que nous avons utilises pour le perceptron. Les donnes sont celles de la
fig. 5.l qui sont reprises ci-dessous.
x2
4

0 x1
-1

-2

-3

-4
-4 -3 -2 -1 0 1 2 3 4

Figure 5.m Donnes linairement sparables.

Le simulateur JavaNNS ne permet pas dentraner les connexions dun neu-


rone partir de la valeur dactivation de ce dernier, comme lexige lalgorithme
de Widrow-Hoff. Nous remdions cette lacune en construisant la couche de
classification laide de deux sous-couches en cascade : une premire sous-cou-
che avec fonction dactivation et de sortie toutes les deux linaires, qui fournira
la valeur nette pour lapprentissage, suivie dune seconde sous-couche poids
fixe unitaire et munie dune fonction dactivation binaire afin de quantifier la
sortie. Le rseau construire est illustr la figure 5.n.

Manipulations

1. Construisez le rseau Adaline selon larchitecture de deux couches de la


figure 5.n. La premire couche, celle du combinateur linaire adaptatif, est
la portion du rseau dont les poids seront entrans. Les tapes de
construction sont similaires aux tapes de construction du perceptron vues
en dtail au TP prcdent (tapes 1 8.). Ces tapes sont rsumes ci-
dessous :
1.1 Aprs avoir dmarr JavaNNS, construisez le rseau partir du menu
droulant ToolsCreateLayers.
Travaux Pratiques LAdaline de Widrow-Hoff 249

Figure 5.n Architecture de lAdaline 2 entres.


La couche de classification est spare en deux sous-rseaux,
un premier qui constitue un combinateur linaire adaptatif et
un second qui ne participe pas lentranement pour
binariser la sortie du neurone de classification.

1.2 Construisez un rseau avec deux neurones lentre, un neurone en


couche cache et un neurone en sortie. Les connexions sont de type
Connect feed-forward.
1.3 Visualisez le rseau laide du menu droulant ViewNetwork et
affichez les liens, le nom des neurones, la valeur des poids ainsi que la
valeur de polarisation ou de sortie, au choix, de chaque neurone comme
la figure 5.n.
1.4 Changez les fonctions dactivation et de sortie de chaque neurone
laide de la fentre Unit Properties ou, mieux, lors de la cration du
rseau.
Plus spcifiquement :
a) couche dentre :
- nom : x1 et x2
- fonction dactivation : Act_Identity
- fonction de sortie : Out_Identity
b) couche cache (intermdiaire) :
- nom : net
- fonction dactivation : Act_IdentityPlusBias
250 Les rseaux neuronaux discriminants Chapitre 5

- fonction de sortie : Out_Identity


c) couche de sortie - cest la couche qui ne doit pas tre entrane :
- nom : classe y
- type de neurone : Special output
- fonction dactivation : Act_Signum
- fonction de sortie : Out_Identity
- poids fixe non entran : fixer 1 la valeur de ce poids
laide du menu contextuel (bouton droit de la souris) Edit
Links
1.5 Ajustez les paramtres de lapprentissage au moyen de longlet
dapprentissage du panneau de commande :
- fonction dapprentissage : Backpropagation
- taux dapprentissage : 0.1
- erreur minimum : 0.01
- mise jour : Topological_Order
- nombre maximum dpoques : 10
- initialisation des poids : Random Weights
1.6 Affichez lerreur dapprentissage au moyen de la fentre Error graph.

2. Chargez en mmoire du simulateur les donnes de la fig. 5.m disponibles sur


le site Internet du livre lemplacement TP5/Donnees/lineaire.pat.

3. Procdez lentranement du rseau en utilisant lalgorithme


dapprentissage Backpropagation. Tracez la courbe derreur et comparez
avec la courbe derreur du perceptron.

4. Tracez sur la fig. 5.m la droite de sparation obtenue aprs lapprentissage


du rseau Adaline. Tracez galement sur le mme graphique la droite
obtenue par lentranement du perceptron de Rosenblatt. Commentez les
diffrences entre les deux droites de sparation.
tant donn que le rseau utilise une valeur de polarisation au lieu dune
valeur de seuil pour la fonction dactivation, lquation 5.a de la droite de
w
dcision devient : x 2 = -----1- x 1 ------ . La seule diffrence rside dans le
w2 w2
signe du second terme de lquation, cause des dfinitions de la
polarisation et du seuil, qui sont loppos lune de lautre.
laide du tableau 5.a des fonctions dactivation et de sortie disponibles
sous JavaNNS, dmontrer les quations de droite de dcision dans les deux
Travaux Pratiques LAdaline de Widrow-Hoff 251

cas o une valeur de seuil et une valeur de polarisation sont utilises.


Discuter de lquivalence fonctionnelle entre ces deux termes.

5. Vrifiez le bon fonctionnement du rseau Adaline dabord avec les donnes


qui ont servi lapprentissage (fichier TP5/Donnees/lineaire.pat, en
crivant 0 sur la ligne No. of outputs units et en supprimant la colonne
de sortie dsire), puis avec les donnes de la fig. 5.j pour vrifier la capacit
de gnralisation du rseau. Vous pouvez avantageusement utiliser la
mthode de parcours des donnes avec les flches de dfilement sous
longlet Updating du panneau de commande dans JavaNNS.

6. Quel serait le comportement du rseau Adaline dans le cas o les donnes


ne sont pas sparables linairement, comme la fig. 5.k ?
252 Les rseaux neuronaux discriminants Chapitre 5

LE RSEAU MADALINE

Le rseau Madaline est une des premires rponses apportes au problme


de donnes qui ne sont pas sparables linairement. Le rseau est compos de
deux couches : une premire couche, entranable, constitue de neurones Ada-
line, et une seconde couche de sortie constitue de neurones formels de McCul-
loch & Pitts poids fixes et ralisant des fonctions logiques de base.

Nous allons utiliser le rseau Madaline pour rsoudre le problme classique


du OU EXCLUSIF qui avait montr lpoque une limite fondamentale du per-
ceptron de Rosenblatt. Il faut donc concevoir un rseau de neurones capable de
classifier correctement les deux entres une fonction OU EXCLUSIF. Les
deux catgories ne sont pas sparables par une seule ligne droite, comme le
montre la fig. 5.o ci-dessous.

x2 x2

C1 C1
Surface de dcision
Surface de dcision
Neurone A
+1 Neurone B

-1 -1 +1
C2
C2
x1
x1

(a) (b)
Figure 5.o Problme de la fonction logique OU EXCLUSIF.
a) la sortie vraie ne peut pas tre isole de la rponse
fausse par une ligne droite.
b) une solution au problme consiste utiliser une premire
couche de neurones configure en rseau Adaline, qui gnre
les deux droites de sparation C1 et C2. Une seconde couche
combine par une opration OU les deux catgories
prcdentes pour fournir la bonne rponse.

Le rseau Madaline deux couches pour rsoudre le problme du OU


EXCLUSIF est illustr la figure 5.p ci-dessous. Dtaillez dans votre rapport
les paramtres de chacun des neurones constituant le rseau Madaline.
Travaux Pratiques Le rseau Madaline 253

Figure 5.p Rseau Madaline.


Rseau deux couches pour rsoudre le problme du XOR.

Manipulations

1. tudiez dabord le rseau Adaline de la figure 5.q constitu des 6 premiers

Figure 5.q Premire couche du rseau Madaline.


Cette couche est constitue de deux neurones de type
Adaline aliments par les entres x1 et x2. Cette couche
est entrane pour produire les deux lignes de dcision
C1 et C2.

neurones de la figure 5.p. La principale difficult rencontre dans la mise en


oeuvre de ce rseau rside dans la connectivit entre les deux dernires
254 Les rseaux neuronaux discriminants Chapitre 5

couches, qui sont de type 1--1 alors que la connectivit complte est le type
de connectivit par dfaut de JavaNNS. Il faut donc modifier la connectivit
laide de loutil ToolsCreateConnections utilis lors de la
construction du rseau. Un neurone source est dabord slectionn, puis
loutil de connexion est excut (ToolsCreateConnections) et
lopration Connect selected units est choisie. Le bouton Mark selected
units as source est press, puis le neurone de destination est slectionn, et
enfin le bouton Connect source with selected units est press. Le processus
est recommenc pour connecter les deux derniers neurones. Pour les besoins
de ce TP, vous trouverez la bonne configuration du rseau sur le site Internet
du livre lemplacement TP5/Traitements/madalineapp.net. Configurez les
neurones comme une couche Adaline, tel que vu la premire partie de ce
TP.

2. Par la suite, entranez le rseau diffrencier les deux zones A et B dfinies


la figure 5.o ci-dessus. Entranez le rseau avec les donnes du OU
EXCLUSIF. Constituez la base dapprentissage requise et joignez-la votre
rapport. Prenez bonne note de toutes les valeurs de poids de connexion et de
polarisation afin de pouvoir les transfrer au rseau complet du Madaline.
Tracez dans votre rapport les droites de sparation apprises par votre rseau.

3. Ltage de sortie du Madaline est constitu dun rseau poids fixes qui
ralise une fonction logique. Dans notre cas, le problme du
OU EXCLUSIF sera rsolu en soumettant les rponses obtenues des
neurones A et B une fonction logique OU. Compltez la construction du
Madaline en ajoutant une porte OU ralise par le neurone final de sortie. La
configuration du rseau complet se trouve dans le fichier TP5/Traitements/
madaline.net qui prend en charge la configuration des diverses connexions
du rseau. Initialisez le rseau avec les valeurs de poids de toutes les
connexions et les valeurs de polarisation des neurones appropris que vous
avez notes la suite de lentranement de la section Adaline. Configurez le
neurone de sortie afin quil ralise une opration logique OU.

4. Testez le fonctionnement de votre rseau.