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
IFT615 2
Sujets couvertsSujets couverts
• Réseau de neurones artificiel
• Quelques architectures
• Quelques algorithmes d’apprentissage
• Exemples d’applications
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
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
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
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
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.
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
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.
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
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
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)
IFT615 13
RNA à plusieurs couchesRNA à plusieurs couches
oi=f(neti) =1
1+e-λneti
n
j=1neti = Σ wjixji
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))
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
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.
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
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.
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
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.
IFT615 21
Exemple 2Exemple 2
NEAT Coevolution Robots
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
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.
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.
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
IFT615 26
ApplicationsApplications
• Problèmes de classification :
– Reconnaissance de visages
– Reconnaissance vocale
– Reconnaissance de caractèrs
• Beaucoup d’autres applications
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.