IFT 616 Intelligence Artificielle Jean-François Landry Département d’informatiq
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/ift615 IFT615 2 Sujets couverts • Réseau de neurones artificiel • Quelques architectures • Quelques algorithmes d’apprentissage • Exemples d’applications IFT615 3 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 ? • 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 ? [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ïde f(x) = sign(x) i=1 n x= Σ wixi f(x) = 1 1+e-λx IFT615 7 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 ? 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 n net = Σ wixi IFT615 9 Exemple y=f(net)= sign(net) 1 i=1 n net = Σ 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 Exemple 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 ? • 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 fonction 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=1 neti = Σ wjixji x1i xni f(neti) IFT615 13 RNA à plusieurs couches oi=f(neti) = 1 1+e-λneti n j=1 neti = Σ wjixji IFT615 14 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=1 neti = Σ wjixji f ’(neti)= λ× f(neti) × (1-f(neti)) IFT615 15 Exemple 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 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 2 • NET TALK : Reconnaissance vocale 26 lettres + espace + 2 caractères de ponctuation Fenê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) [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 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 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 2 NEAT Coevolution Robots IFT615 22 Apprentissage 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ée x1i xni f(neti) yi Luger. Artificial Intelligence, 4th Ed., 2002 IFT615 23 Exemple 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é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 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/3dsoftware/endorphin2.0.php IFT615 26 Applications • Problèmes de classification : – Reconnaissance de visages – Reconnaissance vocale – Reconnaissance de caractèrs • Beaucoup d’autres applications IFT615 27 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, 20 02. • 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. uploads/Ingenierie_Lourd/ ift615-reseaux-de-neurones.pdf
Documents similaires
-
18
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Apv 29, 2021
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 2.8147MB