88
GIND5439 Systèmes Intelligents Chapitre 6: Réseaux de neurones.

GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

Embed Size (px)

Citation preview

Page 1: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

GIND5439 Systèmes Intelligents

Chapitre 6: Réseaux de neurones.

Page 2: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

2GIND5439 – Gabriel Cormier, Université de Moncton

Apprentissage machine

Comprend des mécanismes adaptifs qui permettent à un ordinateur:

D’apprendre par expérienceD’apprendre par exemplesD’apprendre par analogie

Les capacités d’apprentissage peuvent améliorer la performance d’un système intelligent au fil du temps.Les deux approches populaires sont:

Réseaux de neuronesAlgorithme génétique

Page 3: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

3GIND5439 – Gabriel Cormier, Université de Moncton

Qu’est-ce qu’un réseau de neurones?

C’est un modèle de raisonnement basé sur le cerveau humain.Le cerveau est constitué d’un ensemble de cellules nerveuses, ou unités de traitement d’information, appelés neurones.Cerveau

Près de 10 milliards de neurones60 trillions de connexions, des synapses, entre eux.

Un neurone est constitué de:Un corps de cellule, le somaUn nombre de fibres appelés dendritesUn fibre long appelé axone.

Page 4: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

4GIND5439 – Gabriel Cormier, Université de Moncton

Réseau de neurones biologique

Soma Soma

Synapse

Synapse

Dendrites

Axon

Synapse

DendritesAxon

Page 5: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

5GIND5439 – Gabriel Cormier, Université de Moncton

Qu’est-ce qu’un réseau de neurones?

C’est un ensemble de processeurs très simples, appelés neurones.Les neurones sont branchés ensemble à l’aide de liens pondérés qui passent des signaux d’un 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 même signal.Les branches de sortie se terminent à l’entrée de d’autres neurones dans le réseau.

Page 6: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

6GIND5439 – Gabriel Cormier, Université de Moncton

Qu’est-ce qu’un réseau de neurones?

Chaque neurone reçoit un nombre de signaux d’entrée xi à travers ses connexions.Un ensemble de poids réels wi sont utilisés pour décrire la force de la connexion.Le niveau d’activation Σxiwi détermine la force cumulative des signaux d’entrée.Une fonction seuil f calcule l’état final de la sortie. Ça simule le comportement ON/OFF de neurones réels.

Page 7: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

7GIND5439 – Gabriel Cormier, Université de Moncton

Qu’est-ce qu’un réseau 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 sépare en un nombre de branches

Le même signal se propage sur chaque branche.Les branches de sortie se terminent aux connexions d’entrée de d’autre neurones.

Page 8: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

8GIND5439 – Gabriel Cormier, Université de Moncton

Qu’est-ce qu’un réseau de neurones?

Chaque réseau est aussi caractérisé par des propriétés globales tel que:

Topologie du réseauAlgorithme d’apprentissageTechnique d’encodage

Page 9: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

9GIND5439 – Gabriel Cormier, Université de Moncton

Architecture typique d’un réseau de neurones.

Niveau d’entrée Niveau de sortie

Niveau intermédiaire

Sign

aux

d’e

ntré

e

Sign

aux

de

sort

ie

Page 10: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

10GIND5439 – Gabriel Cormier, Université de Moncton

Équivalences

Réseau de neurones biologique

Réseau de neurones artificiel

Soma Neurone

Dendrite Entrée

Axon Sortie

Synapse Poids

Page 11: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

11GIND5439 – Gabriel Cormier, Université de Moncton

Neurone McCulloch-Pitts

Les entrées sont excitatrices (+1) ou inhibitrices (-1)La fonction d’activation multiplie chaque entrée par son poids correspondant et fait la somme du résultat.Si le résultat est > 0, la sortie du neurone est 1; sinon -1.On a démontré que ces neurones peuvent être construites pour calculer n’importe quelle fonction logique.On a démontré qu’un système de ces neurones peut produire un modèle informatique complet.

Page 12: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

12GIND5439 – Gabriel Cormier, Université de Moncton

Le neurone

Entrées Poids Sorties

Neurone Y

x1

x2

xn

Y

Y

Y

w2

w1

wn

Page 13: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

13GIND5439 – Gabriel Cormier, Université de Moncton

Calcul de la sortie

Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ.Si l’entrée nette est moins que la valeur seuil, la sortie du neurone est -1.Si l’entrée nette est plus grande que la valeur seuil, le neurone est activé et la sortie est +1.La fonction d’activation (ou fonction de transfert) du neurone est:

Ce type de fonction est la fonction sign.

∑=

=n

iiiwxX

1 ⎩⎨⎧

θ<−θ≥+

=XX

Y si ,1 si ,1

Page 14: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

14GIND5439 – Gabriel Cormier, Université de Moncton

Fonctions d’activation

Step function Sign function

+1

-10

+1

-10X

Y

X

Y+1

-10 X

Y

Sigmoid function

+1

-10 X

Y

Linear function

⎩⎨⎧

<≥

=0 if ,00 if ,1

XX

Ystep⎩⎨⎧

<−≥+

=0 if ,10 if ,1

XX

YsignX

sigmoid

eY

−+=

1

1 XYlinear=

Page 15: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

15GIND5439 – Gabriel Cormier, Université de Moncton

Apprentissage d’un neurone

Est-ce qu’un seul neurone peut apprendre une tâche?

Le Perceptron1958, Frank RosenblattBasé sur le modèle de McCulloch-PittsUn algorithme d’apprentissage qui a produit la première procédure pour entraîner un réseau de neurones.

La forme la plus simple d’un réseau de neurones.Est constitué d’un seul neurone avec des poids ajustables et un limiteur brusque: fonction échelon ou sign.

Page 16: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

16GIND5439 – Gabriel Cormier, Université de Moncton

Perceptron à un seul niveau, 2 entrées

Entrées

Seuil

x1

x2

SortieY∑

Limiteurbrusque

w2

w1

Combineurlinéaire

θ

Page 17: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

17GIND5439 – Gabriel Cormier, Université de Moncton

Perceptron

La somme pondérée des entrées est appliquée au limiteur brusque qui produit une sortie de +1 si l’entrée est positive et -1 si l’entrée est négative.Le but est de classifier les entrées, les stimuli externes x1, x2, …, xn, en l’une de deux classes A1 et A2.

Page 18: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

18GIND5439 – Gabriel Cormier, Université de Moncton

Perceptron

Comment le perceptron apprend-t-il sa tâche de classification?

On utilise une forme d’apprentissage supervisé.De faibles ajustements sont fait aux poids pour réduire la différence entre la sortie réelle et la sortie désirée.Les poids initiaux sont assignés de façon aléatoire, typiquement entre -0.5 et +0.5.Après un essai pour résoudre le problème, un « enseignant » donne le résultat correct.Les poids sont ensuite modifiés pour réduire l’erreur.

Page 19: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

19GIND5439 – Gabriel Cormier, Université de Moncton

Apprentissage du perceptron

Si, à une itération p, la sortie réelle est Y(p) et la sortie voulue est Yd(p), alors l’erreur est:

L’itération p représente le pième exemple d’entraînement présenté au perceptron.Si l’erreur e(p) est positive, il faut augmenter la sortie Y(p) du perceptron; si l’erreur est négative, il faut diminuer la sortie.

( ) ( ) ( ) K3,2,1où =−= ppYpYpe d

Page 20: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

20GIND5439 – Gabriel Cormier, Université de Moncton

Règle d’apprentissage du perceptron

)()()()1( pepxpwpw iii ⋅⋅+=+ α

Où p = 1, 2, 3, …

α est le taux d’apprentissage, 0 < α < 1

En utilisant cette règle, on peut construire un algorithme d’apprentissage pour des tâches de classification.

Page 21: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

21GIND5439 – Gabriel Cormier, Université de Moncton

Algorithme d’apprentissage

Étape 1: initialisationOn crée les poids initiaux w1, w2, …, wn et le seuil θ à des valeurs aléatoires dans l’intervalle [-0.5, 0.5].

Rappel: Si l’erreur e(p) est positive, il faut augmenter la sortie Y(p) du perceptron; si l’erreur est négative, il faut diminuer la sortie.

Page 22: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

22GIND5439 – Gabriel Cormier, Université de Moncton

Algorithme d’apprentissage

Étape 2: activationOn active le perceptron en y appliquant les entrées x1(p), x2(p), …, xn(p), et la sortie voulue Yd(p). On calcule la sortie réelle à l’itération p = 1.

où n est le nombre d’entrées du perceptron, et step est une fonction d’activation échelon.

⎥⎥⎦

⎢⎢⎣

⎡θ−= ∑

=

n

iii pwpxsteppY

1)( )()(

Page 23: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

23GIND5439 – Gabriel Cormier, Université de Moncton

Algorithme d’apprentissage

Étape 3: Mise à jour du poidsOn met à jour le poids du perceptron:

où ∆wi est la correction au poids à l’itération p.La correction au poids est:

Étape 4: Prochaine itération (p = p + 1), on retourne à l’étape 2, et on continue jusqu’à ce qu’on converge.

)()()1( pwpwpw iii ∆+=+

)()()( pepxpw ii ⋅⋅=∆ α

Page 24: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

24GIND5439 – Gabriel Cormier, Université de Moncton

Est-ce qu’un perceptron peut réaliser les opérations logiques de base?

Entrée x1

Entrée x2

ANDx1 ∩ x2

ORx1 ∪ x2

XORx1 ⊕ x2

0 0 0 0 0

0 1 0 1 1

1 0 0 1 1

1 1 1 1 0

Page 25: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

25GIND5439 – Gabriel Cormier, Université de Moncton

Apprentissage du perceptron: ANDEntrées Poids initial Poids finalÉpoch

x1 x2 w1 w2 w1 w2

1 0011

0101

0001

0.30.30.30.2

-0.1-0.1-0.1-0.1

0010

00-11

0.30.30.20.3

-0.1-0.1-0.10.0

2 0011

0101

0001

0.30.30.30.2

0.00.00.00.0

0011

00-10

0.30.30.20.2

0.00.00.00.0

3 0011

0101

0001

0.20.20.20.1

0.00.00.00.0

0010

00-11

0.20.20.10.2

0.00.00.00.1

4 0011

0101

0001

0.20.20.20.1

0.10.10.10.1

0011

00-10

0.20.20.10.1

0.10.10.10.1

5 0011

0101

0001

0.10.10.10.1

0.10.10.10.1

0001

0000

0.10.10.10.1

0.10.10.10.1

Sortie réelle Y

ErreurSortie voulue Yd

Seuil: θ = 0.2; Taux d’apprentissage: α = 0.1

Page 26: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

26GIND5439 – Gabriel Cormier, Université de Moncton

Représentation des opérations de base

x1

x2

1

(a) AND (x1 ∩ x2)

1

x1

x2

1

1

(b) OR (x1 ∪ x2)

x1

x2

1

1

(c) Exclusive -OR(x1 ⊕ x2)

00 0

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

Page 27: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

27GIND5439 – Gabriel Cormier, Université de Moncton

Pourquoi?

Ça provient directement de l’équation

La sortie Y est 1 seulement si la somme pondérée totale X est plus grande ou égale à la valeur seuil θ.L’espace d’entrée doit être divisé en deux le long d’une frontière définie par X = θ.

⎩⎨⎧

θ<−θ≥+

=XX

Y si ,1 si ,1

∑=

=n

iiiwxX

1

Page 28: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

28GIND5439 – Gabriel Cormier, Université de Moncton

Fonctions d’activation

Est-ce qu’une fonction sigmoïde ou linéaire permettrait de réaliser XOR?

Un perceptron à un seul niveau fait des décisions de la même façon peu importe la fonction d’activation.Minsky et Papert (1969) ont démontré que le perceptron de Rosenblatt ne peut pas faire des généralisations globales basé sur des exemples locaux.

Page 29: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

29GIND5439 – Gabriel Cormier, Université de Moncton

Réseaux de neurones multi-niveau

Un perceptron à plusieurs niveaux est un réseau à réaction directe ayant un ou plusieurs niveaux cachés.Le réseau est constitué de:

Un niveau d’entréeAu moins 1 niveau intermédiaire ou caché de neurones Un niveau de sortie

Les entrées se propagent vers l’avant (la sortie) niveau par niveau.

Page 30: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

30GIND5439 – Gabriel Cormier, Université de Moncton

Réseau de neurones à 2 niveaux

Page 31: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

31GIND5439 – Gabriel Cormier, Université de Moncton

Niveau intermédiaire

Que cache le niveau intermédiaire?Les neurones dans le niveau intermédiaire

Ne peuvent pas être observés à partir du comportement entrée/sortie du réseau.Les poids des neurones intermédiaires représentent des entités cachées.Les entités sont utilisés dans le niveau de sortie pour déterminer la sortie.

Page 32: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

32GIND5439 – Gabriel Cormier, Université de Moncton

Apprentissage dans réseaux multi-niveau

Propagation arrière (Bryson et Ho, 1969)Un ensemble d’entrées est présenté au réseau.Le réseau calcule les sorties, et s’il y a une erreur (une différence entre la sortie réelle et la sortie voulue), les poids sont ajustés pour réduire cette erreur.

Page 33: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

33GIND5439 – Gabriel Cormier, Université de Moncton

Apprentissage dans des réseaux multi-niveau

L’apprentissage est déterminé par:Connexions entre les neurones (architecture)Les fonctions d’activation utilisées par les neurones.L’algorithme d’apprentissage qui spécifie la procédure pour ajuster les poids.

Page 34: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

34GIND5439 – Gabriel Cormier, Université de Moncton

Apprentissage dans réseaux multi-niveau

Dans un réseau de neurones à propagation arrière, l’algorithme d’apprentissage a deux phases:

Un ensemble d’entrées d’entraînement est présenté au niveau d’entrée.Le réseau propage ces entrées niveau par niveau jusqu’à ce qu’une (ou des) sortie soit générée.Si la sortie est différente de la sortie voulue, une erreur est calculée et puis propagée dans le réseau de la sortie vers l’entrée.Les poids sont ajustés au fur et à mesure que l’erreur se propage.

Page 35: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

35GIND5439 – Gabriel Cormier, Université de Moncton

Réseaux à 3 niveaux, propagation arrière

Niveau d’entrée

xi

x1

x2

xn

1

2

i

n

Niveau de sortie

1

2

k

l

yk

y1

y2

yl

Entrées

Erreurs

wjk

Niveau caché

wij

1

2

j

m

Page 36: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

36GIND5439 – Gabriel Cormier, Université de Moncton

Apprentissage dans réseaux multi-niveau

On calcule le poids net comme avant:

On passe ensuite cette valeur à la fonction d’activation: fonction sigmoïde.

θ−= ∑=

n

iiiwxX

1

Xsigmoïde

eY −+

=1

1

Page 37: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

37GIND5439 – Gabriel Cormier, Université de Moncton

Apprentissage dans réseaux multi-niveau

1. Présenter les entrées et déterminer les valeurs des niveaux cachés et du niveau de sortie.

2. Comparer les résultats du niveau de sortie aux résultats corrects.

3. Modifier les poids du niveau d’entrée et des niveaux cachés pour réduire l’erreur.

4. La règle utilisée pour modifier les poids se nomme règle delta, parce qu’elle change chaque poids selon sa pondération par rapport à la sortie.

1. Le delta, ou dérivée partielle de la sortie par rapport au poids.

Page 38: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

38GIND5439 – Gabriel Cormier, Université de Moncton

Apprentissage dans réseaux multi-niveau

La plupart des réseaux de neurones multi-niveaufonctionnent avec des entrées qui varient de 0 à 1.Les poids varient à chaque itération d’une fraction du changement nécessaire pour corriger l’erreur à la sortie. Cette fraction, α, est le taux d’apprentissage.

Si le taux d’apprentissage est trop élevé, l’algorithme prend des grands pas et risque de manquer le point d’erreur minimale, ou même osciller autour du minimum.Des petits pas, qui viennent d’un taux d’apprentissage petit, trouveront éventuellement un minimum, mais risquent de prendre beaucoup de temps.

Page 39: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

39GIND5439 – Gabriel Cormier, Université de Moncton

Paramètres d’apprentissageTaux d’apprentissage

Contrôle l’amplitude des pas utilisés pour ajuster les poids. Dans certains réseaux de neurones, diminue avec le nombre d’itérations.

MomentumPropagation arrièreLissage de l’effet des ajustements aux poids au fil des itérations.

Tolérance (erreur)Propagation arrièreSpécifie la différence acceptable entre la sortie réelle et la sortie voulue.

Fonction d’activationLa fonction utilisée à chaque neurone pour générer la sortie à partir des entrées pondérés. La fonction la plus commune est la fonction sigmoïde.

Page 40: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

40GIND5439 – Gabriel Cormier, Université de Moncton

Algorithme d’apprentissage, propagation arrière

Étape 1: InitialisationOn règle tous les poids et seuils du réseau à une valeur aléatoire dans l’intervalle:

Où Fi est le nombre total d’entrées au neurone idans le réseau. L’initialisation des poids n est faite neurone par neurone.

⎟⎟⎠

⎞⎜⎜⎝

⎛+−

ii FF4.2 ,4.2

Page 41: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

41GIND5439 – Gabriel Cormier, Université de Moncton

Algorithme d’apprentissage, propagation arrière

Étape 2: ActivationOn active le réseau de neurone à propagation arrière en y appliquant les entrées x1(p), x2(p), …, xn(p), et les sorties voulues yd1(p), yd2(p), …, ydn(p),

On calcule les sorties des neurones dans les niveaux cachés

Où n est le nombre d’entrées au neurone j dans le niveau caché, et sigmoid est la fonction sigmoïde.

⎥⎦

⎤⎢⎣

⎡θ−⋅= ∑

=j

n

iijij pwpxsigmoidpy

1)()()(

Page 42: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

42GIND5439 – Gabriel Cormier, Université de Moncton

Algorithme d’apprentissage, propagation arrière

Étape 2 (suite)On calcule la sortie des neurones du niveau de sortie:

où m est le nombre d’entrées du neurone k dans le niveau de sortie.

⎥⎥⎦

⎢⎢⎣

⎡θ−⋅= ∑

=k

m

jjkjkk pwpxsigmoidpy

1)()()(

Page 43: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

43GIND5439 – Gabriel Cormier, Université de Moncton

Algorithme d’apprentissage, propagation arrière

Étape 3: PoidsOn ajuste les poids dans le réseau à propagation arrière qui propage vers l’arrière les erreurs.Calculer le gradient d’erreur pour les neurones du niveau de sortie:

Calculer les corrections aux poids.

Ajuster les poids aux neurones de sortie.

[ ] )()(1)()( pepypyp kkkk ⋅−⋅=δ

)()()( , pypype kkdk −=

)()()( ppypw kjjk δα ⋅⋅=∆

)()()1( pwpwpw jkjkjk ∆+=+

Page 44: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

44GIND5439 – Gabriel Cormier, Université de Moncton

Algorithme d’apprentissage, propagation arrière

Étape 3 (suite)Calculer le gradient d’erreur pour les neurones dans le niveau caché:

Calculer les corrections aux poids:

Ajuster les poids aux neurones cachés:

)()()(1)()(1

][ p wppypyp jk

l

kkjjj ∑

=⋅−⋅= δδ

)()()( ppxpw jiij δα ⋅⋅=∆

)()()1( pwpwpw ijijij ∆+=+

Page 45: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

45GIND5439 – Gabriel Cormier, Université de Moncton

Algorithme d’apprentissage, propagation arrière

Étape 4: ItérationOn augmente l’itération p de 1 (p = p + 1), on retourne à l’étape 2 et on refait le processus jusqu’à ce que le critère d’erreur soit satisfait (ex: erreur plus petite que 0.1%).

Page 46: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

46GIND5439 – Gabriel Cormier, Université de Moncton

Exemple: propagation arrière

On utilise ici un réseau simple à 3 niveaux pour apprendre la fonction XOR:

Entrée 1 Entrée 2 Sortie

0 0 0

0 1 1

1 0 1

1 1 0

C’est l’exemple p.178 – 181 du manuel.

Page 47: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

47GIND5439 – Gabriel Cormier, Université de Moncton

Exemple: propagation arrière-1

1

2

3

4

5

θ3 -1w13x1

x2 w24

w23

w14

w35

w45

-1

θ5

y5

θ4Dans ce réseau, les neurones 1 et 2 du niveau d’entrée n’ont aucun effet et ne font que passer l’entrée au niveau 2.

Page 48: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

48GIND5439 – Gabriel Cormier, Université de Moncton

Exemple: propagation arrière

Les poids initiaux et niveaux seuils sont créés aléatoirement. 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.3On suppose un taux d’apprentissage α = 0.1

On prend ici un exemple d’entraînement oùles deux entrées x1 et x2 sont 1. La sortie voulue yd,5 est donc 0 (fonction XOR).

Page 49: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

49GIND5439 – Gabriel Cormier, Université de Moncton

Exemple: propagation arrière

On calcul maintenant la sortie des neurones 3 et 4 (puisque 1 et 2 n’ont aucun effet):

Et la sortie réelle du neurone 5:

( ) 5250.01

1)( 8.04.015.0132321313 =+

=−+= −×+×−ewxwxsigmoidy θ

( ) 8808.01

1)( 1.00.119.0142421414 =+

=−+= +×+×−ewxwxsigmoidy θ

( ) 5097.01

1)( 3.01.18808.0)2.1(5250.054543535 =+

=−+= −×+−×−ewywysigmoidy θ

Page 50: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

50GIND5439 – Gabriel Cormier, Université de Moncton

Exemple: propagation arrière

L’erreur peut maintenant être calculée:

La prochaine étape est de propager cette erreur vers l’arrière pour modifier les poids et niveaux seuils.

5097.05097.0055, −=−=−= yye d

Page 51: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

51GIND5439 – Gabriel Cormier, Université de Moncton

Exemple: propagation arrière

On calcule en premier le gradient d’erreur δ:

On modifie maintenant les poids et le niveau seuil:

( ) ( )( ) 1274.05097.05097.015097.01 555 −=−−=−= eyyδ

( )( )( )( )( )( )

( ) ( )( )( ) 0127.01274.011.010112.01274.08808.01.00067.01274.05250.01.0

35

5445

5335

−=−−=×−×=∆−=−=××=∆−=−=××=∆

δαθδαδα

ywyw

Page 52: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

52GIND5439 – Gabriel Cormier, Université de Moncton

Exemple: propagation arrière

On calcule maintenant le gradient d’erreur pour les neurones 3 et 4:

Ces valeurs seront maintenant utilisées pour ajuster les poids des neurones 3 et 4.

( ) ( )( )( ) 0381.02.11274.05250.015250.01 355333 =−−−=−= wyy δδ

( ) ( )( )( ) 0147.01.11274.08808.018808.01 455444 −=−−=−= wyy δδ

Page 53: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

53GIND5439 – Gabriel Cormier, Université de Moncton

Exemple: propagation arrière

On calcule les variations des poids pour les neurones 3 et 4:

( )( )( )( )( )( )

( ) ( )( )( )( )( )( )( )( )( )

( ) ( )( )( ) 0015.00147.011.010015.00147.011.00015.00147.011.0

0038.00381.011.010038.00381.011.00038.00381.011.0

44

4224

4114

33

3223

3113

=−−=×−×=∆−=−=××=∆−=−=××=∆−=−=×−×=∆

==××=∆==××=∆

δαθδαδαδαθ

δαδα

xwxw

xwxw

Page 54: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

54GIND5439 – Gabriel Cormier, Université de Moncton

Exemple: propagation

La dernière étape est de mettre à jour les poids:

On répète le processus jusqu’à ce que la somme des erreurs au carré soit plus petite que 0.001.

3127.00127.03.00985.00015.01.0

7962.00038.08.00888.10112.01.1

2067.10067.02.19985.00015.00.14038.00038.04.08985.00015.09.05038.00038.05.0

555

444

333

454545

353535

242424

232323

141414

131313

=+=∆+=−=+−=∆+=

=−=∆+==−=∆+=

−=−−=∆+==−=∆+==+=∆+==−=∆+==+=∆+=

θθθθθθθθθwwwwwwwwwwwwwwwwww

Page 55: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

55GIND5439 – Gabriel Cormier, Université de Moncton

Exemple: propagation arrière

On obtient une solution après 224 époch.

Page 56: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

56GIND5439 – Gabriel Cormier, Université de Moncton

Exemple: propagation arrière

Résultats: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 entraîner le réseau pour 224 époques (epoch) avec les 4 entrées, pour obtenir la solution.

Page 57: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

57GIND5439 – Gabriel Cormier, Université de Moncton

Exemple: propagation arrière

Entrées Sortievoulue

Sortieréelle

Erreur

x1 x2 yd y5 e

0 0 0 0.0155 -0.0155

0 1 1 0.9849 0.0151

1 0 1 0.9849 0.0151

1 1 0 0.0175 -0.0175

0.0010

Somme des

erreurs

Page 58: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

58GIND5439 – Gabriel Cormier, Université de Moncton

Overfitting

Le « overfitting » arrive quand le réseau de neurones apprend les détails spécifiques des entrées et non pas leur caractéristique générale trouvée dans les données présentes et futures.Deux causes possibles:

Entraînement trop long. Solution:Tester contre un ensemble de données différentes de temps en temps.Arrêter quand les résultats commencent à devenir pires.

Trop de nœuds cachésUn nœud peut modéliser une fonction linéaire.Plusieurs nœuds peuvent modéliser des fonctions d’ordre supérieur, ou plusieurs ensembles d’entrées.Trop de nœuds vont modéliser les données trop près, empêchant donc la généralisation.

Page 59: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

59GIND5439 – Gabriel Cormier, Université de Moncton

Récolte de données

Les données d’apprentissages contiennent un nombre de cas:

Contient des valeurs pour une gamme de variables d’entrées et de sorties.

On doit déciderCombien de variables utiliserCombien (et quels) de cas à récolter.

Page 60: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

60GIND5439 – Gabriel Cormier, Université de Moncton

Récolte de données

Les réseaux de neurones traitent des données numériques dans une gamme assez limitée.Données manquantes?

On substitue la valeur moyenne des autres ensembles de données (ou une autre statistique).

Données non-numériquesOn assigne une valeur nominale

Page 61: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

61GIND5439 – Gabriel Cormier, Université de Moncton

Récolte de données

On choisit des variables qu’on pense être critiques.Des variables numériques et nominales peuvent être traitées.

On convertit d’autres variables en l’une de ces formes.Des centaines ou milles cas sont nécessaires; plus il y a de variables, plus il faut de cas.Des cas ayant des données manquantes peuvent être utilisés, si nécessaire, mais des données aberrantes peuvent causer des problèmes.

Enlever les données aberrantes si possible.Si on a assez de données, éliminer les cas ayant des données manquantes.

Si la quantité de données disponibles est petite, on peut considérer l’utilisation d’ensemble.

Page 62: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

62GIND5439 – Gabriel Cormier, Université de Moncton

Réseau Hopfield

Les réseaux de neurones furent développés par analogie au cerveau humain.La mémoire du cerveau, cependant, fonctionne par association.Par exemple, on peut reconnaître des visages familiers dans un environnement nouveau dans 100-200ms. On peut aussi se souvenir d’une expérience sensorielle, incluant des sons et scènes, quand on entend que quelques notes de musique. Le cerveau associe régulièrement une chose à une autre.

Page 63: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

63GIND5439 – Gabriel Cormier, Université de Moncton

Réseau Hopfield

Les réseaux de neurones à niveaux multiples entraînés par l’algorithme de propagation arrière sont utilisés dans des problèmes de reconnaissance de formes.Pour simuler le comportement de la mémoire humaine, on a besoin d’un différent type de réseau: un réseau de neurones récurrent.Un réseau de neurones récurrent a des boucles de feedback entre les sorties et les entrées.

Page 64: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

64GIND5439 – Gabriel Cormier, Université de Moncton

Réseau Hopfield à 1 niveau, n neurones

xi

x1

x2

xn

1

2

i

n

y1

y2

Sor

ties

Ent

rées

yi

yn

Page 65: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

65GIND5439 – Gabriel Cormier, Université de Moncton

Réseau Hopfield

Utilise des neurones du type McCulloch-Pittsavec une fonction d’activation sign.

Si l’entrée pondérée < 0 alors la sortie = -1Si l’entrée pondérée > 0 alors la sortie = +1Si l’entrée pondérée = 0 alors la sortie ne change pas.

⎪⎩

⎪⎨

=<−>+

=00101

XsiYXsiXsi

Y sign

Page 66: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

66GIND5439 – Gabriel Cormier, Université de Moncton

Réseau Hopfield

L’état présent du réseau Hopfield est déterminé par la sortie présente de tous les neurones, y1(p), y2(p), …, yn(p).Donc, pour un réseau à un seul niveau ayant n neurones, l’état peut être défini par un vecteur d’état:

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

=

ny

yy

M 2

1

Y

Page 67: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

67GIND5439 – Gabriel Cormier, Université de Moncton

Réseau Hopfield

Dans un réseau Hopfield, les poids entre les neurones sont typiquement représentés sous forme de matrice:

oùM est le nombre d’états à être mémorisés par le réseauYM est le vecteur binaire de dimension nI est la matrice identité de dimension n x nL’indice T veut dire la transposée

IYYW MM

m

Tmm −= ∑

=1

Page 68: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

68GIND5439 – Gabriel Cormier, Université de Moncton

États possibles, réseau Hopfield

y1

y2

y3(1, −1, 1)(−1, −1, 1)

(−1, −1, −1) (1, −1, −1)

(1, 1, 1)(−1, 1, 1)

(1, 1, −1)(−1, 1, −1)

0

Page 69: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

69GIND5439 – Gabriel Cormier, Université de Moncton

Utilité des réseaux de neurones

Analyse des investissementsPour prédire le mouvement des actions (stocks), monnaies, etc à partir de données précédentes.

Analyse de signatureComme mécanisme pour comparer des signatures sur des chèques.

Prévision de la quantité de pluiePermet aux fermiers d’optimiser la récolte; prévisions de sécheresse, niveau d’eau dans des rivières.

Page 70: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

70GIND5439 – Gabriel Cormier, Université de Moncton

Utilisation des réseaux de neurones

IndustriePrévision de la demande des consommateurs; permet de réduire l’entreposage.

SurveillanceSurveillance des défaillances dans les moteurs d’avions.

Page 71: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

71GIND5439 – Gabriel Cormier, Université de Moncton

Utilisation des réseaux de neurones

Quand est-il utile d’utiliser un réseau de neurones?Un des avantages principaux des réseaux de neurones par rapport aux autres systèmes (règles, logique floue, etc.) est qu’ils nécessitent moins d’input des experts.

Dans certains cas il peut être très difficile de parler à un expert; ex: on ne peut pas passer 2 heures à parler avec un expert en échanges d’obligations ; ça coûterait des millions de dollars à son employeur.

Un bénéfice des réseaux de neurones est qu’ils trouvent souvent des relations entre les données sans avoir besoin d’input d’un expert, si on a des données appropriées.

Page 72: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

72GIND5439 – Gabriel Cormier, Université de Moncton

Utilisation des réseaux de neurones

Les réseaux de neurones sont excellents lorsqu’il s’agit de modéliser des données incomplètes ou contenant du bruit, comme c’est souvent le cas avec des données réelles. Les réseaux de neurones traitent ce sorte de problèmes souvent mieux que les méthodes statistiques.Cependant, ceci ne veut pas dire qu’il suffit juste de ramasser de l’information et entraîner le réseau pour obtenir de bons résultats.Il faut s’assurer que l’information récoltée est bien inspectée et présentée de façon convenable au réseau.

Page 73: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

73GIND5439 – Gabriel Cormier, Université de Moncton

Utilisation des réseaux de neurones

Les réseaux de neurones sont excellents pour trouver des relations subtiles entre les données, ce qui peut être un avantage et un désavantage.

Ex: une équipe de recherche voulait entraîner un réseau de neurones à détecter des chars d’assaut dans des photos. Le réseau devait détecter s’il 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 réseau de neurones. Le réseau fut entraîné, et fonctionnait à merveille pour distinguer entre les deux groupes de photos. Cependant, le réseau donnait de très mauvais résultats quand de nouvelles photos étaient présentées.

Page 74: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

74GIND5439 – Gabriel Cormier, Université de Moncton

Utilisation des réseaux de neurones

Finalement, les chercheurs se sont aperçus 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 réseau avait apprit à distinguer entre des jours ensoleillés ou nuageux, et non entre des photos avec chars ou pas.

Page 75: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

75GIND5439 – Gabriel Cormier, Université de Moncton

Exemple d’application

On fera ici un exemple d’utilisation des réseaux de neurones pour distinguer des formes, plus spécifiquement des chiffres.On utilisera la boîte à outil Neural Networksde Matlab.

Page 76: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

76GIND5439 – Gabriel Cormier, Université de Moncton

Exemple d’application

On doit reconnaître 3 chiffres (1, 2 et 3):

Page 77: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

77GIND5439 – Gabriel Cormier, Université de Moncton

Exemple d’application

Il faut rendre ces données disponibles de façon informatique: on va faire une pixelisation des images:

Page 78: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

78GIND5439 – Gabriel Cormier, Université de Moncton

Exemple d’application

On a choisit une grille 5×4 pour pixeliser les images. On aurait pu choisir quelque chose avec plus de pixels, mais ceci augmente le nombre d’entrées.Avec cette grille 5×4, comme entrée, un point noir représentera un 1, et un point jaune représentera un 0. On a donc 20 entrées au réseau de neurones.

Page 79: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

79GIND5439 – Gabriel Cormier, Université de Moncton

Exemple d’application

L’entrée sera donc composée de 20 « bits », de valeur 0 ou 1.Exemple, entrée 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 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

17 18 19 20

Les pixels 3, 7, 11, 15 et 19 ont la valeur 1. Les autres ont la valeur 0.

Page 80: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

80GIND5439 – Gabriel Cormier, Université de Moncton

Exemple d’application

On refait le processus de pixelisation pour les deux autres entrées:

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 créer le réseau 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 crée un réseau à deux niveaux, où les entrées varient entre 0 et 1. Le premier niveau a 5 neurones, le deuxième niveau en a 2 (2 sorties). La fonction d’activation utilisée est « logsig ».

Page 81: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

81GIND5439 – Gabriel Cormier, Université de Moncton

Exemple d’application

Pourquoi y a-t’il 2 sorties? On va coder la sortie de façon binaire:

00 représente un 0 (le réseau détecte un « 0 »)01 représente un 1 (le réseau détecte un « 1 »)10 représente un 2 (le réseau détecte un « 2 »)11 représente un 3 (le réseau détecte un « 3 »)

On aura aussi pu utiliser un autre codage à la sortie:

000 représente 0001 représente 1010 représente 2100 représente 3

Page 82: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

82GIND5439 – Gabriel Cormier, Université de Moncton

Exemple d’application

On spécifie quelques paramètres:net.trainParam.goal = 1e-10;net.trainParam.epochs = 200;Soit le but (somme des erreurs = 1e-10) et le nombre maximal d’époques: 200.

On entraîne maintenant le réseau:input = [input1 input2 input3];target = [1 0 1; 0 1 1];net = train(net,input,target);

Page 83: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

83GIND5439 – Gabriel Cormier, Université de Moncton

Exemple d’application

0 2 4 6 8 10 12 14 16 18 20

10-10

10-8

10-6

10-4

10-2

100

21 Epochs

Trai

ning

-Blu

e G

oal-B

lack

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

Entraînement du réseau de neurones.

Page 84: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

84GIND5439 – Gabriel Cormier, Université de Moncton

Exemple d’application

On vérifie la sortie réelle avec les entrées d’entraînement:

output = sim(net,input)On obtient:

output =1.0000 0.0000 1.00000.0000 1.0000 1.0000

« 01 » veut dire que le réseau détecte un 1

Page 85: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

85GIND5439 – Gabriel Cormier, Université de Moncton

Exemple d’application

On vérifie maintenant la performance du réseau avec des entrées un peu différentes:

Page 86: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

86GIND5439 – Gabriel Cormier, Université de Moncton

Exemple d’application

On obtient comme résultat: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)

Résultats:output1 = 0.0002 1.0000 “c’est comme un 1” output2 = 1.0000 0.0001 “c’est comme un 2” output3 = 0.9999 1.0000 “c’est comme un 3”

Page 87: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

87GIND5439 – Gabriel Cormier, Université de Moncton

Exemple d’application

Si on entraîne le réseau avec d’autres données, est-ce que la performance sera la même?

Page 88: GIND5439 Systèmes Intelligents - umoncton.ca · Réseaux de neurones ... Le neurone calcul la somme pondérée des entrées et compare le résultat avec la valeur seuil θ

88GIND5439 – Gabriel Cormier, Université de Moncton

Exemple d’application

Dans ce cas-ci, on obtient la même performance:output1 =

1.00000.0016

output2 = 0.00001.0000

output3 =1.00001.0000