SYS843 A.3 Réseaux de neurones multicouches sans

Preview:

Citation preview

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

Recommended