Architectures de réseaux de neurones
Rappels
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és et de sorties ne sont pas représentés dans cet exposé mais font bien sûr partie des modèles.
Principe des réseaux feed-forward
L’information se propage des neurones d’entrée aux neurones de sortie de la façon suivante:
1. Chaque neurone de la couche k résume les messages qu’il reç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 auxquels il est connecté.
Exemple d’architecture feed-forward
I On choisit la fonction d’activation RELU(x) =max(0,x) sur les neurones internes de
X1
X2
U1
U2
U3
V1
V2 Y w11
w12
w13
w14
w21
w22
w23
w24
w31
w32
I
y(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)
Phase d’apprentissage: Fonction de perte
On cherche la valeur des paramètres qui minimisent une fonction de perte sur l’ensemble d’apprentissage, par exemple
L(w) =X
i
(ˆyi(w)−yi)2 ou
L(w) =−X
i
yilog ˆyi(w) (pour la classification)
où ˆyi(w) désigne la prédiction pour l’individui etyi la vraie valeur.
Phase d’apprentissage: Algorithme de la descente de gradient
I On considère une fonction f à une ou plusieurs variables x1, . . . ,xk qu’on cherche à minimiser.
I Le gradient de f enx= (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 taux
d’accroissement.
Descente de gradient
Algorithme 1. On fixe >0.
2. Tant quek∇f(x)k>
xk+1=xk −αk∇f(x)
I Plusieurs choix de la suite αk sont possibles. Des valeurs trop grandes donnent un algorithme oscillant, des valeurs trop faibles une convergence trop lente.
I Principaux avantages: simplicité et efficacité, la solution est exacte si la fonction à optimiser est convexe.
I Principal inconvénient: le minimum atteint n’est à priori que local.
Cas des réseaux de neurones
SiL(x) =L(h1(x), . . . ,hn(x)),
∂L
∂x =
n
X
j=1
∂L
∂hj
∂hj
∂x
I La structure en couche des réseaux de neurones permet alors de calculer le gradient suivant les paramètres et variables de chaque couche uniquement en fonction de la couche suivante (cf TD5). On parle debackpropagation.
I La formule liant le gradient d’intérêt à celle de la couche suivante ne dépend que de l’architecture locale entre les deux couches: pas besoin de refaire toutes les maths à chaque fois.
Descente de gradient: gestion des données
Des variations sur la direction de la descente sont généralement utilisées, en particulier un algorithme de descente partielle:
I les données sont partitionnées en batchs et on utilise qu’un batch à 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 on recommence
I la détermination du nombre de pas se fait en général en précisant la taille des batchs et le nombre d’époques
Remarques
I Les réseaux de neurones sont sur-paramétrés: les minimaux locaux sont nombreux. La prédiction est bonne si l’ensemble d’apprentissage est grand (erreur petite) mais les poids sont difficilement interprétables en tant que tels (d’autres jeux de poids donnent des résultats similaires).
I La prédiction n’est bonne que dans les zones où il y avait des données d’apprentissage.
Convolutional Neural Networks (CNN)
Traitement d’images
Les données d’entrée peuvent être très grandes (une image contient des 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 sont fréquemment utilisées en traitiment d’images: la convolution et le pooling
Convolution
I on applique un filtre de petite taille à chaque pixel d’une matrice de données. Par exemple, convoler avec le filtre
1 5
0 1 0 1 1 1 0 1 0
revient à remplacer chaque pixel avec sa moyenne avec les quatres pixels directement adjacents.
I rdv sur le site suivant pour des exemples de filtre et la visualisation de leurs effets:
https://setosa.io/ev/image-kernels/
Convolution
I la convolution revient à ajouter une couche à un réseau de neurones, telle que
1. 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: on passe d’une couchen×mà une autre couchen×mavec seulementr2paramè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 la
nouvelle matrice (en ajoutant une couronne de 0 par exemple)
Convolution
I En image couleur, on n’a pas une seule matrice d’entrée, mais 3 (RVB). On parle donc aussi deprofondeur des données.
I Plusieurs noyaux de convolution sont autorisés en parallèle: si on laisse le réseau apprendre N filtres, qui s’appliquent chacun sur chacune des p tranches de la couche précédente, on obtient à la couche suivante des données de profondeurNp.
Exemple: si la première couche appliquée au jeu d’entrée (une image couleur de taillen×m) est composée de 5 filtres, les variables après la première couche sont de taille n×m×15.
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 une fonction de pooling: max (le plus fréquent), moyenne, . . . Exemple de max-pooling
4 2 −4 −1
0 −1 −6 0
0 3 2 6
−4 1 −1 −6
−→ 4 0 3 6
!
Exemple
I Réseau convolutionnel de classification d’images de Symonian et Zisserman (2014).
Exemples d’applications
I Classification d’images, par exemple à des fins médicales I Reconnaissance de formes (imagerie médicale, voiture
autonome, imagerie satellitaire . . . )
Recurrent Neural Networks (RNN) et (LTSM)
Traitement du langage
Comment 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 milliers de mots, la dernière occurence de Marie est beaucoup trop lointaine.
Réseaux récurrents
I On considère une cellule qui se répète et où yt (par exemple le mot suivant) dépend d’un ensemble de neurones cachés, eux-mêmes dépendant xt (par exemple le dernier mot) et des neurones cachés du temps précédent.
ht−1 ht ht+1
xt−1 xt xt+1
yt−1 yt yt+1
Whh Whh Whh Whh
Wxh Why
Wxh Why
Wxh Why
Réseaux récurrents
I Les matrices de poids W entre les couches cachées, les offsets et les fonctions d’activation sontinvariantes
I On représente par conséquent parfois ces réseaux sous une forme plus compacte
x Wxh h Why y
Whh
Vanishing gradients
La formule des gradients donne
∂yˆt
∂W =X
i≤n
∂yˆt
∂ht
∂ht
∂hi
∂hi
∂W
et
∂yˆt
∂xi = ∂yˆt
∂ht
∂ht
∂hi
∂hi
∂xi Or ∂h∂ht
i contient t−i fois le produit par la matrice W, ce qui entraîne:
I soit l’explosion du gradient (qui peut être maîtrisée en le normalisant)
I soit sa diminution rapide vers 0, entraînant une portée relativement faible du motxi sur les prévisions suivantes
Long Short Term Memories (LSTM) networks
Complexification de l’architecture des RNN en introduisant deux probabilités (σ désigne la fonction logistique ou sigmoïde 1+e1−x):
I update gate:
zt =σ(Wxzxt+Whzht−1) I reset gate:
rt=σ(Wxrxt+Whrht−1)
Long Short Term Memories (LSTM) networks
La définition deht en fonction deht−1 et xt se fait alors en deux temps (∗ 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 proportion dépendant de l’update gate
ht=zt∗ht−1+ (1−zt)∗˜ht
Remarque: Un reset faible et un update fort permettent d’avoir des effets à long terme.
Graphe de l’architecture
ht−1
xt rt
zt
˜ht
ht Wxz
Whz
Wxr Whr Whh
Wxh
Generative Adversarial Networks (GAN)
I Introduits par Goodfellow et al. (2014). Réseaux de neurones pour un cadre non supervisé.
I Révolution dans le monde des réseaux de neurones: un réseau peut servir pour générer des données, pas seulement pour les analyser.
I Réseaux constitués de deux sous-réseaux: le générateur et le discriminant
I Le but est d’entraîner le générateur pour qu’il génère des données que le discriminant ne pourra pas distinguer des données réelles.
Architecture des GAN
xrand
xobs
xgan
ydisc
Generator Discriminator
Principe
I Une fonction de perte (typiquement crossentropy) est associée au vecteur de sortie à deux coordonnées ydisc
I La boucle suivante est répétée un grand nombre de fois (la mise à jour des poids désignant un ou plusieurs pas de la descente de gradients)
1. Les labels (considérés comme les observations pas le
discriminateur) 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 du discriminateur sont gelés, et une mise de tout le réseau est faite (ce qui revient à ne changer que le générateur).
La sortie finale estxgan.
Intuition
Etape 2: Mise à jour du générateurComme la partie aval (le discriminateur) est commune entrexreal et xgan et figée, et que ces deux vecteurs ont les mêmes labels, la perte sera d’autant plus faible que les vecteurs sont semblables.
On entraîne le faux-monnayeur à tromper le policier Etape 1: Mise à jour du discriminateurOn permet au discriminateur de s’adapter au changement fait par le générateur pour continuer à faire la différence entre les deux vecteurs, ce qui obligera le générateur à s’améliorer au prochain pas.
Le policier s’adapte à la dernière version de la fausse monnaie
Exemples d’applications
I Transformation d’images (mélanges d’images, ajout ou effacement)
I Jumeau numérique en santé: réseaux réagissant comme des organes