70
SYS843 A.3 Réseaux de neurones multicouches sans rétroaction (partie 1 et 2) Eric Granger Ismail Ben Ayed Hiver 2016

SYS843 A.3 Réseaux de neurones multicouches sans

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SYS843 A.3 Réseaux de neurones multicouches sans

SYS843

A.3 Réseaux de neurones multicouches sans rétroaction

(partie 1 et 2)

Eric Granger

Ismail Ben Ayed

Hiver 2016

Page 2: SYS843 A.3 Réseaux de neurones multicouches sans

A3-2

CONTENU DU COURS

SYS843: Réseaux de neurones et systèmes flous

Page 3: SYS843 A.3 Réseaux de neurones multicouches sans

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

Page 4: SYS843 A.3 Réseaux de neurones multicouches sans

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

Page 5: SYS843 A.3 Réseaux de neurones multicouches sans

Fonction d’activation

Poids

Rappel: Perceptron

Page 6: SYS843 A.3 Réseaux de neurones multicouches sans

• 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

Page 7: SYS843 A.3 Réseaux de neurones multicouches sans

• Formulation par vecteur de forme augmenté:

Vecteur forme augmenté

Rappel: Perceptron

Page 8: SYS843 A.3 Réseaux de neurones multicouches sans

• 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

Page 9: SYS843 A.3 Réseaux de neurones multicouches sans

• 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é

Page 10: SYS843 A.3 Réseaux de neurones multicouches sans

• 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

Page 11: SYS843 A.3 Réseaux de neurones multicouches sans

�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

Page 12: SYS843 A.3 Réseaux de neurones multicouches sans

• 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

Page 13: SYS843 A.3 Réseaux de neurones multicouches sans

• 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

Page 14: SYS843 A.3 Réseaux de neurones multicouches sans

• 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

Page 15: SYS843 A.3 Réseaux de neurones multicouches sans

Frontières de décision

Figure de: Gonzalez et Wood, digital image processing, 3rd edition, 2008

Page 16: SYS843 A.3 Réseaux de neurones multicouches sans

Frontières de décision

Figure de: Gonzalez et Wood, digital image processing, 3rd edition, 2008

Page 17: SYS843 A.3 Réseaux de neurones multicouches sans

Frontières de décision

Figure de: Gonzalez et Wood, digital image processing, 3rd edition, 2008

Page 18: SYS843 A.3 Réseaux de neurones multicouches sans

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

Page 19: SYS843 A.3 Réseaux de neurones multicouches sans

Réseaux multicouches

Page 20: SYS843 A.3 Réseaux de neurones multicouches sans

Réseaux multicouches

Page 21: SYS843 A.3 Réseaux de neurones multicouches sans

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

Page 22: SYS843 A.3 Réseaux de neurones multicouches sans

∂∂∂∂ E

∂∂∂∂ S-

∂∂∂∂ E

∂∂∂∂ S-

∂∂∂∂S = ∂∂∂∂t∂∂∂∂ E

∂∂∂∂ S

Rappel: Descente du gradient

Page 23: SYS843 A.3 Réseaux de neurones multicouches sans

• 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

Page 24: SYS843 A.3 Réseaux de neurones multicouches sans

• 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

Page 25: SYS843 A.3 Réseaux de neurones multicouches sans

Rappel: Règle delta

Page 26: SYS843 A.3 Réseaux de neurones multicouches sans

Erreur commise par vecteur poids w quand forme y est présentée

Rappel: Règle delta

Page 27: SYS843 A.3 Réseaux de neurones multicouches sans

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

Page 28: SYS843 A.3 Réseaux de neurones multicouches sans

• 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

Page 29: SYS843 A.3 Réseaux de neurones multicouches sans

• 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

Page 30: SYS843 A.3 Réseaux de neurones multicouches sans

• 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

Page 31: SYS843 A.3 Réseaux de neurones multicouches sans

Fonction d'activation continue

Page 32: SYS843 A.3 Réseaux de neurones multicouches sans

• 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

Page 33: SYS843 A.3 Réseaux de neurones multicouches sans

Rétro-propagation du gradient

• Descente du gradient (couche de sortie):

Page 34: SYS843 A.3 Réseaux de neurones multicouches sans

Rétro-propagation du gradient

• Descente du gradient (couche de sortie):

Proportionnelle à l’erreur

Page 35: SYS843 A.3 Réseaux de neurones multicouches sans

Rétro-propagation du gradient

• Facile à démontrer:

Règle de la chaîne (Chain rule)

Page 36: SYS843 A.3 Réseaux de neurones multicouches sans

Rétro-propagation du gradient

• Facile à démontrer:

Règle de la chaîne (Chain rule)

Page 37: SYS843 A.3 Réseaux de neurones multicouches sans

Rétro-propagation du gradient

• Facile à démontrer:

Règle de la chaîne (Chain rule)

Règle de la chaîne encore

Page 38: SYS843 A.3 Réseaux de neurones multicouches sans

Rétro-propagation du gradient

• Facile à démontrer:

Règle de la chaîne (Chain rule)

Règle de la chaîne encore

Page 39: SYS843 A.3 Réseaux de neurones multicouches sans

• 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

Page 40: SYS843 A.3 Réseaux de neurones multicouches sans

• 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

Page 41: SYS843 A.3 Réseaux de neurones multicouches sans

• 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

Page 42: SYS843 A.3 Réseaux de neurones multicouches sans

• On peut écrire l’erreur sous cette forme:

Rétro-propagation du gradient

Page 43: SYS843 A.3 Réseaux de neurones multicouches sans

• On peut écrire l’erreur sous cette forme:

Rétro-propagation du gradient

Ne pose pas de problème!

Page 44: SYS843 A.3 Réseaux de neurones multicouches sans

• 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

Page 45: SYS843 A.3 Réseaux de neurones multicouches sans

• Finalement, voici la solution: :

Rétro-propagation du gradient

Page 46: SYS843 A.3 Réseaux de neurones multicouches sans

• Finalement, voici la solution: :

Rétro-propagation du gradient

Page 47: SYS843 A.3 Réseaux de neurones multicouches sans

• Finalement, voici la solution: :

Rétro-propagation du gradient

Page 48: SYS843 A.3 Réseaux de neurones multicouches sans

• Finalement, voici la solution: :

Rétro-propagation du gradient

Page 49: SYS843 A.3 Réseaux de neurones multicouches sans

• Finalement:

Rétro-propagation du gradient

On a tout!

Page 50: SYS843 A.3 Réseaux de neurones multicouches sans

�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

Page 51: SYS843 A.3 Réseaux de neurones multicouches sans

• 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

Page 52: SYS843 A.3 Réseaux de neurones multicouches sans

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.

Page 53: SYS843 A.3 Réseaux de neurones multicouches sans

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

Page 54: SYS843 A.3 Réseaux de neurones multicouches sans

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

Page 55: SYS843 A.3 Réseaux de neurones multicouches sans

En résumé

Apprentissage Profond (Deep Learning)

=

Essentiellement la rétro-propagation (avec beaucoup de couches)

+

Heuristiques

+

Tones de données

+

Puissance de calcul

Page 56: SYS843 A.3 Réseaux de neurones multicouches sans

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

Page 57: SYS843 A.3 Réseaux de neurones multicouches sans

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

Page 58: SYS843 A.3 Réseaux de neurones multicouches sans

Zeiler et Fergus, ECCV 2014

105-106 de paramètres de convolution

RN Convolutionnels

Page 59: SYS843 A.3 Réseaux de neurones multicouches sans

Milliers d’exemples annotés

RN Convolutionnels

Zeiler et Fergus, ECCV 2014

Page 60: SYS843 A.3 Réseaux de neurones multicouches sans

Cascades de fonctions non-linéaires

RN Convolutionnels

Zeiler et Fergus, ECCV 2014

Page 61: SYS843 A.3 Réseaux de neurones multicouches sans

Redmon, J. Farhadi, A. 2016. YOLO9000: Better, Faster, Stronger

https://pjreddie.com/darknet/yolo/

Ce qu'on peut faire aujourd'hui

Page 62: SYS843 A.3 Réseaux de neurones multicouches sans

Pohlen et al., 2016

https://www.youtube.com/watch?v=PNzQ4PNZSzc

Ce qu'on peut faire aujourd'hui

Page 63: SYS843 A.3 Réseaux de neurones multicouches sans

Revenons aux exemples simples

Page 64: SYS843 A.3 Réseaux de neurones multicouches sans

• Formes: Signatures normalisées (48 échantillons pris uniformément à partir des signatures.

�Vecteurs de dimension 48

�On a 4 classes

Revenons aux exemples simples

Page 65: SYS843 A.3 Réseaux de neurones multicouches sans

• 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

Page 66: SYS843 A.3 Réseaux de neurones multicouches sans

• 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

Page 67: SYS843 A.3 Réseaux de neurones multicouches sans

• 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

Page 68: SYS843 A.3 Réseaux de neurones multicouches sans

• 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

Page 69: SYS843 A.3 Réseaux de neurones multicouches sans

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

Page 70: SYS843 A.3 Réseaux de neurones multicouches sans

Amélioration de la performance pour Rt

=0.4 en augmentant le nombre de formes d’apprentissage

Apprentissage