sys843 a.3 réseaux de neurones multicouches sans
TRANSCRIPT
SYS843
A.3 Réseaux de neurones multicouches sans rétroaction
(partie 1 et 2)
Eric Granger
Ismail Ben Ayed
Hiver 2016
A3-2
CONTENU DU COURS
SYS843: Réseaux de neurones et systèmes flous
A3-3
CONTENU DU COURS
Réseaux de neurones multicouches
Estimation de surfaces de décision non-linéaires
Capacité d'apprendre ces surfaces à l'aide d'exemples (données) des fonctions de transfert arbitrairement complexes
SYS843: Réseaux de neurones et systèmes flous
A3-4
CONTENU DU COURS
A.3 Réseaux de neurones multicouches sans
rétroaction (MLP)
1) Classification de données linéairement non-séparables
2) Règle d'apprentissage delta pour une couche de perceptrons
3) Règle d'apprentissage delta généralisée
4) Entraînement par la rétro-propagation des erreurs
5) Facteurs d'apprentissage
SYS843: Réseaux de neurones et systèmes flous
Fonction d’activation
Poids
Rappel: Perceptron
• Frontière de décision:
�Équation d’un hyperplan en dimension n
�Les coefficients de 1 à n définissent l’orientation de l’hyperplan
�Dernier coefficient: proportionnel à la distance entre l’origine et l’hyperplan
Rappel: Perceptron
• Formulation par vecteur de forme augmenté:
Vecteur forme augmenté
Rappel: Perceptron
• Le problème consiste à trouver w à partir d’un ensemble de vecteurs d’apprentissage.
• Classes séparables linéairement:
�On commence par un vecteur poids initial w (1)
�Itération k (Cas 1):
Rappel: Perceptron
• Le problème consiste à trouver w à partir d’un ensemble de vecteurs d’apprentissage.
• Classes séparables linéairement:
�On commence par un vecteur poids initial w (1)
�Itération k (Cas 1):
Rappel: Perceptron
Vecteur y est mis-classifié
• Le problème consiste à trouver w à partir d’un ensemble de vecteurs d’apprentissage.
• Classes séparables linéairement:
�On commence par un vecteur poids initial w (1)
�Itération k (Cas 1):
Rappel: Perceptron
Vecteur y est mis-classifié
positive
�Itération k (Cas 2): Vecteur y est mis-classifié
Rappel: Perceptron
�Itération k (Cas 3): Pas de changement si la forme est bien classifiée
• Un perceptron implémente un hyperplan
Chaque nœud de la première couche (2 couches dans ce cas) implémente une droite en 2D sorties: (0,0), (0,1), (1,0), (1,1)
Frontières de décision
• Un perceptron implémente un hyperplan
Chaque nœud de la première couche (2 couches dans ce cas) implémente une droite en 2D sorties: (0,0), (0,1), (1,0), (1,1) Couche 2: XOR logique
Frontières de décision
• Un perceptron implémente un hyperplan
Chaque nœud de la première couche (2 couches dans ce cas) implémente une droite en 2D sorties: (0,0), (0,1), (1,0), (1,1) Couche 2: XOR logique
Frontières de décision
3 droites: 3 nœuds à la couche 1
Frontières de décision
Figure de: Gonzalez et Wood, digital image processing, 3rd edition, 2008
Frontières de décision
Figure de: Gonzalez et Wood, digital image processing, 3rd edition, 2008
Frontières de décision
Figure de: Gonzalez et Wood, digital image processing, 3rd edition, 2008
En théorie: Un réseau de 3 couches est capable d’ implémenter une surface de complexité arbitraire (intersections de plusieurs hyperplan)
Frontières de décision
Figure de: Gonzalez et Wood, digital image processing, 3rd edition, 2008
Réseaux multicouches
Réseaux multicouches
Réseaux multicouches
• Rappel: Règle d’apprentissage delta (une couche)
� Estimation des poids par la minimisation(descente du gradient) d’une fonction:
Réponse désirée:+1 si y dans C1
-1 si y dans C2
∂∂∂∂ E
∂∂∂∂ S-
∂∂∂∂ E
∂∂∂∂ S-
∂∂∂∂S = ∂∂∂∂t∂∂∂∂ E
∂∂∂∂ S
Rappel: Descente du gradient
• On ajuste w de façon itérative dans la direction opposée au gradient de J:
Nouvelle valeur
Magnitude de correction positive
Rappel: Règle delta
• On ajuste w de façon itérative dans la direction opposée au gradient de J:
Nouvelle valeur
Magnitude de correction positive
Rappel: Règle delta
Rappel: Règle delta
Erreur commise par vecteur poids w quand forme y est présentée
Rappel: Règle delta
Retour aux multicouches
• Le réseau affecte une forme x à une classe i si la i-ième sortie est large et les autres sorties sont petites.
• Chaque neurone a une forme similaire au perceptron, mais avec une fonction d’activation continue
�La dérivation des fonctions d’activation est importante
• Supposons que la couche K précède la couche J, l’ entrée à la fonction d’activation à chaque
nœud (neurone) j de la couche J est:
Retour aux multicouches
• Supposons que la couche K précède la couche J, l’ entrée à la fonction d’activation à chaque
nœud (neurone) j de la couche J est:
Sortie du neurone k
dans la couche K
Retour aux multicouches
• Supposons que la couche K précède la couche J, l’ entrée à la fonction d’activation à chaque
nœud (neurone) j de la couche J est:
Sortie du neurone k
dans la couche K
Retour aux multicouches
Entrée du neurone k
dans la couche K
Fonction d'activation continue
• L’apprentissage à la couche de sortie est simple (on connaît la sortie r de chaque nœud)
• On minimise (descente de gradient):
Rétro-propagation du gradient
Rétro-propagation du gradient
• Descente du gradient (couche de sortie):
Rétro-propagation du gradient
• Descente du gradient (couche de sortie):
Proportionnelle à l’erreur
Rétro-propagation du gradient
• Facile à démontrer:
Règle de la chaîne (Chain rule)
Rétro-propagation du gradient
• Facile à démontrer:
Règle de la chaîne (Chain rule)
Rétro-propagation du gradient
• Facile à démontrer:
Règle de la chaîne (Chain rule)
Règle de la chaîne encore
Rétro-propagation du gradient
• Facile à démontrer:
Règle de la chaîne (Chain rule)
Règle de la chaîne encore
• Maintenant analysons ce qui se passe pour une couche cachée (hidden) P précédée pour J et qui
vient juste devant Q:
Rétro-propagation du gradient
• Maintenant analysons ce qui se passe pour une couche cachée (hidden) P précédée pour J et qui
vient juste devant Q:
Rétro-propagation du gradient
• Maintenant analysons ce qui se passe pour une couche cachée (hidden) P précédée pour J et qui
vient juste devant Q:
Inconnu pour une couche cachée!!!
Rétro-propagation du gradient
• On peut écrire l’erreur sous cette forme:
Rétro-propagation du gradient
• On peut écrire l’erreur sous cette forme:
Rétro-propagation du gradient
Ne pose pas de problème!
• On peut écrire l’erreur sous cette forme:
Rétro-propagation du gradient
C’est ce terme qui contient le rp. On doit l’exprimer de
façon à éviter le rp
• Finalement, voici la solution: :
Rétro-propagation du gradient
• Finalement, voici la solution: :
Rétro-propagation du gradient
• Finalement, voici la solution: :
Rétro-propagation du gradient
• Finalement, voici la solution: :
Rétro-propagation du gradient
• Finalement:
Rétro-propagation du gradient
On a tout!
�On peut calculer les erreurs dans la couche P(pour mettre à jour les poids) à partir des erreurs calculées pour la couche qui vient immédiatement après P (Q dans ce cas).
�On commence par la couche de sortie, et on a propage l’erreur d’une couche à l’autre
Rétro-propagation du gradient
• On commence par un ensemble arbitraire de poids (il faut pas qu’ils soient tous égaux)
• La mise à jour des poids à chaque étape itérative est basée sur 2 phases:
Rétro-propagation du gradient
Rétro-propagation du gradient
• Phase 1 (forward): Un vecteur d’apprentissage est propagé à travers le réseaux pour calculer le terme d’erreur à la sortie (Q)
• Phase 2 (backward): Rétro-propagation - Le signal erreur passe à chaque nœud et les poids correspondant sont mis à jours.
Rétro-propagation du gradient
• Exemples simples de rétro-propagation
(Backpropagation):
Source: Fei-Fei Li, Justin Johnson & Serena Yeung, CS231 (Stanford U.), Lecture 4, Backpropagation and Neural Networks, p. 12-52
http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture4.pdf
En résumé
• On peut écrire le gradient: Pas pratique pour des réseaux très larges et des millions de paramètres
• Rétro-propagation: Essentiellement, une application récursive de la règle de la chaine
�Forward: Calculer de résultats de toutes les opérations et garder en mémoire les valeurs intermédiaires (pour le gradient)
�Backward: Règle de la chaine pour calcul du gradient
En résumé
Apprentissage Profond (Deep Learning)
=
Essentiellement la rétro-propagation (avec beaucoup de couches)
+
Heuristiques
+
Tones de données
+
Puissance de calcul
Images de: Fei-Fei Li, Andrej Karpathy and Justin Johnson 2016, cs231n.
Classification
Classification+
LocalisationDétection D’objets
SegmentationSémantique
Chat Chat, Chien, Canard
Exemple de succès fulgurant
Source: Imagenet Large Scale Visual Recognition Challenge 2016, Liu, Russakovsky, Deng, Li and Berg
1000 classes – 1.5 millions d’images
Exemple de succès fulgurant
Zeiler et Fergus, ECCV 2014
105-106 de paramètres de convolution
RN Convolutionnels
Milliers d’exemples annotés
RN Convolutionnels
Zeiler et Fergus, ECCV 2014
Cascades de fonctions non-linéaires
RN Convolutionnels
Zeiler et Fergus, ECCV 2014
Redmon, J. Farhadi, A. 2016. YOLO9000: Better, Faster, Stronger
https://pjreddie.com/darknet/yolo/
Ce qu'on peut faire aujourd'hui
Pohlen et al., 2016
https://www.youtube.com/watch?v=PNzQ4PNZSzc
Ce qu'on peut faire aujourd'hui
Revenons aux exemples simples
• Formes: Signatures normalisées (48 échantillons pris uniformément à partir des signatures.
�Vecteurs de dimension 48
�On a 4 classes
Revenons aux exemples simples
• Pas de règles spécifiques pour choisir le nombre de nœuds dans les couches cachées normalisées
�Choix basés sur l’expérience et les tests expérimentaux
Architectures
• Suivi des sorties durant l’apprentissage:
� On s’arrête quand chaque échantillon d’apprentissage (qui appartient à la classe i) vérifie:
• Première partie: Poids initialisées à des petites valeurs aléatoires (moyenne zéro) et considère que les formes sans bruit
Apprentissage
• Deuxième partie: On utilise des formes bruitées. Chaque pixel peut avoir un changement de coordonnées avec une probabilité R (ex., coordonnées d’un pixel 8-voisin)
• On génère deux ensembles d’échantillons:
� Ensemble de tests (‘test set’)
� Ensemble d’apprentissage (‘training set’)
Apprentissage
• Ensemble de tests: 100 formes bruitées de chaque classe avec R variant de 0.1 à 0.6 (400 au total)
• Ensembles d’apprentissage:
1) Premier ensemble avec Rt=0 (pas de bruit)
2) Rt=1 et on commence par les poids obtenu dans 1
Apprentissage
Performance augmente avec Rt parce que on a un meilleur ensemble d’apprentissage (inclut les données bruitées)
Il fait l’exception!
Cause: Un petit nombre d’ échantillons d’apprentissage – ne permet pas au réseau de s’adapter au variations dues au bruit
Apprentissage
Amélioration de la performance pour Rt
=0.4 en augmentant le nombre de formes d’apprentissage
Apprentissage