IFT 616 Intelligence Artificielle JeanFranois Landry Dpartement dinformatique

  • Slides: 27
Download presentation
IFT 616 Intelligence Artificielle Jean-François Landry Département d’informatique Université de Sherbrooke Réseaux de neurones

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

Sujets couverts • Réseau de neurones artificiel • Quelques architectures • Quelques algorithmes d’apprentissage

Sujets couverts • Réseau de neurones artificiel • Quelques architectures • Quelques algorithmes d’apprentissage • Exemples d’applications IFT 615 2

Réseau de neurones artificiel (RNA) • Un modèle de calcul inspiré du cerveau humain.

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 IFT 615 3

Comment un neurone calcule sa sortie ? [Mc. Culloch-Pitts, 1943] n • net =

Comment un neurone calcule sa sortie ? [Mc. Culloch-Pitts, 1943] n • net = Σ wixi • f(net)= +1 si net ≥ 0, -1 sinon. • C. à-d. : f(net) = sign(net) i=1 IFT 615 4

Comment un neurone calcule sa sortie ? [Mc. Culloch-Pitts, Exemples] xi wi IFT 615

Comment un neurone calcule sa sortie ? [Mc. Culloch-Pitts, Exemples] xi wi IFT 615 xi wi x+y-1 x y x+y-2 1 1 0 -1 -1 0 1 1 -1 0 0 -2 -1 -1 -1 5

Fonction d’activation sigmoïde n x= Σ wixi i=1 f(x) = 1 -λx 1+e f(x)

Fonction d’activation sigmoïde n x= Σ wixi i=1 f(x) = 1 -λx 1+e f(x) = sign(x) IFT 615 6

Comment un RNA apprend ? • Les liens entre les neurones ont des poids

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. IFT 615 7

Est-ce qu’un seul neurone peut apprendre ? • Oui. Perceptron [Rosenblatt, 1958] n net

Est-ce qu’un seul neurone peut apprendre ? • Oui. Perceptron [Rosenblatt, 1958] n net = Σ wixi Paramètres i=1 y=f(net)= sign(net) xi : entrée wi : poids (nombre réel) c : pas(step) d’apprentissage: 0 ≤ c ≤ 1 d : sortie désirée Algorithme d’apprentissage Pour chaque donnée d’entraînement, incrémenter le poids wi par : wi = c(d-y)xi IFT 615 8

Exemple x 1 x 2 d 1. 0 1 c = 0. 2 9.

Exemple x 1 x 2 d 1. 0 1 c = 0. 2 9. 4 6. 4 -1 wi = c (d-y)xi 2. 5 2. 1 1 8. 0 7. 7 -1 0. 5 2. 2 1 7. 9 8. 4 -1 7. 0 -1 2. 8 0. 8 1 1. 2 3. 0 1 7. 8 6. 1 -1 1 n net = Σ wixi i=1 y=f(net)= sign(net) 1. Initialisation : w = [w 1, w 2, w 3] = [. 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 = -. 4 X; 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. 3 x 1 + -1. 1 x 2+10. 9 = 0. IFT 615 9

Exemple x 1 x 2 1. 0 1 9. 4 6. 4 -1 2.

Exemple x 1 x 2 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 -1 2. 8 0. 8 1 1. 2 3. 0 1 7. 8 6. 1 -1 IFT 615 d Après dix itérations 10

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

Un perceptron peut-il apprendre le ET, OU, XOR ? • Oui pour le ET et le OU. • Non pour le Ou-Exclusif (XOR) • Parce qu’un perceptron peut apprendre seulement des données linéairement séparables. x 2 (0, 1) (1, 1) (0, 0) (1, 0) ET IFT 615 x 1 OU XOR 11

Apprentissage d’un perceptron avec une fonction d’activation sigmoïde x 1 i oi : sortie

Apprentissage d’un perceptron avec une fonction d’activation sigmoïde x 1 i 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. xni f(neti) n neti = Σ wjixji j=1 oi=f(neti) = 1 -λneti 1+e 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 IFT 615 12

RNA à plusieurs couches n neti = Σ wjixji j=1 oi=f(neti) = 1 -λneti

RNA à plusieurs couches n neti = Σ wjixji j=1 oi=f(neti) = 1 -λneti 1+e IFT 615 13

Ajustement des poids, fonction signe. Luger. Artificial Intelligence, 4 th Ed. , 2002 n

Ajustement des poids, fonction signe. Luger. Artificial Intelligence, 4 th Ed. , 2002 n neti = Σ wjixji j=1 oi=f(neti) = 1 -λneti 1+e f ’(neti)= λ× f(neti) × (1 -f(neti)) • Neurones dans la couche de sortie : wki = - c(di-Oi)×Oi(1 -Oi)xk • Neurones cachés : wki = - c. Oi(1 -Oi)Σj(-deltaj×wji)xki avec deltaj= c(di-Oi)×Oi(1 -Oi) IFT 615 14

Exemple 1 : RNA pour XOR 1 1 2. 6 -5 -7 7 -11

Exemple 1 : RNA pour XOR 1 1 2. 6 -5 -7 7 -11 -7 -4 Fig. 10. 12 Luger. Artificial Intelligence, 4 th Ed. , 2002 I 1 I 2 O 0 0 0 1 0 1 1 0 IFT 615 Après 1400 itérations, on obtient le vecteur des poids sur la figure. 15

Ajustement des poids, fonction sigmoïde. • L’algorithme est une généralisation de celui du perceptron

Ajustement des poids, fonction 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 745747. IFT 615 16

Exemple 2 • NET TALK : Reconnaissance vocale Fig. 10. 12 Luger. Artificial Intelligence,

Exemple 2 • NET TALK : Reconnaissance vocale Fig. 10. 12 Luger. Artificial Intelligence, 4 th Ed. , 2002 21 phonèmes + 5 accents 26 lettres + espace + 2 caractères de ponctuation Fenêtre de 7 lettres pour tenir compte du contexte IFT 615 17

Apprentissage compétitif (winner-take-all) [Kohonen, 1984] • Dans une couche, il y a un seul

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. IFT 615 18

x 1 x 2 1. 0 1 9. 4 6. 4 -1 2. 5

x 1 x 2 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 -1 2. 8 0. 8 1 1. 2 3. 0 1 7. 8 6. 1 -1 Exemple 1 d Fig. 10. 15 Luger. Artificial Intelligence, 4 th Ed. , 2002 • Nous avons déjà vu un perceptron capable de classifier ces données. • • L’ architecture compétitive (winner-take-all) ci-haut fait la même chose. • IFT 615 L’apprentissage était supervisée: colonne d. Par contre on choisit deux prototypes d’entraînement au départ, correspondant à chacune des classes -1 et +1. 19

x 1 x 2 1. 0 1 9. 4 6. 4 -1 2. 5

x 1 x 2 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 -1 2. 8 0. 8 1 1. 2 3. 0 1 7. 8 6. 1 -1 IFT 615 Exemple 2 d Fig. 10. 17 Luger. • 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). 20

Exemple 2 NEAT Coevolution Robots IFT 615 21

Exemple 2 NEAT Coevolution Robots IFT 615 21

Apprentissage Hebbienne [Hebb, 1949] Luger. Artificial Intelligence, 4 th Ed. , 2002 Conjoncture :

Apprentissage Hebbienne [Hebb, 1949] Luger. Artificial Intelligence, 4 th Ed. , 2002 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ée x 1 i xni • f(neti) yi Étant donné Xi = [x 1 i, . . , xni] et Wi = [w 1 i, . . , wni] : Wi = c*yi*X IFT 615 22

Exemple Simulation simplifiée de l’expérience de Pavlov 1 1 -1 IFT 615 -1 1

Exemple Simulation simplifiée de l’expérience de Pavlov 1 1 -1 IFT 615 -1 1 0 0 0 • c = 0. 2 • Donc W= 0. 2 f(x)*X • Après 13 itérations, on a W=[3. 4, -3. 4, -2. 4] • A cet étape, le réseau répond positivement (+1) au stimulus de conditionnement. 23

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

Ré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. IFT 615 24

Applications • Jeux vidéo: – Natural Motion • Robot apprenant à marcher (Endorphin dans

Applications • 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/3 dsoftware/endorphin 2. 0. php IFT 615 25

Applications • Problèmes de classification : – Reconnaissance de visages – Reconnaissance vocale –

Applications • Problèmes de classification : – Reconnaissance de visages – Reconnaissance vocale – Reconnaissance de caractèrs • Beaucoup d’autres applications IFT 615 26

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

Ré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. IFT 615 27