GPA-779 Perceptron multicouche Chapitre 4 Perceptron multicouche Automne 2005
Plan 4- Perceptron multicouche Intro: labo 2 GPA-779 Plan 4- Perceptron multicouche Intro: labo 2 Erreur et gradient d’erreur Rétro-propagation du gradient d’erreur Algorithme Choix des paramètres Exemples Automne 2005
GPA-779 Découverte L.P.J. Veelenturf, Analysis and applications of Neural Networks, Prentice Hall, 1995. Couvre à fond le perceptron, le perceptron multicouche et SOM Traitement complet, mais plutôt math (théorèmes, axiomes) K. Swingler, Applying Neural Networks, Academic Press, 1996. 1 seul modèle: perceptron multicouche Guide pratique Plusieurs exemples Automne 2005
Laboratoire 2: Primitives d’une image GPA-779 Laboratoire 2: Primitives d’une image Extraction des primitives Automne 2005
1- Construction du réseau Sortie (arête) Réseau à rétro-propagation NI = 3x3 Nh = 6 No = 1 Couche cachée Entrée
Construction d’une base d’apprentissage Extraction des primitives Sous-image pour l’apprentissage
2- Choix d’une base d’apprentissage 586 vecteurs 3x3 d’apprentissage sont sélectionnés (distance euclidienne plus grande que 0,17)
GPA-779 3- Apprentissage 4- Généralisation Automne 2005
4- Réseaux multicouches Algorithme de BP GPA-779 4- Réseaux multicouches Algorithme de BP x1 x2 xn xN Couche d’entrée Couche cachée 1 Couche cachée 2 Couche de sortie X S 1 couche d’entrée, fixe (dépend de la nature du problème) 1 couche de sortie, fixe aussi 1 ou plusieurs couches cachées. Le nombre de couches et le nombre de neurones par couche sont encore des problèmes ouverts qui font encore l’objet de recherche Automne 2005
Réseaux Madaline Plans de classification convexes x2 x1 X1 Z1 Y Z2 X2 GPA-779 Réseaux Madaline x2 Z2 Z1 Y X2 X1 1 b1 v1 w11 w21 w12 w22 v2 b3 b2 1ère solution: Madaline 1ère couche (cachée) adaptative => apprentissage Couche de sortie : fonction logique. Poids fixes. x1 Plans de classification convexes Automne 2005
Réseaux mono et multicouches GPA-779 Réseaux mono et multicouches Solution générale: multicouche Automne 2005
Théorème de Kolmogorov (1963) GPA-779 Théorème de Kolmogorov (1963) « Un perceptron à 3 couches comprenant N(2N+1) neurones utilisant des fonctions non-linéaires continûment croissantes peut approximer toute fonction continue de N variables » Approximateur universel avec 3 couches: Entrée - cachée - sortie Automne 2005
Dimensions pour répondre à un problème de reconnaissance de formes ? GPA-779 Dimensions pour répondre à un problème de reconnaissance de formes ? x1 s1 x2 xn sm En RF, la problématique consiste à déterminer: Combien de couches cachées? Combien de neurones dans chaque couche? xN sM N M Automne 2005
fonctions «dérivables» X Cm sm=1, et sm’=0 si mm’ GPA-779 Comment associer une sortie à chaque classe ? X Cm sm=1, et sm’=0 si mm’ Classe « m » : Quelle est la nature des sorties ? Neurone de McCulloch&Pitts sorties bipolaires +1 et -1 sorties binaires +1 et 0 Comment réaliser l’apprentissage des poids synaptiques ? fonctions «dérivables» Algorithme du gradient Automne 2005
Problèmes avec l’approche de Rosenblatt GPA-779 Problèmes avec l’approche de Rosenblatt - L’apprentissage avec un algorithme de descente de gradient et une fonction de Heaviside = un Dirac et des zéros presque partout Mais on doit tout de même utiliser une fonction non-linéaire pour l’activation sinon le perceptron multicouche se comporterait comme un perceptron linéaire ! Illustrer TABLEAU Automne 2005
« Légère » modification du modèle GPA-779 « Légère » modification du modèle proposé par McCulloch & Pitts Fonction seuil TABLEAU: p. 5-5 Progression de la correction de l’erreur de classification la fonction sigmoïde Automne 2005
GPA-779 Nouveau paramètre à régler : la pente de la fonction sigmoïde L’algorithme de la rétropropagation du gradient Base d’apprentissage étiquetée B = {( Xk, Dk), k=1, 2, …, K} Xk=(x1(k), .., xn(k), .., xN(k)), k=1, 2, .., K une forme d’entrée Dk=(d1(k), .., d m(k), .., d M(k)) {0, 1}M vecteur de sortie désirée correspondant à Xk Automne 2005
Cas d’une couche cachée GPA-779 Cas d’une couche cachée x1(k) s1(k) x2(k) Xk vj,n wm,j Sk sm(k) xn(k) yj(k) xN(k) sM(k) Vecteur d’entrée Couche cachée comportant J neurones Vecteur de sortie obtenu Automne 2005
Algorithme de descente du gradient classique : GPA-779 Algorithme de descente du gradient classique : Fonction du coût à minimiser : Coût(p) Coût(p) P(n+1) = P(n) + h p P(n) P (n+1) Fonction du coût à minimiser : Coût(p1, p2 ,…., pL ) Pl(n+1) = Pl(n) + h Automne 2005
Fonction du coût : Erreur quadratique instantanée GPA-779 Fonction du coût : Erreur quadratique instantanée pour les poids synaptiques wm,j Wm,j Erreur liée à sm Automne 2005
GPA-779 Notion de gradient Automne 2005
GPA-779 pour les poids synaptiques vj,i ? vj,n Automne 2005
1. La forme Xk est présentée à l'entrée du réseau GPA-779 Le déroulement de l'algorithme de la rétropropagation du gradient La propagation directe 1. La forme Xk est présentée à l'entrée du réseau 2. Calcul des hj(k), j= 1, 2, .., J, et ym(k), m= 1, 2, .., M 3. Calcul des dm(k), m= 1, 2, .., M La rétropropagation 1. Rétropropagation et calcul de j, j=1,2, … ,J 2. Actualisation des poids wm,j 3. Actualisation des poids vj,n Automne 2005
GPA-779 Réf. : Zurada (1992) Automne 2005
GPA-779 Réf. : Zurada (1992) Automne 2005
Interprétation du réseau multicouches GPA-779 Interprétation du réseau multicouches Point de vue probabiliste : Théorème de Ruck Sm(X) fCm/X : densité de probabilité a posteriori Automne 2005
Point de vue extraction de primitives GPA-779 Point de vue extraction de primitives Extraction des primitives Discrimination linéaire . * . . . * . * . . . . * * * * * * * Automne 2005
MLP à une couche cachée X Y1 Y vj,n Z1 X1 X2 Zj Ym Xn wm,j ZJ YM XN GPA-779 MLP à une couche cachée X1 X vj,n wm,j Zj Ym Y1 YM Couche cachée J neurones Y Vecteur de sortie M neurones Vecteur d’entrée N neurones X2 Xn XN Z1 ZJ 1 Automne 2005
La propagation directe GPA-779 La propagation directe Calcul des Zj Calcul des Ym Automne 2005
Adaptation des poids synaptiques wjk GPA-779 La rétropropagation Adaptation des poids synaptiques wjk wj,k Erreur liée à Yk Automne 2005
? La rétropropagation Adaptation des poids synaptiques vij vj,n GPA-779 La rétropropagation Adaptation des poids synaptiques vij ? vj,n Erreur liée à Zj Comment calculer ? Automne 2005
Adaptation des poids synaptiques vij GPA-779 La rétropropagation Adaptation des poids synaptiques vij Automne 2005
ALGORITHME: RÉSUMÉ 1 debut initialisation des poids du MLP GPA-779 ALGORITHME: RÉSUMÉ 1 debut initialisation des poids du MLP faire propagation directe: pour chaque vecteur de donnée - Affecter Xk= xn (n=1,..,N); envoyer les signaux aux neurones cachés 4 - Chaque neurone caché calcule son entrée - Appliquer sa fonction d’activation pour calculer sa sortie - Chaque neurone de sortie calcule son entrée 7 - Appliquer sa fonction d’activation pour calculer sa sortie 8 rétropropagation: chaque neurone de sortie reçoit son étiquette tm 9 - calculer les gradient 10 - calculer les incréments* 11 - rétropropager les gradients vers la couche cachée qui précède Automne 2005
12 - chaque neurone cachée calcule son correspondant selon GPA-779 12 - chaque neurone cachée calcule son correspondant selon - chaque neurone caché calcule son gradient - calculer les incréments * - mise à jour des poids et biais* selon jusqu’à critère d’arrêt satisfait 10 retourner les poids du MLP 11 fin Automne 2005
Résumé: propagation directe GPA-779 Résumé: propagation directe Automne 2005
Résumé: rétro-propagation du gradient GPA-779 Résumé: rétro-propagation du gradient Automne 2005
Exercice
GPA-779 6.1 : Trouver les nouveaux poids du réseau de la figure ci-dessous si on présente le vecteur d’apprentissage (0,1) (réf. Fausett, Prentice Hall, 1994) 1. Net de la couche cachée Propagation avant z_in1 = 0.4 + (0.0) (0.7) + (1.0) (-0.2) = 0.2 z_in2 = 0.6 + (0.0) (-0.4) + (1.0) (0.3) = 0.9 Y -0.3 1 0.5 0.1 Z1 Z2 0.4 0.6 0.7 0.3 1 -0.4 -0.2 1 X1 X2 Automne 2005
GPA-779 6.1 : Trouver les nouveaux poids du réseau de la figure ci-dessous si on présente le vecteur d’apprentissage (0,1). D=1 et =0,25. Propagation avant Y 2. Out de la couche cachée -0.3 z1 = 1 / (1+ exp (- z_in1)) = 0.550 1 0.5 0.1 z2 = 1 / (1+ exp (- z_in2)) = 0.711 Z1 Z2 0.4 0.6 0.7 0.3 1 -0.4 -0.2 1 X1 X2 Automne 2005
3. Net de la couche de sortie GPA-779 6.1 : Trouver les nouveaux poids du réseau de la figure ci-dessous si on présente le vecteur d’apprentissage (0,1). D=1 et =0,25. Propagation avant Y -0.3 1 0.5 0.1 Z1 Z2 3. Net de la couche de sortie 0.4 0.6 0.7 0.3 y_in = -0.3 + (z1) (0.5) + (z2) (0.1) = 0.046 1 -0.4 -0.2 1 X1 X2 Automne 2005
3. Net de la couche de sortie GPA-779 6.1 : Trouver les nouveaux poids du réseau de la figure ci-dessous si on présente le vecteur d’apprentissage (0,1). D=1 et =0,25. 1. Net de la couche cachée Propagation avant z_in1 = 0.4 + (0.0) (0.7) + (1.0) (-0.2) = 0.2 z_in2 = 0.6 + (0.0) (-0.4) + (1.0) (0.3) = 0.9 Y 2. Out de la couche cachée -0.3 z1 = 1 / (1+ exp (- z_in1)) = 0.550 1 0.5 0.1 z2 = 1 / (1+ exp (- z_in2)) = 0.711 Z1 Z2 3. Net de la couche de sortie 0.4 0.6 0.7 0.3 y_in = -0.3 + (z1) (0.5) + (z2) (0.1) = 0.046 -0.4 -0.2 1 1 4. Out de la couche de sortie X1 X2 y = 1 / (1+ exp (- y_in)) = 0.511 Automne 2005
GPA-779 6.1 : Trouver les nouveaux poids du réseau de la figure ci-dessous si on présente le vecteur d’apprentissage (0,1). D=1 et =0,25. 5. Erreur Rétro-propagation t - y = 1 – 0.511 = 0.489 t d k 6. dk D b a Y dk = (t – y) (y) (1 - y) = 0.122 -0.3 1 0.5 0.1 Z1 Z2 0.4 0.6 0.7 0.3 -0.2 1 -0.4 1 X1 X2 Automne 2005
GPA-779 6.1 : Trouver les nouveaux poids du réseau de la figure ci-dessous si on présente le vecteur d’apprentissage (0,1). D=1 et =0,25. Rétro-propagation Z2 Z1 Y X2 X1 1 0.7 -0.4 -0.2 0.3 0.6 0.4 dk d j1 d j2 (0.5) (0.1) (-0.3) 0.5168 0.1217 -0.2695 Dans le cas général : Dérivée de f (z_inj) 8. d j1 d j1 = (d k) (w1) (z1) (1 - z1) = 0.015 9. d j2 d j2 = (d k) (w2) (z2) (1 - z2) = 0.0025 Automne 2005
GPA-779 6.1 : Trouver les nouveaux poids du réseau de la figure ci-dessous si on présente le vecteur d’apprentissage (0,1). D=1 et =0,25. Rétro-propagation dk Y D wjk -0.2695 7. D wjk 0.5168 1 0.1217 D w01 = (h) (dk) = 0.0305 Z1 Z2 D w11 = (h) (dk) (z1) = 0.0168 0.4 0.6 0.7 0.3 1 -0.4 -0.2 1 D w21 = (h) (dk) (z2) = 0.0217 X1 X2 Automne 2005
GPA-779 6.1 : Trouver les nouveaux poids du réseau de la figure ci-dessous si on présente le vecteur d’apprentissage (0,1). D=1 et =0,25. Rétro-propagation Y d j1 d j2 0.0305 (-0.3) 0.0168 1 0.0217 D vn1 D vn2 10. D vnp Z1 Z2 D v01 = (h) (d j1) = 0.038 D v11 = (h) (d j1) (x1) = 0.0 0.438 0.6006 D v21 = (h) (d j1) (x2) = 0.038 0.7 0.3006 1 -0.4 -0.1962 1 D v02 = (h) (d j2) = 0.0006 D v12 = (h) (d j2) (x1) = 0.0 X1 X2 D v22 = (h) (d j2) (x2) = 0.0006 Automne 2005
GPA-779 Exercice à faire: 6.2 : Trouver les nouveaux poids du réseau de la figure ci-dessous si on présente le vecteur d’apprentissage (-1,1) et on utilise une sigmoïde bipolaire comme fonction d’activation Seuls changent la dérivée de la fonction d’activation bipolaire et la mise à jour des poids entre l’entrée et la couche cachée. Pour le détail voir 6.1 Y -0.3 1 0.5 0.1 Z1 Z2 0.4 0.6 0.7 0.3 1 -0.4 -0.2 1 X1 X2 Automne 2005