30
Architectures de réseaux de neurones

Architectures de réseaux de neurones

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Architectures de réseaux de neurones

Architectures de réseaux de neurones

Page 2: Architectures de réseaux de neurones

Rappels

Page 3: Architectures de réseaux de neurones

Exemple d’architecture feed-forward

X1

X2

U1

U2

U3

V1

V2

Y

w11

w12

w13

w14

w21

w22

w23

w24

w31

w32

NB: les offsets et les fonctions d’activation sur les neurones cachéset de sorties ne sont pas représentés dans cet exposé mais font biensûr partie des modèles.

Page 4: Architectures de réseaux de neurones

Principe des réseaux feed-forward

L’information se propage des neurones d’entrée aux neurones desortie de la façon suivante:

1. Chaque neurone de la couche k résume les messages qu’ilreçoit de la couche k − 1 via une combinaison linéaire;

2. Il applique au résultat une fonction déterminée à l’avance(fonction d’activation), généralement non linéaire;

3. Il renvoie le résultat aux neurones de la couche k + 1 auxquelsil est connecté.

Page 5: Architectures de réseaux de neurones

Exemple d’architecture feed-forward

I On choisit la fonction d’activation RELU(x) = max(0, x) surles neurones internes de

X1

X2

U1

U2

U3

V1

V2

Y

w11

w12

w13

w14

w21

w22

w23

w24

w31

w32

Iy(x1, x2) = max(0, w32v1 + w31v2 + b3) u1 = max(0, w11u1 + b11)

v1 = max(0, w21u1 + w22u2 + b21) u2 = max(0, w12x1 + w13x2 + b12)v2 = max(0, w23u2 + w24u3 + b22) u3 = max(0, w14x2 + b13)

Page 6: Architectures de réseaux de neurones

Phase d’apprentissage: Fonction de perte

On cherche la valeur des paramètres qui minimisent une fonction deperte sur l’ensemble d’apprentissage, par exemple

L(w) =∑

i(yi(w)− yi)2

ou

L(w) = −∑

iyi log yi(w) (pour la classification)

où yi(w) désigne la prédiction pour l’individu i et yi la vraie valeur.

Page 7: Architectures de réseaux de neurones

Phase d’apprentissage: Algorithme de la descente degradient

I On considère une fonction f à une ou plusieurs variablesx1, . . . , xk qu’on cherche à minimiser.

I Le gradient de f en x = (x1, . . . , xn) est le vecteur

∇f (x) =

∂f∂x1

(x)...

∂f∂xk

(x)

I le calculer en un point peut se faire en utilisant soit l’expression

de la dérivée partielle, ou en l’approximant par un tauxd’accroissement.

Page 8: Architectures de réseaux de neurones

Descente de gradient

Algorithme1. On fixe ε > 0.2. Tant que ‖∇f (x)‖ > ε

xk+1 = xk − αk∇f (x)

I Plusieurs choix de la suite αk sont possibles. Des valeurs tropgrandes donnent un algorithme oscillant, des valeurs tropfaibles une convergence trop lente.

I Principaux avantages: simplicité et efficacité, la solution estexacte si la fonction à optimiser est convexe.

I Principal inconvénient: le minimum atteint n’est à priori quelocal.

Page 9: Architectures de réseaux de neurones

Cas des réseaux de neurones

Si L(x) = L(h1(x), . . . , hn(x)),

∂L∂x =

n∑j=1

∂L∂hj

∂hj∂x

I La structure en couche des réseaux de neurones permet alorsde calculer le gradient suivant les paramètres et variables dechaque couche uniquement en fonction de la couche suivante(cf TD5). On parle de backpropagation.

I La formule liant le gradient d’intérêt à celle de la couchesuivante ne dépend que de l’architecture locale entre les deuxcouches: pas besoin de refaire toutes les maths à chaque fois.

Page 10: Architectures de réseaux de neurones

Descente de gradient: gestion des données

Des variations sur la direction de la descente sont généralementutilisées, en particulier un algorithme de descente partielle:

I les données sont partitionnées en batchs et on utilise qu’unbatch à la fois pour faire un pas.

I quand tous les batchs ont été utilisés, on parle d’une époque(epoch). On repartitionne aléatoirement en batchs et onrecommence

I la détermination du nombre de pas se fait en général enprécisant la taille des batchs et le nombre d’époques

Page 11: Architectures de réseaux de neurones

Remarques

I Les réseaux de neurones sont sur-paramétrés: les minimauxlocaux sont nombreux. La prédiction est bonne si l’ensembled’apprentissage est grand (erreur petite) mais les poids sontdifficilement interprétables en tant que tels (d’autres jeux depoids donnent des résultats similaires).

I La prédiction n’est bonne que dans les zones où il y avait desdonnées d’apprentissage.

Page 12: Architectures de réseaux de neurones

Convolutional Neural Networks (CNN)

Traitement d’images

Les données d’entrée peuvent être très grandes (une image contientdes dizaines de milliers de pixels):

I Entraîner des réseaux denses peut être beucoup trop long:peut-on réduire les paramètres

Les données d’entrée peuvent avoir des invariances(rotation/translation):

I Traiter les différentes zones de l’image de manière égale

Pour répondre à ces questions, deux types de couches sontfréquemment utilisées en traitiment d’images: la convolution et lepooling

Page 13: Architectures de réseaux de neurones

Convolution

I on applique un filtre de petite taille à chaque pixel d’unematrice de données. Par exemple, convoler avec le filtre

15

0 1 01 1 10 1 0

revient à remplacer chaque pixel avec sa moyenne avec les quatrespixels directement adjacents.

I rdv sur le site suivant pour des exemples de filtre et lavisualisation de leurs effets:

https://setosa.io/ev/image-kernels/

Page 14: Architectures de réseaux de neurones

Convolution

I la convolution revient à ajouter une couche à un réseau deneurones, telle que1. La plupart des poids sont nuls: pour un filtre 3× 3, seules 9

poids sur les nxm possibles sont non nuls

2. Les neufs poids non nuls sont les mêmes pour tous les pixels: onpasse d’une couche n ×m à une autre couche n ×m avecseulement r2 paramètres où r est la taille du filtre

3. On limite le nimbre de paramètres, tout en assurant l’invariance

I les bords sont traités de façon à ne pas changer la taille de lanouvelle matrice (en ajoutant une couronne de 0 par exemple)

Page 15: Architectures de réseaux de neurones

Convolution

I En image couleur, on n’a pas une seule matrice d’entrée, mais3 (RVB). On parle donc aussi de profondeur des données.

I Plusieurs noyaux de convolution sont autorisés en parallèle: sion laisse le réseau apprendre N filtres, qui s’appliquent chacunsur chacune des p tranches de la couche précédente, on obtientà la couche suivante des données de profondeur Np.

Exemple: si la première couche appliquée au jeu d’entrée (uneimage couleur de taille n ×m) est composée de 5 filtres, lesvariables après la première couche sont de taille n ×m × 15.

Page 16: Architectures de réseaux de neurones

Pooling

Une couche de pooling diminue la taille du jeu de données par 2

I on partitionne l’image en carrés 2x2

I chaque carré devient une unique valeur, en appliquant unefonction de pooling: max (le plus fréquent), moyenne, . . .

Exemple de max-pooling

4 2 −4 −10 −1 −6 00 3 2 6−4 1 −1 −6

−→(4 03 6

)

Page 17: Architectures de réseaux de neurones

Exemple

I Réseau convolutionnel de classification d’images de Symonianet Zisserman (2014).

Page 18: Architectures de réseaux de neurones

Exemples d’applications

I Classification d’images, par exemple à des fins médicales

I Reconnaissance de formes (imagerie médicale, voitureautonome, imagerie satellitaire . . . )

Page 19: Architectures de réseaux de neurones

Recurrent Neural Networks (RNN) et (LTSM)

Traitement du langageComment prendre en compte les mots précédents et le contexte?

I introduire la notion de série temporelle dans les données àtraiter

Exemple: Jean et Marie se promènent en forêt. Dans les sous-bois,Jean aperçoit une biche et la montre à ______

Quel mot proposer? Pour un modèle de Markov basé sur des milliersde mots, la dernière occurence de Marie est beaucoup trop lointaine.

Page 20: Architectures de réseaux de neurones

Réseaux récurrents

I On considère une cellule qui se répète et où yt (par exemple lemot suivant) dépend d’un ensemble de neurones cachés,eux-mêmes dépendant xt (par exemple le dernier mot) et desneurones cachés du temps précédent.

ht−1 ht ht+1

xt−1 xt xt+1

yt−1 yt yt+1

Whh WhhWhh Whh

Wxh

Why

Wxh

Why

Wxh

Why

Page 21: Architectures de réseaux de neurones

Réseaux récurrents

I Les matrices de poids W entre les couches cachées, les offsetset les fonctions d’activation sont invariantes

I On représente par conséquent parfois ces réseaux sous uneforme plus compacte

hx yWxh Why

Whh

Page 22: Architectures de réseaux de neurones

Vanishing gradientsLa formule des gradients donne

∂yt∂W =

∑i≤n

∂yt∂ht

∂ht∂hi

∂hi∂W

et

∂yt∂xi

= ∂yt∂ht

∂ht∂hi

∂hi∂xi

Or ∂ht∂hi

contient t − i fois le produit par la matrice W , ce quientraîne:

I soit l’explosion du gradient (qui peut être maîtrisée en lenormalisant)

I soit sa diminution rapide vers 0, entraînant une portéerelativement faible du mot xi sur les prévisions suivantes

Page 23: Architectures de réseaux de neurones

Long Short Term Memories (LSTM) networks

Complexification de l’architecture des RNN en introduisant deuxprobabilités (σ désigne la fonction logistique ou sigmoïde 1

1+e−x ):

I update gate:

zt = σ(Wxzxt + Whzht−1)

I reset gate:rt = σ(Wxr xt + Whr ht−1)

Page 24: Architectures de réseaux de neurones

Long Short Term Memories (LSTM) networks

La définition de ht en fonction de ht−1 et xt se fait alors en deuxtemps (∗ désigne la multiplication termes à termes)

1. Opération habituelle avec le passé oublié suivant la probabilitéapprise par le reset gate

ht = tanh(Whxxt + rt ∗Whhht−1)

2. Mélange de l’état précédent et du nouveau avec une proportiondépendant de l’update gate

ht = zt ∗ ht−1 + (1− zt) ∗ ht

Remarque: Un reset faible et un update fort permettent d’avoirdes effets à long terme.

Page 25: Architectures de réseaux de neurones

Graphe de l’architecture

ht−1

xt

rt

zt

ht

ht

Wxz

Whz

Wxr

Whr Whh

Wxh

Page 26: Architectures de réseaux de neurones

Generative Adversarial Networks (GAN)

I Introduits par Goodfellow et al. (2014). Réseaux de neuronespour un cadre non supervisé.

I Révolution dans le monde des réseaux de neurones: un réseaupeut servir pour générer des données, pas seulement pour lesanalyser.

I Réseaux constitués de deux sous-réseaux: le générateur et lediscriminant

I Le but est d’entraîner le générateur pour qu’il génère desdonnées que le discriminant ne pourra pas distinguer desdonnées réelles.

Page 27: Architectures de réseaux de neurones

Architecture des GAN

xrand

xobs

xgan

ydisc

Generator

Disc

riminator

Page 28: Architectures de réseaux de neurones

Principe

I Une fonction de perte (typiquement crossentropy) est associéeau vecteur de sortie à deux coordonnées ydisc

I La boucle suivante est répétée un grand nombre de fois (lamise à jour des poids désignant un ou plusieurs pas de ladescente de gradients)

1. Les labels (considérés comme les observations pas lediscriminateur) de xobs sont mis à 1, ceux de xgan sont mis à 0,et seul le discriminateur est mis à jour.

2. Les labels de xobs et de xgan sont mis à 1, les coefficients dudiscriminateur sont gelés, et une mise de tout le réseau estfaite (ce qui revient à ne changer que le générateur).

La sortie finale est xgan.

Page 29: Architectures de réseaux de neurones

Intuition

Etape 2: Mise à jour du générateur Comme la partie aval (lediscriminateur) est commune entre xreal et xgan et figée, et que cesdeux vecteurs ont les mêmes labels, la perte sera d’autant plusfaible que les vecteurs sont semblables.

On entraîne le faux-monnayeur à tromper le policier

Etape 1: Mise à jour du discriminateur On permet audiscriminateur de s’adapter au changement fait par le générateurpour continuer à faire la différence entre les deux vecteurs, ce quiobligera le générateur à s’améliorer au prochain pas.

Le policier s’adapte à la dernière version de la fausse monnaie

Page 30: Architectures de réseaux de neurones

Exemples d’applications

I Transformation d’images (mélanges d’images, ajout oueffacement)

I Jumeau numérique en santé: réseaux réagissant comme desorganes