• Aucun résultat trouvé

Architectures de réseaux de neurones

N/A
N/A
Protected

Academic year: 2022

Partager "Architectures de réseaux de neurones"

Copied!
30
0
0

Texte intégral

(1)

Architectures de réseaux de neurones

(2)

Rappels

(3)

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.

(4)

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

(5)

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)

(6)

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.

(7)

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.

(8)

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.

(9)

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.

(10)

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

(11)

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.

(12)

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

(13)

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/

(14)

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)

(15)

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.

(16)

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

!

(17)

Exemple

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

(18)

Exemples d’applications

I Classification d’images, par exemple à des fins médicales I Reconnaissance de formes (imagerie médicale, voiture

autonome, imagerie satellitaire . . . )

(19)

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.

(20)

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

(21)

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

(22)

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 ti 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

(23)

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)

(24)

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+rtWhhht−1)

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

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

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

(25)

Graphe de l’architecture

ht−1

xt rt

zt

˜ht

ht Wxz

Whz

Wxr Whr Whh

Wxh

(26)

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.

(27)

Architecture des GAN

xrand

xobs

xgan

ydisc

Generator Discriminator

(28)

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.

(29)

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

(30)

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

Références

Documents relatifs

[r]

Le théorème de Pythagore affirme que la somme des carrés des côtés de l’angle droit d’un triangle rectangle est égale au carré de l’hypoténuse.. Or, le carré d’un

1) Soit deux

[r]

Deux polynˆ omes de C [X] n’ayant aucune racine complexe commune sont premiers entre eux.. Deux polynˆ omes de R [X] n’ayant aucune racine r´ eelle commune sont premiers

L’auteur de l’énoncé du problème A1707 récidive avec une nouvelle proposition de problème qui contient trois taches rendant illisibles trois caractères d’une

Soit Ω une partie d'un plan vectoriel réel convexe et symétrique par rapport à l'origine... pas de correction pour

On note X n la variable aléatoire égale au nombre de tirages nécessaires pour l’obtention de la boule numéro 1.. On note Y n la variable aléatoire égale à la somme des numéros