27
IFT 616 IFT 616 Intelligence Artificielle Intelligence Artificielle Jean-François Landry Département d’informatique Université de Sherbrooke Réseaux de neurones artificiels http://planiart.usherbrooke.ca/~eric/ift615

IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

Embed Size (px)

Citation preview

Page 1: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT 616IFT 616Intelligence ArtificielleIntelligence Artificielle

Jean-François Landry

Département d’informatiqueUniversité de Sherbrooke

Réseaux de neurones artificiels

http://planiart.usherbrooke.ca/~eric/ift615

Page 2: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 2

Sujets couvertsSujets couverts

• Réseau de neurones artificiel

• Quelques architectures

• Quelques algorithmes d’apprentissage

• Exemples d’applications

Page 3: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 3

Réseau de neurones artificiel (RNA)Réseau de neurones artificiel (RNA)

• Un modèle de calcul inspiré du cerveau humain.

• Cerveau humain :

– 10 milliards de neurones

– 60 milliards de connexions (synapses)

– Un synapse peut être inhibant ou excitant.

• RNA :– Un nombre fini de processeurs

élémentaires (neurones).– Liens pondérés passant un signal d’un

neurone vers d’autres.– Plusieurs signaux d’entrée par neurone– Un seul signal de sortie

Cerveau RNA cellule (soma) neurone dendrites entrées synapses poids axon sortie

Page 4: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 4

Comment un neurone calcule sa sortie ?Comment un neurone calcule sa sortie ?

• net = Σ wixi

• f(net)= +1 si net ≥ 0, -1 sinon.

• C.à-d. : f(net) = sign(net)

[McCulloch-Pitts, 1943]

i=1

n

Page 5: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 5

Comment un neurone calcule sa sortie ?Comment un neurone calcule sa sortie ?[McCulloch-Pitts, Exemples]

xi wi xi wi

x y x+y-2 x+y-1

1 1 0 1 1 1

1 0 -1 -1 0 1

0 1 1 -1 0 1

0 0 -2 -1 -1 -1

Page 6: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 6

Fonction d’activation sigmoïdeFonction d’activation sigmoïde

f(x) = sign(x)

i=1

n

x= Σ wixi f(x) = 11+e-λx

Page 7: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 7

Comment un RNA apprend ?Comment un RNA apprend ?

• Les liens entre les neurones ont des poids numériques.

• Un poids reflète la force, l’importance, de l’entrée correspondante.

• La sortie de chaque neurone est fonction de la somme pondérée de ses

entrées.

• Un RNA apprend en ajustant ses poids itérativement jusqu’à ce que les

sorties soient en accord avec les entrées.

Page 8: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 8

Est-ce qu’un seul neurone peut apprendre ?Est-ce qu’un seul neurone peut apprendre ?

Paramètres

xi : entrée

wi : poids (nombre réel)

c : pas(step) d’apprentissage:0 ≤ c ≤1

d : sortie désirée

• Oui.

Perceptron [Rosenblatt, 1958]

y=f(net)= sign(net)

Algorithme d’apprentissage

Pour chaque donnée d’entraînement,

incrémenter le poids wi par :

wi = c(d-y)xi

i=1

nnet = Σ wixi

Page 9: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 9

ExempleExemple

y=f(net)= sign(net)

1

i=1

nnet = Σ wixi

c = 0.2

wi = c (d-y)xi

x1 x2 d

1.0 1.0 1

9.4 6.4 -1

2.5 2.1 1

8.0 7.7 -1

0.5 2.2 1

7.9 8.4 -1

7.0 7.0 -1

2.8 0.8 1

1.2 3.0 1

7.8 6.1 -1

1. Initialisation : w = [w1, w2, w3] = [.75, .5, -.6]

2. f(net) = sign(.75×1+.5×1-.6×1)=sign(.65)=1;

w = 0.2(1-1)X= 0; donc w est inchangé.

3. f(net) = sign(.75×9.4+.5×6.4-.6×1)=sign(9.65)=1;

w = -.4X; donc w = w -.4 [9.4, 6.4, 1] = [-3.01, -2.06, -1]

500. w = [-1.3, -1.1, +10.9].

Équation de la ligne séparant les données : -1.3x1 + -1.1x2+10.9 = 0.

Page 10: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 10

ExempleExemple

x1 x2 d

1.0 1.0 1

9.4 6.4 -1

2.5 2.1 1

8.0 7.7 -1

0.5 2.2 1

7.9 8.4 -1

7.0 7.0 -1

2.8 0.8 1

1.2 3.0 1

7.8 6.1 -1

Après dix itérations

Page 11: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 11

Un perceptron peut-il apprendre le ET, OU, XOR ?Un perceptron peut-il apprendre le ET, OU, XOR ?

• Parce qu’un perceptron peut apprendre seulement des données linéairement séparables.

• Oui pour le ET et le OU.

• Non pour le Ou-Exclusif (XOR)

(0,0)

(0,1) (1,1)

(1,0)x1

x2

ET OU XOR

Page 12: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 12

Apprentissage d’un perceptron avec une Apprentissage d’un perceptron avec une fonction d’activation sigmoïdefonction d’activation sigmoïde

oi : sortie du neurone i

di : sortie désirée pour le neurone i

c : pas d’apprentissage : 0 ≤ c ≤1

wji : ajustement du poids de

l’entrée j au neurone i.

f ’(neti)= λ× f(neti) × (1-f(neti))

Algorithme d’apprentissage

Pour chaque donnée d’entraînement, incrémenter le poids wji par :

wji = c(di-oi)f ’(neti)xji

oi=f(neti) =1

1+e-λneti

n

j=1neti = Σ wjixji

x1i

xni

f(neti)

Page 13: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 13

RNA à plusieurs couchesRNA à plusieurs couches

oi=f(neti) =1

1+e-λneti

n

j=1neti = Σ wjixji

Page 14: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 14

Ajustement des poids, fonction signe.Ajustement des poids, fonction signe.

• Neurones dans la couche de sortie :

wki = - c(di-Oi)×Oi(1-Oi)xk

• Neurones cachés :

wki = - cOi(1-Oi)Σj(-deltaj×wji)xki

avec deltaj= c(di-Oi)×Oi(1-Oi)

Luger. Artificial Intelligence, 4th Ed., 2002

oi=f(neti) =1

1+e-λneti

n

j=1neti = Σ wjixji

f ’(neti)= λ× f(neti) × (1-f(neti))

Page 15: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 15

Exemple 1 : RNA pour XORExemple 1 : RNA pour XOR

1 1

I1 I2 O

0 0 0

1 0 1

0 1 1

1 1 0

Après 1400 itérations, on obtient le vecteur des poids sur la

figure.

2.6

-7

-7

7-5

-11

-4

Fig. 10.12 Luger. Artificial Intelligence, 4th Ed., 2002

Page 16: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 16

Ajustement des poids, fonction Ajustement des poids, fonction sigmoïde.sigmoïde.

• L’algorithme est une généralisation de celui du perceptron pour la fonction sigmoïde, en suivant le même principe que pour le cas de la fonction signe.

• Voir, le manuel de référence (Stuart et Russel), page 745-747.

Page 17: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 17

Exemple 2Exemple 2

• NET TALK : Reconnaissance vocale

26 lettres + espace + 2 caractères de ponctuationFenêtre de 7 lettres pour tenir compte du contexte

Fig. 10.12 Luger. Artificial Intelligence, 4th Ed., 2002

21 phonèmes + 5 accents

Page 18: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 18

Apprentissage compétitif (winner-take-all)Apprentissage compétitif (winner-take-all)[Kohonen, 1984]

• Dans une couche, il y a un seul nœud activé : le noeud gagnant.

• Le nœud gagnant est celui avec la plus petite distance Euclidienne ||X-W||.

• Les vecteur des poids W du nœud gagnant sont mis à jour comme suit :

W = c(X-W).

• L’apprentissage est non supervisée.

Page 19: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 19

Exemple 1Exemple 1

• Nous avons déjà vu un perceptron capable de classifier ces données.

• L’apprentissage était supervisée: colonne d.

• L’ architecture compétitive (winner-take-all) ci-haut fait la même chose.

• Par contre on choisit deux prototypes d’entraînement au départ, correspondant à chacune des classes -1 et +1.

x1 x2 d

1.0 1.0 1

9.4 6.4 -1

2.5 2.1 1

8.0 7.7 -1

0.5 2.2 1

7.9 8.4 -1

7.0 7.0 -1

2.8 0.8 1

1.2 3.0 1

7.8 6.1 -1

Fig. 10.15 Luger. Artificial Intelligence, 4th Ed., 2002

Page 20: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 20

Exemple 2Exemple 2

• Winner-take-all, supervisé.

• On connecte la sortie du winner-take-all à une autre couche (la nouvelle sortie) qu’on va superviser par les entrées « Safe » et « Dangerous ».

• Ce type de réseau est appelé réseau contre-propagation (counterpropagation).

x1 x2 d

1.0 1.0 1

9.4 6.4 -1

2.5 2.1 1

8.0 7.7 -1

0.5 2.2 1

7.9 8.4 -1

7.0 7.0 -1

2.8 0.8 1

1.2 3.0 1

7.8 6.1 -1

Fig. 10.17Luger.

Page 21: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 21

Exemple 2Exemple 2

NEAT Coevolution Robots

Page 22: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 22

Apprentissage HebbienneApprentissage Hebbienne

[Hebb, 1949]

• Étant donné Xi = [x1i, .., xni] et Wi = [w1i, .., wni] :

Wi = c*yi*X

Conjoncture : Deux neurones directement connectés tel que l’un active

(inhibe) l’autre fréquemment, finissent par avoir leur lien renforcée.

Application à l’apprentissage non superviséex1i

xni

f(neti)yi

Luger. Artificial Intelligence, 4th Ed., 2002

Page 23: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 23

ExempleExemple

Simulation simplifiée de l’expérience de Pavlov

1

-1 1 0

0 0

1

-1 1 -1

1 -1

• c = 0.2

• Donc W= 0.2 f(x)*X

• Après 13 itérations, on a W=[3.4, -3.4, 3.4, -2.4, 2.4, -2.4]

• A cet étape, le réseau répond positivement (+1) au stimulus de conditionnement.

Page 24: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 24

Réseaux récurrentsRéseaux récurrents

• Les types de réseaux que nous avons jusqu’ici sont dits non récurrents:

pas de boucles.

• Les réseaux récurrents ont des boucles.

• Cela augmente les possibilités d’apprentissage : par exemple,

l’association de différents concepts.

• Exemple : RNA de Hopfield

– La sortie de chaque nœud est retro-propagée aux autres sauf lui-même.

Page 25: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 25

ApplicationsApplications

• Jeux vidéo:

– Natural Motion

• Robot apprenant à marcher (Endorphin dans ses débuts)

• Endorphin : http://www.naturalmotion.com/

• R N et algorithmes génétiques dans Endorphin :

– http://www.mega-tex.nl/3dsoftware/endorphin2.0.php

Page 26: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 26

ApplicationsApplications

• Problèmes de classification :

– Reconnaissance de visages

– Reconnaissance vocale

– Reconnaissance de caractèrs

• Beaucoup d’autres applications

Page 27: IFT 616 Intelligence Artificielle Jean-François Landry Département dinformatique Université de Sherbrooke Réseaux de neurones artificiels eric/ift615

IFT615 27

RéférencesRéférences

• Le contenu de cette leçon est tiré en grande partie du Chapitre 10 du

livre:

– G. F. Lugel Artificial Intelligence : Structures and Strategies for

Complex Problem Solving. Fourth Edition. Addison-Wesley,

2002.

• Le manuel de référence du cours se limite aux structures de réseaux

« feed-forward » (non récurrents).:

– Stuart Russel & Peter Norvig. Artificial Intelligence: A

Modern Approach. Second Edition. Prentice Hall, 2002.