Vous êtes sur la page 1sur 88

GIND5439

Systmes Intelligents
Chapitre 6: Rseaux de neurones.

Apprentissage machine

Comprend des mcanismes adaptifs qui permettent


un ordinateur:

Dapprendre par exprience


Dapprendre par exemples
Dapprendre par analogie

Les capacits dapprentissage peuvent amliorer la


performance dun systme intelligent au fil du
temps.
Les deux approches populaires sont:

Rseaux de neurones
Algorithme gntique

GIND5439 Gabriel Cormier, Universit de Moncton

Quest-ce quun rseau de neurones?

Cest un modle de raisonnement bas sur le


cerveau humain.
Le cerveau est constitu dun ensemble de cellules
nerveuses, ou units de traitement dinformation,
appels neurones.
Cerveau

Prs de 10 milliards de neurones


60 trillions de connexions, des synapses, entre eux.

Un neurone est constitu de:

Un corps de cellule, le soma


Un nombre de fibres appels dendrites
Un fibre long appel axone.

GIND5439 Gabriel Cormier, Universit de Moncton

Rseau de neurones biologique


Synapse
Axon

Soma

Dendrites

Synapse

Axon

Soma

Dendrites
Synapse

GIND5439 Gabriel Cormier, Universit de Moncton

Quest-ce quun rseau de neurones?

Cest un ensemble de processeurs trs simples,


appels neurones.
Les neurones sont branchs ensemble laide de
liens pondrs qui passent des signaux dun
neurone un autre.
Le signal de sortie est transmis travers la
connexion de sortie du neurone.
La sortie se divise en un nombre de branches qui
transmettent tous le mme signal.
Les branches de sortie se terminent lentre de
dautres neurones dans le rseau.

GIND5439 Gabriel Cormier, Universit de Moncton

Quest-ce quun rseau de neurones?

Chaque neurone reoit un nombre de


signaux dentre xi travers ses connexions.
Un ensemble de poids rels wi sont utiliss
pour dcrire la force de la connexion.
Le niveau dactivation xiwi dtermine la
force cumulative des signaux dentre.
Une fonction seuil f calcule ltat final de la
sortie. a simule le comportement ON/OFF
de neurones rels.

GIND5439 Gabriel Cormier, Universit de Moncton

Quest-ce quun rseau de neurones?

Chaque neurone produit une seule sortie.


Le signal de sortie est transmis travers la
connexion de sortie du neurone.
La connexion de sortie se spare en un
nombre de branches

Le mme signal se propage sur chaque branche.

Les branches de sortie se terminent aux


connexions dentre de dautre neurones.

GIND5439 Gabriel Cormier, Universit de Moncton

Quest-ce quun rseau de neurones?

Chaque rseau est aussi caractris par des


proprits globales tel que:

Topologie du rseau
Algorithme dapprentissage
Technique dencodage

GIND5439 Gabriel Cormier, Universit de Moncton

Signaux de sortie

Signaux dentre

Architecture typique dun rseau de


neurones.

Niveau intermdiaire
Niveau dentre
GIND5439 Gabriel Cormier, Universit de Moncton

Niveau de sortie
9

quivalences
Rseau de neurones
biologique
Soma

Rseau de neurones
artificiel
Neurone

Dendrite

Entre

Axon

Sortie

Synapse

Poids

GIND5439 Gabriel Cormier, Universit de Moncton

10

Neurone McCulloch-Pitts

Les entres sont excitatrices (+1) ou inhibitrices (-1)


La fonction dactivation multiplie chaque entre par
son poids correspondant et fait la somme du
rsultat.
Si le rsultat est > 0, la sortie du neurone est 1;
sinon -1.
On a dmontr que ces neurones peuvent tre
construites pour calculer nimporte quelle fonction
logique.
On a dmontr quun systme de ces neurones
peut produire un modle informatique complet.

GIND5439 Gabriel Cormier, Universit de Moncton

11

Le neurone
Entres

Poids

Sorties

x1

w1
x2

w2
Neurone
wn

xn

GIND5439 Gabriel Cormier, Universit de Moncton

12

Calcul de la sortie

Le neurone calcul la somme pondre des entres et compare le


rsultat avec la valeur seuil .
Si lentre nette est moins que la valeur seuil, la sortie du neurone
est -1.
Si lentre nette est plus grande que la valeur seuil, le neurone est
activ et la sortie est +1.
La fonction dactivation (ou fonction de transfert) du neurone est:

X = xi wi
i =1

+ 1, si X
Y =
1, si X <

Ce type de fonction est la fonction sign.

GIND5439 Gabriel Cormier, Universit de Moncton

13

Fonctions dactivation
Step function

Linear function

+1

+1

+1

+1

-1

Sigmoid function

Sign function

step 1, if X 0

=
0, if X < 0

0
-1

1, if X < 0

-1

-1

sign +1, if X 0 Y sigmoid=


Y
=

1
1+ e X

GIND5439 Gabriel Cormier, Universit de Moncton

Y linear= X

14

Apprentissage dun neurone

Est-ce quun seul neurone peut apprendre


une tche?

Le Perceptron

1958, Frank Rosenblatt


Bas sur le modle de McCulloch-Pitts
Un algorithme dapprentissage qui a produit la premire
procdure pour entraner un rseau de neurones.

La forme la plus simple dun rseau de neurones.


Est constitu dun seul neurone avec des poids
ajustables et un limiteur brusque: fonction chelon
ou sign.

GIND5439 Gabriel Cormier, Universit de Moncton

15

Perceptron un seul niveau, 2 entres


Entres
x1
w1

Combineur Limiteur
linaire
brusque

w2

x2

Sortie
Y

Seuil

GIND5439 Gabriel Cormier, Universit de Moncton

16

Perceptron

La somme pondre des entres est


applique au limiteur brusque qui produit une
sortie de +1 si lentre est positive et -1 si
lentre est ngative.
Le but est de classifier les entres, les stimuli
externes x1, x2, , xn, en lune de deux
classes A1 et A2.

GIND5439 Gabriel Cormier, Universit de Moncton

17

Perceptron

Comment le perceptron apprend-t-il sa tche de


classification?

On utilise une forme dapprentissage supervis.


De faibles ajustements sont fait aux poids pour rduire la
diffrence entre la sortie relle et la sortie dsire.
Les poids initiaux sont assigns de faon alatoire,
typiquement entre -0.5 et +0.5.
Aprs un essai pour rsoudre le problme, un
enseignant donne le rsultat correct.
Les poids sont ensuite modifis pour rduire lerreur.

GIND5439 Gabriel Cormier, Universit de Moncton

18

Apprentissage du perceptron

Si, une itration p, la sortie relle est Y(p)


et la sortie voulue est Yd(p), alors lerreur est:
e( p ) = Yd ( p ) Y ( p )

o p = 1, 2, 3K

Litration p reprsente le pime exemple


dentranement prsent au perceptron.
Si lerreur e(p) est positive, il faut augmenter
la sortie Y(p) du perceptron; si lerreur est
ngative, il faut diminuer la sortie.

GIND5439 Gabriel Cormier, Universit de Moncton

19

Rgle dapprentissage du perceptron


wi ( p + 1) = wi ( p ) + xi ( p ) e( p )
O

p = 1, 2, 3,
est le taux dapprentissage, 0 < < 1

En utilisant cette rgle, on peut construire un


algorithme dapprentissage pour des tches de
classification.

GIND5439 Gabriel Cormier, Universit de Moncton

20

Algorithme dapprentissage

tape 1: initialisation

On cre les poids initiaux w1, w2, , wn et le seuil


des valeurs alatoires dans lintervalle [-0.5,
0.5].
Rappel: Si lerreur e(p) est positive, il faut
augmenter la sortie Y(p) du perceptron; si lerreur
est ngative, il faut diminuer la sortie.

GIND5439 Gabriel Cormier, Universit de Moncton

21

Algorithme dapprentissage

tape 2: activation

On active le perceptron en y appliquant les


entres x1(p), x2(p), , xn(p), et la sortie voulue
Yd(p). On calcule la sortie relle litration p = 1.

Y ( p ) = step x i ( p ) w i ( p )
i = 1

o n est le nombre dentres du perceptron, et


step est une fonction dactivation chelon.
GIND5439 Gabriel Cormier, Universit de Moncton

22

Algorithme dapprentissage

tape 3: Mise jour du poids

On met jour le poids du perceptron:

wi ( p + 1) = wi ( p ) + wi ( p )

o wi est la correction au poids litration p.


La correction au poids est:

wi ( p) = xi ( p) e( p )

tape 4: Prochaine itration (p = p + 1), on retourne


ltape 2, et on continue jusqu ce quon
converge.

GIND5439 Gabriel Cormier, Universit de Moncton

23

Est-ce quun perceptron peut raliser les


oprations logiques de base?
Entre
x1

Entre
x2

AND
x1 x2

OR
x1 x2

XOR
x1 x2

GIND5439 Gabriel Cormier, Universit de Moncton

24

Apprentissage du perceptron: AND


poch

Entres
x1

x2

0
0
1
1

0
1
0
1

0
0
1
1

Sortie
voulue Yd

Poids initial

Sortie
relle Y

Erreur

w1

w2

0
0
0
1

0.3
0.3
0.3
0.2

-0.1
-0.1
-0.1
-0.1

0
0
1
0

0
1
0
1

0
0
0
1

0.3
0.3
0.3
0.2

0.0
0.0
0.0
0.0

0
0
1
1

0
1
0
1

0
0
0
1

0.2
0.2
0.2
0.1

0
0
1
1

0
1
0
1

0
0
0
1

0
0
1
1

0
1
0
1

0
0
0
1

Poids final
w1

w2

0
0
-1
1

0.3
0.3
0.2
0.3

-0.1
-0.1
-0.1
0.0

0
0
1
1

0
0
-1
0

0.3
0.3
0.2
0.2

0.0
0.0
0.0
0.0

0.0
0.0
0.0
0.0

0
0
1
0

0
0
-1
1

0.2
0.2
0.1
0.2

0.0
0.0
0.0
0.1

0.2
0.2
0.2
0.1

0.1
0.1
0.1
0.1

0
0
1
1

0
0
-1
0

0.2
0.2
0.1
0.1

0.1
0.1
0.1
0.1

0.1
0.1
0.1
0.1

0.1
0.1
0.1
0.1

0
0
0
1

0
0
0
0

0.1
0.1
0.1
0.1

0.1
0.1
0.1
0.1

Seuil: = 0.2; Taux dapprentissage: = 0.1

GIND5439 Gabriel Cormier, Universit de Moncton

25

Reprsentation des oprations de base


x2

x2

x2

1
x1

x1
0

(a) AND (x 1 x 2 )

x1

(b) OR (x 1 x 2 )

(c) Exclusive -OR


(x 1 x 2 )

Un perceptron peut apprendre AND et OR, mais pas XOR.

GIND5439 Gabriel Cormier, Universit de Moncton

26

Pourquoi?

a provient directement de lquation


n

X = xi wi
i =1

+ 1, si X
Y =
1, si X <

La sortie Y est 1 seulement si la somme


pondre totale X est plus grande ou gale
la valeur seuil .
Lespace dentre doit tre divis en deux le
long dune frontire dfinie par X = .

GIND5439 Gabriel Cormier, Universit de Moncton

27

Fonctions dactivation

Est-ce quune fonction sigmode ou linaire


permettrait de raliser XOR?

Un perceptron un seul niveau fait des dcisions


de la mme faon peu importe la fonction
dactivation.
Minsky et Papert (1969) ont dmontr que le
perceptron de Rosenblatt ne peut pas faire des
gnralisations globales bas sur des exemples
locaux.

GIND5439 Gabriel Cormier, Universit de Moncton

28

Rseaux de neurones multi-niveau

Un perceptron plusieurs niveaux est un


rseau raction directe ayant un ou
plusieurs niveaux cachs.
Le rseau est constitu de:

Un niveau dentre
Au moins 1 niveau intermdiaire ou cach de
neurones
Un niveau de sortie

Les entres se propagent vers lavant (la


sortie) niveau par niveau.

GIND5439 Gabriel Cormier, Universit de Moncton

29

Rseau de neurones 2 niveaux

GIND5439 Gabriel Cormier, Universit de Moncton

30

Niveau intermdiaire

Que cache le niveau intermdiaire?

Les neurones dans le niveau intermdiaire

Ne peuvent pas tre observs partir du comportement


entre/sortie du rseau.
Les poids des neurones intermdiaires reprsentent des
entits caches.
Les entits sont utiliss dans le niveau de sortie pour
dterminer la sortie.

GIND5439 Gabriel Cormier, Universit de Moncton

31

Apprentissage dans rseaux multi-niveau

Propagation arrire (Bryson et Ho, 1969)


Un ensemble dentres est prsent au
rseau.
Le rseau calcule les sorties, et sil y a une
erreur (une diffrence entre la sortie relle et
la sortie voulue), les poids sont ajusts pour
rduire cette erreur.

GIND5439 Gabriel Cormier, Universit de Moncton

32

Apprentissage dans des rseaux multiniveau

Lapprentissage est dtermin par:

Connexions entre les neurones (architecture)


Les fonctions dactivation utilises par les
neurones.
Lalgorithme dapprentissage qui spcifie la
procdure pour ajuster les poids.

GIND5439 Gabriel Cormier, Universit de Moncton

33

Apprentissage dans rseaux multi-niveau

Dans un rseau de neurones propagation arrire,


lalgorithme dapprentissage a deux phases:

Un ensemble dentres dentranement est prsent au


niveau dentre.
Le rseau propage ces entres niveau par niveau jusqu
ce quune (ou des) sortie soit gnre.
Si la sortie est diffrente de la sortie voulue, une erreur est
calcule et puis propage dans le rseau de la sortie vers
lentre.
Les poids sont ajusts au fur et mesure que lerreur se
propage.

GIND5439 Gabriel Cormier, Universit de Moncton

34

Rseaux 3 niveaux, propagation arrire


Entres
1

x1
x2

xi

y1

y2

yk

yl

2
i

wij

wjk

m
n

xn
Niveau dentre

Niveau cach

Niveau de sortie

Erreurs
GIND5439 Gabriel Cormier, Universit de Moncton

35

Apprentissage dans rseaux multi-niveau

On calcule le poids net comme avant:


n

X = xi wi
i =1

On passe ensuite cette valeur la fonction


dactivation: fonction sigmode.
Y

sigmode

1
=
1 + e X

GIND5439 Gabriel Cormier, Universit de Moncton

36

Apprentissage dans rseaux multi-niveau


Prsenter les entres et dterminer les valeurs
des niveaux cachs et du niveau de sortie.
2. Comparer les rsultats du niveau de sortie aux
rsultats corrects.
3. Modifier les poids du niveau dentre et des
niveaux cachs pour rduire lerreur.
4. La rgle utilise pour modifier les poids se nomme
rgle delta, parce quelle change chaque poids
selon sa pondration par rapport la sortie.
1.

1.

Le delta, ou drive partielle de la sortie par rapport au


poids.

GIND5439 Gabriel Cormier, Universit de Moncton

37

Apprentissage dans rseaux multi-niveau

La plupart des rseaux de neurones multi-niveau


fonctionnent avec des entres qui varient de 0 1.
Les poids varient chaque itration dune fraction
du changement ncessaire pour corriger lerreur la
sortie. Cette fraction, , est le taux dapprentissage.

Si le taux dapprentissage est trop lev, lalgorithme prend


des grands pas et risque de manquer le point derreur
minimale, ou mme osciller autour du minimum.
Des petits pas, qui viennent dun taux dapprentissage
petit, trouveront ventuellement un minimum, mais risquent
de prendre beaucoup de temps.

GIND5439 Gabriel Cormier, Universit de Moncton

38

Paramtres dapprentissage

Taux dapprentissage
Contrle lamplitude des pas utiliss pour ajuster les poids. Dans
certains rseaux de neurones, diminue avec le nombre
ditrations.
Momentum
Propagation arrire
Lissage de leffet des ajustements aux poids au fil des itrations.
Tolrance (erreur)
Propagation arrire
Spcifie la diffrence acceptable entre la sortie relle et la sortie
voulue.
Fonction dactivation
La fonction utilise chaque neurone pour gnrer la sortie
partir des entres pondrs. La fonction la plus commune est la
fonction sigmode.

GIND5439 Gabriel Cormier, Universit de Moncton

39

Algorithme dapprentissage, propagation


arrire

tape 1: Initialisation

On rgle tous les poids et seuils du rseau une


valeur alatoire dans lintervalle:

2. 4
2. 4

, +
Fi
Fi

O Fi est le nombre total dentres au neurone i


dans le rseau. Linitialisation des poids n est faite
neurone par neurone.

GIND5439 Gabriel Cormier, Universit de Moncton

40

Algorithme dapprentissage, propagation


arrire

tape 2: Activation

On active le rseau de neurone propagation arrire en y


appliquant les entres x1(p), x2(p), , xn(p), et les sorties
voulues yd1(p), yd2(p), , ydn(p),

n
y j ( p ) = sigmoid x i ( p ) w ij ( p ) j

i =1

On calcule les sorties des neurones dans les niveaux


cachs

O n est le nombre dentres au neurone j dans le niveau


cach, et sigmoid est la fonction sigmode.

GIND5439 Gabriel Cormier, Universit de Moncton

41

Algorithme dapprentissage, propagation


arrire

tape 2 (suite)

On calcule la sortie des neurones du niveau de


sortie:

m
y k ( p ) = sigmoid x jk ( p ) w jk ( p ) k

j =1
o m est le nombre dentres du neurone k dans
le niveau de sortie.

GIND5439 Gabriel Cormier, Universit de Moncton

42

Algorithme dapprentissage, propagation


arrire

tape 3: Poids

On ajuste les poids dans le rseau propagation arrire


qui propage vers larrire les erreurs.
Calculer le gradient derreur pour les neurones du niveau
de sortie:

k ( p ) = yk ( p ) [1 yk ( p )] ek ( p )

e k ( p ) = y d ,k ( p ) y k ( p )

Calculer les corrections aux poids.


w

jk

( p) = y j ( p) k ( p)

Ajuster les poids aux neurones de sortie.

w jk ( p + 1) = w jk ( p ) + w jk ( p )
GIND5439 Gabriel Cormier, Universit de Moncton

43

Algorithme dapprentissage, propagation


arrire

tape 3 (suite)

Calculer le gradient derreur pour les neurones


dans le niveau cach:
l

j ( p ) = y j ( p ) [1 y j ( p ) ] k ( p ) w
k =1

jk

( p)

Calculer les corrections aux poids:


w ij ( p ) = x i ( p ) j ( p )

Ajuster les poids aux neurones cachs:


w ij ( p + 1) = w ij ( p ) + w ij ( p )

GIND5439 Gabriel Cormier, Universit de Moncton

44

Algorithme dapprentissage, propagation


arrire

tape 4: Itration

On augmente litration p de 1 (p = p + 1), on


retourne ltape 2 et on refait le processus
jusqu ce que le critre derreur soit satisfait (ex:
erreur plus petite que 0.1%).

GIND5439 Gabriel Cormier, Universit de Moncton

45

Exemple: propagation arrire

On utilise ici un rseau simple 3 niveaux


pour apprendre la fonction XOR:
Entre 1

Entre 2

Sortie

Cest lexemple p.178 181 du manuel.


GIND5439 Gabriel Cormier, Universit de Moncton

46

Exemple: propagation arrire


-1
3
x1

w13

-1
w35

w23

5
5

w14
x2

w24

y5

w45

4
4
-1

Dans ce rseau, les neurones 1 et 2


du niveau dentre nont aucun effet
et ne font que passer lentre au
niveau 2.

GIND5439 Gabriel Cormier, Universit de Moncton

47

Exemple: propagation arrire

Les poids initiaux et niveaux seuils sont crs


alatoirement. Pour cet exemple, on obtient:

w13 = 0.5, w14 = 0.9, w23 = 0.4, w24 = 1.0,


w35 = -1.2, w45 = 1.1
3 = 0.8, 4 = -0.1, 5 = 0.3
On suppose un taux dapprentissage = 0.1

On prend ici un exemple dentranement o


les deux entres x1 et x2 sont 1. La sortie
voulue yd,5 est donc 0 (fonction XOR).

GIND5439 Gabriel Cormier, Universit de Moncton

48

Exemple: propagation arrire

On calcul maintenant la sortie des neurones


3 et 4 (puisque 1 et 2 nont aucun effet):
y3 = sigmoid ( x1w13 + x2 w23 3 ) =
y4 = sigmoid ( x1w14 + x2 w24 4 ) =

1+ e

= 0.5250

= 0.8808

(10.5+10.4 0.8 )

1+ e

(10.9 +11.0 + 0.1)

Et la sortie relle du neurone 5:

y5 = sigmoid ( y3 w35 + y4 w45 5 ) =

1+ e

(0.5250( 1.2 ) + 0.88081.1 0.3 )

GIND5439 Gabriel Cormier, Universit de Moncton

= 0.5097

49

Exemple: propagation arrire

Lerreur peut maintenant tre calcule:

e = yd ,5 y5 = 0 0.5097 = 0.5097

La prochaine tape est de propager cette


erreur vers larrire pour modifier les poids et
niveaux seuils.

GIND5439 Gabriel Cormier, Universit de Moncton

50

Exemple: propagation arrire

On calcule en premier le gradient derreur :


5 = y5 (1 y5 )e = 0.5097(1 0.5097 )( 0.5097 ) = 0.1274

On modifie maintenant les poids et le niveau


seuil:
w35 = y3 5 = (0.1)(0.5250 )( 0.1274 ) = 0.0067
w45 = y4 5 = (0.1)(0.8808)( 0.1274 ) = 0.0112
5 = ( 1) 3 = (0.1)( 1)( 0.1274 ) = 0.0127

GIND5439 Gabriel Cormier, Universit de Moncton

51

Exemple: propagation arrire

On calcule maintenant le gradient derreur


pour les neurones 3 et 4:

3 = y3 (1 y3 ) 5 w35 = 0.5250(1 0.5250)( 0.1274)( 1.2) = 0.0381

4 = y4 (1 y4 ) 5 w45 = 0.8808(1 0.8808)( 0.1274)(1.1) = 0.0147

Ces valeurs seront maintenant utilises pour


ajuster les poids des neurones 3 et 4.

GIND5439 Gabriel Cormier, Universit de Moncton

52

Exemple: propagation arrire

On calcule les variations des poids pour les


neurones 3 et 4:
w13
w23
3
w14

= x1 3 = (0.1)(1)(0.0381) = 0.0038
= x2 3 = (0.1)(1)(0.0381) = 0.0038
= ( 1) 3 = (0.1)( 1)(0.0381) = 0.0038
= x1 4 = (0.1)(1)( 0.0147 ) = 0.0015

w24 = x2 4 = (0.1)(1)( 0.0147 ) = 0.0015


4 = ( 1) 4 = (0.1)( 1)( 0.0147 ) = 0.0015
GIND5439 Gabriel Cormier, Universit de Moncton

53

Exemple: propagation

La dernire tape est de mettre jour les poids:


w13 = w13 + w13 = 0.5 + 0.0038 = 0.5038
w14 = w14 + w14 = 0.9 0.0015 = 0.8985
w23 = w23 + w23 = 0.4 + 0.0038 = 0.4038
w24 = w24 + w24 = 1.0 0.0015 = 0.9985
w35 = w35 + w35 = 1.2 0.0067 = 1.2067
w45 = w45 + w45 = 1.1 0.0112 = 1.0888
3 = 3 + 3 = 0.8 0.0038 = 0.7962

4 = 4 + 4 = 0.1 + 0.0015 = 0.0985


5 = 5 + 5 = 0.3 + 0.0127 = 0.3127

On rpte le processus jusqu ce que la somme


des erreurs au carr soit plus petite que 0.001.

GIND5439 Gabriel Cormier, Universit de Moncton

54

Exemple: propagation arrire

On obtient une solution aprs 224 poch.


GIND5439 Gabriel Cormier, Universit de Moncton

55

Exemple: propagation arrire

Rsultats:

w13 = 4.7621, w14 = 6.3917, w23 = 4.7618,


w24 = 6.3917, w35 = -10.3788, w45 = 9.7691
3 = 7.3061, 4 = 2.8441, 5 = 4.5589

Il a fallu entraner le rseau pour 224


poques (epoch) avec les 4 entres, pour
obtenir la solution.

GIND5439 Gabriel Cormier, Universit de Moncton

56

Exemple: propagation arrire


Entres
x1

x2

Sortie
voulue
yd

Sortie
relle
y5

Erreur

0.0155 -0.0155

0.9849

0.0151

0.9849

0.0151

0.0175 -0.0175

GIND5439 Gabriel Cormier, Universit de Moncton

Somme
des
erreurs
0.0010

57

Overfitting

Le overfitting arrive quand le rseau de


neurones apprend les dtails spcifiques des
entres et non pas leur caractristique gnrale
trouve dans les donnes prsentes et futures.
Deux causes possibles:

Entranement trop long. Solution:

Tester contre un ensemble de donnes diffrentes de temps


en temps.
Arrter quand les rsultats commencent devenir pires.

Trop de nuds cachs

Un nud peut modliser une fonction linaire.


Plusieurs nuds peuvent modliser des fonctions dordre
suprieur, ou plusieurs ensembles dentres.
Trop de nuds vont modliser les donnes trop prs,
empchant donc la gnralisation.

GIND5439 Gabriel Cormier, Universit de Moncton

58

Rcolte de donnes

Les donnes dapprentissages contiennent


un nombre de cas:

Contient des valeurs pour une gamme de


variables dentres et de sorties.

On doit dcider

Combien de variables utiliser


Combien (et quels) de cas rcolter.

GIND5439 Gabriel Cormier, Universit de Moncton

59

Rcolte de donnes

Les rseaux de neurones traitent des


donnes numriques dans une gamme assez
limite.
Donnes manquantes?

On substitue la valeur moyenne des autres


ensembles de donnes (ou une autre statistique).

Donnes non-numriques

On assigne une valeur nominale

GIND5439 Gabriel Cormier, Universit de Moncton

60

Rcolte de donnes

On choisit des variables quon pense tre critiques.


Des variables numriques et nominales peuvent tre traites.
On convertit dautres variables en lune de ces formes.
Des centaines ou milles cas sont ncessaires; plus il y a de
variables, plus il faut de cas.
Des cas ayant des donnes manquantes peuvent tre utiliss, si
ncessaire, mais des donnes aberrantes peuvent causer des
problmes.
Enlever les donnes aberrantes si possible.
Si on a assez de donnes, liminer les cas ayant des donnes
manquantes.
Si la quantit de donnes disponibles est petite, on peut
considrer lutilisation densemble.

GIND5439 Gabriel Cormier, Universit de Moncton

61

Rseau Hopfield

Les rseaux de neurones furent dvelopps par


analogie au cerveau humain.
La mmoire du cerveau, cependant, fonctionne par
association.
Par exemple, on peut reconnatre des visages
familiers dans un environnement nouveau dans
100-200ms. On peut aussi se souvenir dune
exprience sensorielle, incluant des sons et scnes,
quand on entend que quelques notes de musique.
Le cerveau associe rgulirement une chose une
autre.

GIND5439 Gabriel Cormier, Universit de Moncton

62

Rseau Hopfield

Les rseaux de neurones niveaux multiples


entrans par lalgorithme de propagation
arrire sont utiliss dans des problmes de
reconnaissance de formes.
Pour simuler le comportement de la mmoire
humaine, on a besoin dun diffrent type de
rseau: un rseau de neurones rcurrent.
Un rseau de neurones rcurrent a des
boucles de feedback entre les sorties et les
entres.

GIND5439 Gabriel Cormier, Universit de Moncton

63

x1

y1

x2

y2

xi

yi

xn

yn

GIND5439 Gabriel Cormier, Universit de Moncton

Sorties

Entres

Rseau Hopfield 1 niveau, n neurones

64

Rseau Hopfield

Utilise des neurones du type McCulloch-Pitts


avec une fonction dactivation sign.

Si lentre pondre < 0 alors la sortie = -1


Si lentre pondre > 0 alors la sortie = +1
Si lentre pondre = 0 alors la sortie ne change
pas.
Y sign

+ 1 si X > 0

= 1 si X < 0
Y si X = 0

GIND5439 Gabriel Cormier, Universit de Moncton

65

Rseau Hopfield

Ltat prsent du rseau Hopfield est


dtermin par la sortie prsente de tous les
neurones, y1(p), y2(p), , yn(p).
Donc, pour un rseau un seul niveau ayant
n neurones, ltat peut tre dfini par un
vecteur dtat:
y
1
y
2

Y =
M

y n

GIND5439 Gabriel Cormier, Universit de Moncton

66

Rseau Hopfield

Dans un rseau Hopfield, les poids entre les


neurones sont typiquement reprsents sous forme
de matrice:
W=

T
Y
Y
m m M I

m=1

M est le nombre dtats tre mmoriss par le rseau


YM est le vecteur binaire de dimension n
I est la matrice identit de dimension n x n
Lindice T veut dire la transpose

GIND5439 Gabriel Cormier, Universit de Moncton

67

tats possibles, rseau Hopfield


y2
(1, 1, 1)

(1, 1, 1)

(1, 1, 1)

(1, 1, 1)

y1
0
(1, 1, 1)

(1, 1, 1)

(1, 1, 1)

(1, 1, 1)

y3
GIND5439 Gabriel Cormier, Universit de Moncton

68

Utilit des rseaux de neurones

Analyse des investissements

Analyse de signature

Pour prdire le mouvement des actions (stocks),


monnaies, etc partir de donnes prcdentes.
Comme mcanisme pour comparer des
signatures sur des chques.

Prvision de la quantit de pluie

Permet aux fermiers doptimiser la rcolte;


prvisions de scheresse, niveau deau dans des
rivires.

GIND5439 Gabriel Cormier, Universit de Moncton

69

Utilisation des rseaux de neurones

Industrie

Prvision de la demande des consommateurs;


permet de rduire lentreposage.

Surveillance

Surveillance des dfaillances dans les moteurs


davions.

GIND5439 Gabriel Cormier, Universit de Moncton

70

Utilisation des rseaux de neurones

Quand est-il utile dutiliser un rseau de neurones?

Un des avantages principaux des rseaux de neurones par


rapport aux autres systmes (rgles, logique floue, etc.) est
quils ncessitent moins dinput des experts.

Dans certains cas il peut tre trs difficile de parler un


expert; ex: on ne peut pas passer 2 heures parler avec un
expert en changes dobligations ; a coterait des millions de
dollars son employeur.

Un bnfice des rseaux de neurones est quils trouvent


souvent des relations entre les donnes sans avoir besoin
dinput dun expert, si on a des donnes appropries.

GIND5439 Gabriel Cormier, Universit de Moncton

71

Utilisation des rseaux de neurones

Les rseaux de neurones sont excellents lorsquil


sagit de modliser des donnes incompltes ou
contenant du bruit, comme cest souvent le cas avec
des donnes relles. Les rseaux de neurones
traitent ce sorte de problmes souvent mieux que
les mthodes statistiques.
Cependant, ceci ne veut pas dire quil suffit juste de
ramasser de linformation et entraner le rseau pour
obtenir de bons rsultats.
Il faut sassurer que linformation rcolte est bien
inspecte et prsente de faon convenable au
rseau.

GIND5439 Gabriel Cormier, Universit de Moncton

72

Utilisation des rseaux de neurones

Les rseaux de neurones sont excellents pour


trouver des relations subtiles entre les donnes, ce
qui peut tre un avantage et un dsavantage.

Ex: une quipe de recherche voulait entraner un rseau de


neurones dtecter des chars dassaut dans des photos.
Le rseau devait dtecter sil y avait des chars ou non dans
des photos. Des photos furent prises avec des chars et
sans des chars, puis converties en format lisible par le
rseau de neurones. Le rseau fut entran, et fonctionnait
merveille pour distinguer entre les deux groupes de
photos. Cependant, le rseau donnait de trs mauvais
rsultats quand de nouvelles photos taient prsentes.

GIND5439 Gabriel Cormier, Universit de Moncton

73

Utilisation des rseaux de neurones

Finalement, les chercheurs se sont aperus que


les photos avec des chars furent prisent quand il
faisait soleil, tandis que les photos sans chars
furent prisent quand le temps tait nuageux. Le
rseau avait apprit distinguer entre des jours
ensoleills ou nuageux, et non entre des photos
avec chars ou pas.

GIND5439 Gabriel Cormier, Universit de Moncton

74

Exemple dapplication

On fera ici un exemple dutilisation des


rseaux de neurones pour distinguer des
formes, plus spcifiquement des chiffres.
On utilisera la bote outil Neural Networks
de Matlab.

GIND5439 Gabriel Cormier, Universit de Moncton

75

Exemple dapplication

On doit reconnatre 3 chiffres (1, 2 et 3):

GIND5439 Gabriel Cormier, Universit de Moncton

76

Exemple dapplication

Il faut rendre ces donnes disponibles de


faon informatique: on va faire une
pixelisation des images:

GIND5439 Gabriel Cormier, Universit de Moncton

77

Exemple dapplication

On a choisit une grille 54 pour pixeliser les


images. On aurait pu choisir quelque chose
avec plus de pixels, mais ceci augmente le
nombre dentres.
Avec cette grille 54, comme entre, un point
noir reprsentera un 1, et un point jaune
reprsentera un 0. On a donc 20 entres au
rseau de neurones.

GIND5439 Gabriel Cormier, Universit de Moncton

78

Exemple dapplication

Lentre sera donc compose de 20 bits ,


de valeur 0 ou 1.
Exemple, entre 1:
input1 = [ 0; 0; 1; 0; 0; 0; 1; 0; 0; 0; 1; 0; 0; 0; 1; 0; 0; 0; 1; 0;];

Bit 1
1

10 11 12

13 14 15 16

Les pixels 3, 7, 11, 15


et 19 ont la valeur 1.
Les autres ont la
valeur 0.

17 18 19 20
GIND5439 Gabriel Cormier, Universit de Moncton

79

Exemple dapplication

On refait le processus de pixelisation pour les deux


autres entres:

input2 = [ 1; 1; 1; 1; 0; 0; 0; 1; 1; 1; 1; 1; 1; 0; 0; 0; 1; 1; 1; 1;];
input3 = [ 1; 1; 1; 1; 0; 0; 0; 1; 1; 1; 1; 1; 0; 0; 0; 1; 1; 1; 1; 1;];

Il faut maintenant crer le rseau de neurones:

net = newff([0 1; 0 1; 0 1; 0 1; 0 1; 0 1; 0 1; 0 1; 0 1; 0 1; 0 1; 0 1; 0 1; 0
1; 0 1; 0 1; 0 1; 0 1; 0 1; 0 1],[5 2],{'logsig','logsig'});

On cre un rseau deux niveaux, o les entres varient


entre 0 et 1. Le premier niveau a 5 neurones, le deuxime
niveau en a 2 (2 sorties). La fonction dactivation utilise
est logsig .

GIND5439 Gabriel Cormier, Universit de Moncton

80

Exemple dapplication

Pourquoi y a-til 2 sorties?

On va coder la sortie de faon binaire:

00 reprsente un 0 (le rseau dtecte un 0 )


01 reprsente un 1 (le rseau dtecte un 1 )
10 reprsente un 2 (le rseau dtecte un 2 )
11 reprsente un 3 (le rseau dtecte un 3 )

On aura aussi pu utiliser un autre codage la


sortie:

000 reprsente 0
001 reprsente 1
010 reprsente 2
100 reprsente 3

GIND5439 Gabriel Cormier, Universit de Moncton

81

Exemple dapplication

On spcifie quelques paramtres:

net.trainParam.goal = 1e-10;
net.trainParam.epochs = 200;
Soit le but (somme des erreurs = 1e-10) et le
nombre maximal dpoques: 200.

On entrane maintenant le rseau:

input = [input1 input2 input3];


target = [1 0 1; 0 1 1];
net = train(net,input,target);

GIND5439 Gabriel Cormier, Universit de Moncton

82

Exemple dapplication
Performance is 2.96561e-011, Goal is 1e-010

10

-2

Training-Blue Goal-Black

10

-4

10

-6

10

-8

10

-10

10

10
12
21 Epochs

14

16

18

20

Entranement du rseau de neurones.


GIND5439 Gabriel Cormier, Universit de Moncton

83

Exemple dapplication

On vrifie la sortie relle avec les entres


dentranement:

output = sim(net,input)

On obtient:

output =
1.0000
0.0000

0.0000
1.0000

1.0000
1.0000

01 veut dire que le


rseau dtecte un 1

GIND5439 Gabriel Cormier, Universit de Moncton

84

Exemple dapplication

On vrifie maintenant la performance du


rseau avec des entres un peu diffrentes:

GIND5439 Gabriel Cormier, Universit de Moncton

85

Exemple dapplication

On obtient comme rsultat:

test1 = [ 0; 0; 1; 0; 0; 1; 1; 0; 0; 0; 1; 0; 0; 0; 1; 0; 0; 1; 1; 1;];
output1 = sim(net,test1)
test2 = [ 1; 1; 1; 0; 0; 0; 0; 1; 0; 1; 1; 0; 1; 0; 0; 0; 1; 1; 1; 1;];
output2 = sim(net,test2)
test3 = [ 1; 1; 1; 1; 0; 0; 0; 1; 0; 1; 1; 0; 0; 0; 0; 1; 1; 1; 1; 0;];
output3 = sim(net,test3)

Rsultats:

output1 = 0.0002
output2 = 1.0000
output3 = 0.9999

1.0000 cest comme un 1


0.0001 cest comme un 2
1.0000 cest comme un 3

GIND5439 Gabriel Cormier, Universit de Moncton

86

Exemple dapplication

Si on entrane le rseau avec dautres


donnes, est-ce que la performance sera la
mme?

GIND5439 Gabriel Cormier, Universit de Moncton

87

Exemple dapplication

Dans ce cas-ci, on obtient la mme performance:

output1 =
1.0000
0.0016
output2 =
0.0000
1.0000
output3 =
1.0000
1.0000

GIND5439 Gabriel Cormier, Universit de Moncton

88