0% ont trouvé ce document utile (0 vote)
39 vues79 pages

Introduction aux Réseaux de Neurones

Le document présente une vue d'ensemble des réseaux de neurones artificiels, une branche du machine learning qui a connu une renaissance grâce à des avancées technologiques. Il aborde les applications clés, les modèles de neurones, les architectures neuronales, ainsi que les méthodes d'apprentissage, notamment la rétropropagation du gradient. Enfin, il discute des fonctions d'activation et des formulations pour la régression et la classification.
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
39 vues79 pages

Introduction aux Réseaux de Neurones

Le document présente une vue d'ensemble des réseaux de neurones artificiels, une branche du machine learning qui a connu une renaissance grâce à des avancées technologiques. Il aborde les applications clés, les modèles de neurones, les architectures neuronales, ainsi que les méthodes d'apprentissage, notamment la rétropropagation du gradient. Enfin, il discute des fonctions d'activation et des formulations pour la régression et la classification.
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Réseaux de Neurones Artificiels

Machine Learning

Cédric RICHARD
Université Côte d’Azur
Réseaux de neurones artificiels
L’ère de l’IA

DEEP LEARNING
REINFORCEMENT LEARNING

c
!Patrick Perez ([Link])

1
Réseaux de neurones artificiels
L’ère de l’IA

c
!TheScientist

2
Réseaux de neurones artificiels
Apprentissage profond en quelques mots

Branche du Machine Learning


⊲ datant des années 40
⊲ ayant survécu à deux (longs) hivers
Renaissance spectaculaire en 2006-2012 grâce à la disponibilité
⊲ de grandes puissances de calcul (GPU)
⊲ d’importantes quantités de données (internet)
⊲ de nouvelles architectures profondes et d’algorithmes plus performants
Apprend des représentations complexes :
⊲ à partir de données
⊲ par des séquences de transformations non-linéaires
⊲ agnostique

3
Réseaux de neurones artificiels
Applications clés

Reconnaissance des formes


⊲ reconnaissance optique de caractères (OCR)
⊲ reconnaissance automatique de la parole (ASR)
⊲ traitement du langage naturel (NLP)
⊲ compréhension d’images
Prédiction, décision et contrôle
⊲ véhicules autonomes
⊲ robotique
⊲ systèmes complexes
Traitement de l’information :
⊲ amélioration du rapport signal sur bruit
⊲ hors ligne ou en ligne

4
Réseaux de neurones artificiels
Machine Learning

A partir de données d’apprentissage, sans information a priori


⊲ apprentissage en vue de tâches de prédiction (usuel. supervisé)
⊲ apprentissage en vue d’extraire des structures (éventuel. non-supervisé)

x machine* ŷ

données symboliques données symboliques


données quantitatives données quantitatives

* programme avec paramètres ou/et représentation interne

5
Réseaux de neurones artificiels
Exemples en traitement d’images

object detection object segmentation instance segmentation

⊲ détection d’objet : catégoriser des objects et les repérer avec une boîte
⊲ segmentation d’objet : identification des pixels appartenant à un objet
⊲ segmentation d’instance : différencier les objets d’une même classe

6
Réseaux de neurones artificiels
Exemples en traitement d’images

x machine ŷ

image carte de profondeur

7
Réseaux de neurones artificiels
Exemples en traitement d’images

x machine ŷ

8
Réseaux de neurones artificiels
Exemples en traitement audio

x machine ŷ
• classification audio

• relevé d’empreintes audio

• marquage automatique

• segmentation audio

• séparation de sources audio


• suivi du rythme

• recommandation musicale

• recherche de signaux audio

• transcription de musique

• detection d’apparition

9
Réseaux de neurones artificiels
Traitement automatique du langage

x machine ŷ

• classification de texte

• modélisation linguistique

Mourante, elle vous sera comptée comme le froment. Sombre comme une • reconnaissance de la parole
figure de femme, portant une lance et une épée. Maintenues par la
peur, il prit l’usage des sondes, ce fut elle encore qui le soutint, • génération de légendes
pendant plusieurs années, mais peu honorable. Enchanté est-il d’entrer
en scène. Nouvelles promesses de l’autre un cadenas. • traduction automatique
• synthèses de documents

• systèmes de question-réponse

10
Réseaux de neurones artificiels
Modèle

De nombreuses méthodes de Machine Learning sont inspirées de la biologie


Notre cerveau dispose de 1011 neurones, chacun est connecté à 104 neurones

influx nerveux

dendrites branches d’axone

axone synapse
nucléus

influx nerveux
corps cellulaire

11
Réseaux de neurones artificiels
Modèle de neurone

Chaque neurone artificiel calcule une sortie à partir de ses entrées


Les opérations mises en œuvre sont
⊲ combinaison linéaire des entrées
⊲ application d’une fonction d’activation

x1 w1 synapse
axone w1 x 1

dendrite corps ! #
"
cellulaire σ wi x i + w0
i
w2 x 2 !
x2 wi x i + w0 σ(·)
i fonction axone
d’activation
w3 x 3

x3
w0
biais

12
Réseaux de neurones artificiels
Fonctions d’activation

Les fonctions d’activation principalement utilisées sont :

sigmoı̈de tangente hyperbolique rectified linear unit (ReLU)


1 1 5

0.9 0.8 4.5

0.8 0.6 4

0.7 0.4 3.5

0.6 0.2 3

0.5 0 2.5

0.4 -0.2 2

0.3 -0.4 1.5

0.2 -0.6 1

0.1 -0.8 0.5

0 -1 0
-5 -4 -3 -2 -1 0 1 2 3 4 5 -5 -4 -3 -2 -1 0 1 2 3 4 5 -5 -4 -3 -2 -1 0 1 2 3 4 5

1 exp(a) − exp(−a)
σ(a) = σ(a) = σ(a) = max{0, a}
1 + exp(−a) exp(a) + exp(−a)

13
Réseaux de neurones artificiels
Architecture neuronale

entrée
couche ℓ couche ℓ + 1
! "# $ ! "# $

xℓ

xℓ−1

xℓ = σ(Wℓ xℓ−1 + wℓ0 )

14
Réseaux de neurones artificiels
Représentation simplifié

shallow deep very deep


1 10 100

couche ℓ − 1 couche ℓ

15
Réseaux de neurones artificiels
Perceptron multicouche

Réseau de neurones à 2 couches (par convention) :


⊲ une couche cachée à 6 neurones
⊲ une couche de sortie à 2 neurones
La couche d’entrée n’est pas comptée

couche d’entrée couche de sortie

couche cachée

16
Réseaux de neurones artificiels
Perceptron multicouche

Réseau de neurones à L couches (par convention) :


⊲ (L − 1) couches cachées
⊲ une couche de sortie
La couche d’entrée n’est pas comptée

couche de sortie
couche d’entrée

couche cachée 1
couche cachée 2

17
Réseaux de neurones artificiels
Perceptron multicouche

La couche d’entrée est le point d’entrée des données


Elle ne dispose pas de fonction d’activation

Chaque couche cachée ℓ est caractérisée par


⊲ une matrice Wℓ de poids à estimer, de taille dim(xℓ ) × dim(xℓ−1 )
notation : nbre de lignes × nbre de colonnes
⊲ une fonction d’activation σ(·)
notation : σ(z) s’entend par σ(zi ) appliqué à chaque composante zi de z

La couche de sortie dispose éventuellement d’une fonction d’activation φ(·),


différente de σ(·), qui dépend du problème à résoudre (régression, classification)

Une fonction objectif à optimiser pour déterminer les matrices Wℓ de poids

18
Réseaux de neurones artificiels
Formulation du perceptron multicouche à L couches

⊲ couche d’entrée : la donnée x est présentée

x0 = x

⊲ pour chaque couche cachée ℓ = 1, . . . , L − 1


z ℓ = Wℓ xℓ−1 + wℓ0
xℓ = σ(z ℓ )

⊲ couche de sortie : la sortie ŷ est obtenue


z L = WL xL−1 + wL0
ŷ = φ(z L )

19
Réseaux de neurones artificiels
Théorème d’approximation universelle

On s’intéresse aux réseaux de neurones feedforward à 1 couche cachée, c’est-à-dire,


aux fonctions f : IRD → IR de la forme
N
X
f (x) = αi σ(w ⊤
i x + wi0 ) (1)
i=1

avec σ : IR → IR une fonction d’activation

Cybenko (1989)
Soit σ : IR → IR continue et sigmoïdale (lim−∞ σ = 0 et lim+∞ σ = 1)
L’ensemble des réseaux de neurones (??) est dense dans C([0, 1]D , IR)

Hornik (1991)
Soit K ⊂ IRD un compact. Soit σ : IR → IR continue, bornée et non-constante
L’ensemble des réseaux de neurones (??) est dense dans C(K, IR)

20
Réseaux de neurones artificiels
Fonction objectif

Soit ŷ = f (x, θ) la sortie du perceptron où :


x : entrée du perceptron
θ : ensemble de tous les paramètres W1 , . . . , WL à estimer

Fonction objectif à minimiser :

N
X


θ = arg min J f (xn , θ), y n
θ
n=1

n=1 : base d’apprentissage


A = {(xn , y n )}N
J (ŷ n , y n ) : fonction de perte (loss function) pour la paire (ŷ n , y n )

21
Réseaux de neurones artificiels
Régression

Fonction de perte
Comme pour la régression linéaire, on utilise généralement l’écart quadratique :

J (ŷ, y) = kŷ − yk2

Couche de sortie
Comme fonction d’activation φ(·), on utilise généralement l’application identité :

φ(x) = x

Ceci signifie qu’aucune non-linéarité n’est appliquée en sortie, après la dernière


combinaison linéaire WL xL−1

22
Réseaux de neurones artificiels
Classification à C classes ω1 , . . . , ωC

Fonction de perte
Comme pour la régression logistique, on utilise généralement l’entropie croisée :
C
X
J (ŷ, y) = − yi log ŷi
i=1

où yi (resp., ŷi ) désigne la ie composante de y (resp., ŷ)

Couche de sortie
Puisque l’entropie croisée opère sur des distributions de probabilité, la fonction
d’activation φ(·) de la couche de sortie doit faire en sorte que y en soit une
La fonction d’activation φ(·) est généralement la fonction softmax multidim. :
exp xi
φi (x) = PC , ∀i = 1, . . . , C
j=1 exp xj

23
Réseaux de neurones artificiels
Classification à C classes ω1 , . . . , ωC

Codage des étiquettes


En accord avec les choix précédents, pour chaque donnée x de l’ensemble
d’apprentissage, on définit son étiquette y ∈ IRC par la fonction indicatrice :
yi = 1 si x ∈ ωi , et yj = 0 ∀j 6= i

Avec ce codage, la fonction de perte (entropie croisée) se ramène à

J (ŷ, y) = − log ŷi pour x ∈ ωi

où ŷi désigne la ie composante de ŷ

24
Réseaux de neurones artificiels
Apprentissage supervisé

Données d’apprentissage : base d’exemples annotés (chien, chat, ...)

( )(
, “chien” )(
, “chien” )(
, “chat” ) ...
, “ara”

Apprentissage : choix des matrices Wℓ par minimisation d’une fonction objectif

“chien”

compare
x0 x1 ... xL−1 “chat”

∆W1 ∆W2
. . . ∆WL−1 ∆WL

25
Réseaux de neurones artificiels
Apprentissage par rétropropagation du gradient

Fonction objectif à minimiser :

N
X


θ = arg min J f (xn , θ), y n
θ
n=1

Afin de résoudre ce problème, une méthode de descente de gradient stochastique


doit être mise en œuvre car il n’existe pas de solution analytique.

L’algorithme de rétropropagation du gradient (backprop), de Rumelhart (1988),


joue un rôle central en Deep Learning.
Il permet d’estimer le gradient de la fonction objectif en tout point θ.

26
Réseaux de neurones artificiels
Gradient

Le gradient d’une fonction réelle J (θ) de D variables réelles, différentiable en un


point θ o , caractérise la variabilité de la fonction au voisinage de ce point
Dans un système de coordonnées cartésiennes, il est défini par
 ⊤
∂J ∂J
∇J = ,...,
∂θ1 ∂θD

z
z = J(θ)

θ2
! "
θ1
θ o θ=
θ2
θ1 courbe de niveau
∇J(θ o )

27
Réseaux de neurones artificiels
Gradient

Par la formule de Taylor-Young au point θ o , on a l’approximation linéaire suivante

J (θo + h) = J (θ o ) + h⊤ ∇J (θo ) + o(khk)

Donc, l’accroissement de J (θ) en θ o dans la direction h avec khk = 1 vérifie

h⊤ ∇J (θo ) ≤ khk · k∇J (θo )k = k∇J (θo )k

En posant h = ∇J (θo )/k∇J (θo )k, on obtient

h⊤ ∇J (θo ) = k∇J (θo )k

On en déduit que ∇J (θo ) est la direction de plus grande pente montante


De même on montre que −∇J (θo ) est celle de plus grande pente descendante

28
Réseaux de neurones artificiels
Gradient

Dans un repère orthonormé, ∇J (θo ) pointe dans la direction où la fonction J (θ)


croît le plus rapidement en θ o , et k∇J (θo )k est son coefficient d’accroissement

J(θ)

θ2 θ1

29
Réseaux de neurones artificiels
Descente de gradient

Soit θ o un point initial, et µ > 0 un pas d’apprentissage

Par la formule de Taylor-Young en θ = θ o − µ∇J (θo ), on a

J (θ) − J (θo ) = −µk∇J (θo )k2 + o(α)

En conséquence, si ∇J (θo ) 6= 0 et µ suffisamment petit, alors

J (θ) < J (θo )

ce qui signifie que θ est une amélioration par rapport à θ o au sens du critère J (θ)
lorsque l’on souhaite minimiser celui-ci

30
Réseaux de neurones artificiels
Algorithme de descente du gradient

Soit un problème de la forme

θ ∗ = arg min J (θ)


θ

où J (θ) est une fonction objectif différentiable.


Si la condition d’optimalité ∇J (θ) = 0 n’admet pas de solution analytique, il est
nécessaire de recourir à une méthode numérique.

Algorithme du gradient :
Choisir un point initial θ (0) , un seuil ǫ, et un pas d’apprentissage µ > 0
Itérer les étapes suivantes à partir de k = 0
1. Calculer ∇J (θ(k) )
2. Test d’arrêt (exemple) : si k∇J (θ(k) )k < ǫ, arrêt
3. Nouvel itéré : θ (k+1) = θ (k) − µ∇J (θ(k) )

31
Réseaux de neurones artificiels
Tests d’arrêt

La condition nécessaire d’optimalité k∇J (θ(k) )k = 0 n’a pas d’intérêt pratique

En pratique, on préconise

⊲ Condition sur le gradient : k∇J (θ(k) )k < ǫ

⊲ Conditions sur la fonction objectif : |J (θ(k) ) − J (θ(k−1) )| < ε


ou encore
|J (θ(k) ) − J (θ(k−1) )|
(k−1)

J (θ )
⊲ Conditions sur les itérés : kθ(k) − θ (k−1) k < ε
ou encore
kθ (k) − θ (k−1) k
(k−1)

kθ k
⊲ On peut remplacer les dénominateurs "×" ci-dessus par max{1, ×}

32
Réseaux de neurones artificiels
Choix du pas d’apprentissage µ

Choix d’un petit pas µ


⊲ avantage : convergence assurée, le long de la ligne de plus grande pente
⊲ inconvénient : convergence lente

Choix d’un grand pas µ


⊲ avantage : convergence rapide, en peu d’itérations
⊲ inconvénient : risque important de divergence de l’algorithme

En pratique
1
⊲ pas fixe lorsque la fonction objectif est L-Lipschitz (µ < L)
⊲ pas variable par recherche linéaire

33
Réseaux de neurones artificiels
Choix du pas d’apprentissage µ

µ = 0.01 µ = 0.1 µ = 0.2


5 5 5

4.5 4.5 4.5

4 4 4

3.5 3.5 3.5

3 3 3

2.5 2.5 2.5

2 2 2

1.5 1.5 1.5

1 1 1

0.5 0.5 0.5

0 0 0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

µ = 0.3 µ = 0.5 µ = 0.75


5 5 5

4.5 4.5 4.5

4 4 4

3.5 3.5 3.5

3 3 3

2.5 2.5 2.5

2 2 2

1.5 1.5 1.5

1 1 1

0.5 0.5 0.5

0 0 0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

itermax = 10

34
Réseaux de neurones artificiels
Choix du pas d’apprentissage µ

itermax = 10K, µ = 10−3

Cas pathologique : fonction de Rosenbrock

35
Réseaux de neurones artificiels
Algorithme de descente du gradient : optimums locaux

36
Réseaux de neurones artificiels
Algorithme de descente du gradient : optimums locaux

37
Réseaux de neurones artificiels
Algorithme de descente du gradient : optimums locaux

38
Réseaux de neurones artificiels
Apprentissage de réseau de neurones

Descente de gradient : suit la direction de plus grande pente en chaque point


N
(k+1) (k) µ X 
θ =θ − ∇θ J f (xn , θ (k) ), y n
N n=1

Descente de gradient stochastique (SGD : stochastic gradient descent) :


estime le gradient à partir de la donnée d’apprentissage courante
(k+1) (k) (k)

θ = θ − µ∇θ J f (xnk , θ ), y nk

Descente de gradient stochastique mini-batch : estime le gradient à partir


d’un sous-ensemble Bk de données d’apprentissage
(k+1) (k) µ X (k)

θ =θ − ∇θ J f (xn , θ ), y n
|Bk |
n∈Bk

39
Réseaux de neurones artificiels
Algorithme général

Époque e : passe complète de l’ensemble d’apprentissage


Pas d’apprentissage µe : réduit progressivement, e.g., à chaque nouvelle époque e
Mini-batch SGD : traitement d’un sous-ensemble d’apprentissage Bk à la fois

40
Réseaux de neurones artificiels
Algorithme général

Data: base d’apprentissage A


Résultat: poids du réseaux de neurone θ
initialisation aléatoire des poids du réseau (petites valeurs);
pour e = 1 à E faire
mettre à jour µe ;
mélanger la base d’apprentissage;
diviser en sous-ensemble Bk (mini-batches);
pour k = 1 à K faire
mettre à jour les poids :
(k+1) (k) µe X 
θ =θ − ∇θ J f (xn , θ (k) ), y n
|Bk |
n∈Bk

fin
fin

41
Réseaux de neurones artificiels
Principe de la rétropropagation du gradient

⊲ Définition séquentielle de la fonction d’apprentissage


y
x0 ≡ x

x x0 W1 x1 W2 ... xL−1 WL ŷ J(· , ·)

ŷ = fL ◦ fL−1 ◦ . . . ◦ f1 (x) = f (x; W1 , . . . , WL )


| {z }
θ
⊲ Dépendance à rebours (backward) des paramètres

ŷ = Fun(xℓ−1 , Wℓ , Wℓ+1 , . . . , WL ), ℓ = 1, . . . , L − 1

⊲ Rétropropagation du gradient : calcul à rebours du gradient WL −→ W1

42
Réseaux de neurones artificiels
Calcul du gradient : cas d’un réseau à 1 couche

xi !
z = Wx
ŷj
ŷ = φ(z)

couche d’entrée couche de sortie

43
Réseaux de neurones artificiels
Calcul du gradient : cas d’un réseau à 1 couche

z ŷ
!
φ z = Wx
xi wji ŷ = φ(z)
zj ŷj
φ
∂J ∂J ∂zj
φ = ·
∂wji ∂zj ∂wji

! "# $

couche d’entrée couche de sortie

44
Réseaux de neurones artificiels
Calcul du gradient : cas d’un réseau à 1 couche

z ŷ
!
φ z = Wx
xi wji ŷ = φ(z)
zj ŷj
φ
δjz
∂J ∂J ∂zj ∂zj
φ = · = δjz ·
∂wji ∂zj ∂wji ∂wji

! "# $

couche d’entrée couche de sortie

45
Réseaux de neurones artificiels
Calcul du gradient : cas d’un réseau à 1 couche

z ŷ
!
φ z = Wx
xi wji ŷ = φ(z)
zj ŷj
φ
δjz
∂J ∂zj
φ = δjz · = δjz · xi
∂wji ∂wji

! "# $

couche d’entrée couche de sortie

46
Réseaux de neurones artificiels
Calcul du gradient : cas d’un réseau à 1 couche

∂J
Le résultat précédent, ∂wji = δjz xi , permet de réécrire le gradient recherché sous
forme matricielle :
∇W J = δ z x⊤

47
Réseaux de neurones artificiels
Calcul de δjz

Dans le cas général : ŷj = φ(z)

∂J X ∂J ∂ ŷp
δjz , = ·
∂zj p
∂ ŷp ∂zj

Voir l’exemple de la fonction softmax plus loin

En pratique
On trouve surtout ŷj = φ(zj ), en particulier pour les couches cachées. Alors :
∂J ∂ ŷj
δjz = ·
∂ ŷj ∂zj
∂ ŷp
car ∂ ẑj = 0 si p 6= j. En notant ⊙ le produit terme à terme, on écrit

∂J
δ z = φ′ (z) ⊙
∂ ŷ

48
Réseaux de neurones artificiels à 1 couche
Application à la régression

Soit une donnée d’apprentissage (x, y)


Fonction de perte
La fonction de perte pour (x, y), i.e., l’écart quadratique, s’écrit :
1
J (ŷ, y) = kŷ − yk2
2
En conséquence
∂J
= ŷ − y
∂ ŷ

Fonction d’activation
La fonction d’activation de sortie φ, i.e., la fonction identité φ(z) = z, conduit à :

φ′ (z) = 1

49
Réseaux de neurones artificiels à 1 couche
Application à la régression

En combinant les résultats précédents, on obtient :

δ z = ŷ − y

Conclusion
Étant donné un élément de la base d’apprentissage (x, y), on en déduit que le
gradient de J par rapport à W pour le couple entrée-sortie (x, y) est donné par

∇W J = (ŷ − y) x⊤

50
Réseaux de neurones artificiels à 1 couche
Application à la régression

Data: base d’apprentissage A


Résultat: poids W de la couche
initialisation aléatoire de W (petites valeurs);
pour e = 1 à E faire
mettre à jour µe ;
mélanger la base d’apprentissage ; diviser en K mini-batches Bk ;
calculer la sortie estimée ŷ n de chaque donnée (xn , y n ) de Bk ;
pour k = 1 à K faire
mettre à jour les poids :
(k+1) (k) µe X
W =W − (ŷ n − y n ) x⊤
n
|Bk |
n∈Bk

fin
fin

51
Réseaux de neurones artificiels à 1 couche
Application à la classification à C classes ω1 , . . . , ωC

Soit une donnée d’apprentissage x0 ∈ ωi0


Fonction de perte
La fonction de perte pour x0 , i.e., l’entropie croisée, s’écrit :

J (ŷ, y) = − log ŷi0

En conséquence
∂J 1 ∂J
=− si p = i0 , sinon =0
∂ ŷp ŷi0 ∂ ŷp

Fonction d’activation
La fonction d’activation de sortie φ, i.e., la fonction softmax, conduit à :
∂ ŷp ∂ ŷp
= ŷp (1 − ŷp ) si p = j, sinon = −ŷp ŷj
∂zj ∂zj

52
Réseaux de neurones artificiels à 1 couche
Application à la classification à C classes ω1 , . . . , ωC

P ∂J ∂ ŷp
Parce que δjz = p ∂ ŷp · ∂zj , en combinant les résultats précédents, on obtient :

δjz = ŷj − 1 si j = i0 , sinon δjz = ŷj

Puisque yj = 1 si j = i0 , sinon yj = 0, on peut écrire δjz = ŷj − yj , soit

δ z = ŷ − y

Conclusion
Étant donné un élément de la base d’apprentissage x0 ∈ ωi0 , on en déduit que le
gradient de J par rapport à W pour le couple entrée-sortie (x, y) est donné par

∇W J = (ŷ − y) x⊤

53
Réseaux de neurones artificiels à 1 couche
Application à la classification à C classes ω1 , . . . , ωC

Data: base d’apprentissage A


Résultat: poids W de la couche
initialisation aléatoire de W (petites valeurs);
pour e = 1 à E faire
mettre à jour µe ;
mélanger la base d’apprentissage ; diviser en K mini-batches Bk ;
calculer la sortie estimée ŷ n de chaque donnée (xn , y n ) de Bk ;
pour k = 1 à K faire
mettre à jour les poids :
(k+1) (k) µe X
W =W − (ŷ n − y n ) x⊤
n
|Bk |
n∈Bk

fin
fin

54
Réseaux de neurones artificiels
Calcul du gradient : cas d’un réseau à 2 couches

u h

σ
x z ŷ
ui hi
σ
φ
wji
zj ŷj
xm σ φ
δjz δjy
φ
σ

σ ! "# $

! "# $
couche d’entrée couche de sortie
couche cachée

∂J
= δjz · hi
∂wji

55
Réseaux de neurones artificiels
Calcul du gradient : cas d’un réseau à 2 couches

u h

σ
x z ŷ
ui hi
σ
δiu δih φ
wji
zj ŷj
xm σ φ
δjz δjy
φ
σ

σ ! "# $

! "# $
couche d’entrée couche de sortie
couche cachée

∂J ! ∂J zj !
= · = δjz · wji ! δih
∂hi j
∂zj ∂hi j

56
Réseaux de neurones artificiels
Calcul du gradient : cas d’un réseau à 2 couches

u h

σ
x z ŷ
ui hi
σ
δiu δih φ
vim zj ŷj
xm σ φ
δjz
φ
σ

σ ! "# $

! "# $
couche d’entrée couche de sortie
couche cachée

∂J ∂J ∂hi ∂ui ∂hi ∂ui ∂ui


= · · = δih · · = δiu ·
∂vim ∂hi ∂ui ∂vim ∂ui ∂vim ∂vim

57
Réseaux de neurones artificiels
Calcul du gradient : cas d’un réseau à 2 couches

u h

σ
x z ŷ
ui hi
σ
δiu δih φ
vim zj ŷj
xm σ φ
δjz δjy
φ
σ

σ ! "# $

! "# $
couche d’entrée couche de sortie
couche cachée

∂J ∂ui
= δiu · = δiu · xm
∂vim ∂vim

58
Réseaux de neurones artificiels
Calcul du gradient : cas d’un réseau à 2 couches

Les résultats précédents permettent d’écrire le gradient recherché par rapport aux
poids V de la couche cachée sous forme matricielle :

∇V J = δ u x⊤
∂J
δ u = σ ′ (u) ⊙
∂h
Les 2 expressions ci-dessus sont identiques à celles d’un réseau à 1 couche

∂J
Seul le calcul de ∂h change, en faisant intervenir le couplage avec la couche
suivante via δ z ainsi
∂J
, δh = U ⊤ δz
∂h

59
Réseaux de neurones artificiels
Calcul du gradient : cas d’un réseau multicouche

En observant que u tient le même rôle que z, et que la sortie h tient le rôle d’entrée
pour la couche suivante, on est en mesure de généraliser l’algorithme à L couches
Calcul du gradient pour chaque couche Wℓ=1,...,L en (xn , y n )
calculer la sortie estimée ŷ n au point (xn , y n ) souhaité;
∂J
δ xL = ;
∂ ŷ
pour ℓ = L à 1 faire

δ zℓ = σ ′ (z ℓ ) ⊙ δ xℓ
δ xℓ−1 = Wℓ⊤ δ zℓ
∇Wℓ J = δ zℓ x⊤
ℓ−1

fin
Remarque : changer σ(·) par φ(·) pour la couche ℓ = L

60
Réseaux de neurones artificiels
Dérivées usuelles

nom fonction dérivée


1
sigmoïde σ(z) = 1+exp(−z) σ(z) · (1 − σ(z))
exp(z)−exp(−z) 1
tanh tanh(z) = exp(z)+exp(−z) cosh2 (z)
ReLU ReLU(z) = max(0, z) 1 si z > 0, sinon 0

61
Réseaux de neurones artificiels
Entrées et/ou sorties structurées

données 2D : réseaux convolutifs séries : réseaux récurrents

62
Réseaux de neurones artificiels
Réseaux de neurones convolutifs

Constat
Pour une image RGB de taille 256 × 256 × 3, chaque neurone de la première couche
cachée connecté à tous les pixels comporterait 2 · 105 poids synaptiques à estimer.
Pour une couche cachée comportant autant de neurones que de pixels, le nombre
total de poids s’élève à : 4 · 1010

Élements de solution
⊲ Prise en compte la corrélation spatiale des images
⊲ Invariance en translation

63
Réseaux de neurones artificiels
Réseaux de neurones convolutifs

CNN : convolutional neural network


MLP : multilayer perceptron (vu précédemment)

Traits distinctifs des CNN par rapport aux MLP


⊲ Utilisation de neurones opérant localement pour en limiter le nombre
⊲ Partage des poids des neurones (convolution)
⊲ Invariance en translation par regroupement (pooling)

64
Réseaux de neurones artificiels
Couches constitutives

Une architecture de réseau de neurones convolutifs est formée par un empilement


de couches de traitement :
⊲ la couche de convolution (CONV)
⊲ la couche d’activation (ReLU)
⊲ la couche de pooling (POOL)
⊲ la couche entièrement connectée (FC), type perceptron
⊲ la couche de sortie

65
Réseaux de neurones artificiels
Couche de convolution

Le volume de la couche de convolution est caractérisée par :


⊲ le nombre de noyaux de convolution, qui définit le nombre d’activation maps
⊲ la taille du champ récepteur de chaque noyau de convolution
⊲ le pas de chevauchement des champs récepteurs
⊲ la marge à 0, ou zero-padding, en frontière du volume d’entrée

66
Réseaux de neurones artificiels
Couche de convolution : noyau ou filtre

noyau
de convolution
parcours
du volume d’entrée

produit de convolution
1 neurone

image d’entrée (RGB) activation map


volume d’entrée 1 couche du volume de sortie

67
Réseaux de neurones artificiels
Couche de convolution : produit de convolution

zero-padding

Activation map
-25
-25

68
Réseaux de neurones artificiels
Couche de convolution : pas de chevauchement

pas de chevauchement = 1

69
Réseaux de neurones artificiels
Couche de convolution : synthèse

entrée activation maps

32 28

Couche de convolution
6 filtres de taille 5x5

32 28

3 6

70
Réseaux de neurones artificiels
Couche de pooling

La couche de pooling (mise en commun) a pour objectif de :


⊲ réduire la taille des représentations
⊲ créer une forme d’invariance en translation

Généralement, l’opérateur de pooling repose sur :


⊲ un masque de taille 2 × 2 ou 4 × 4
⊲ une fonction max (max-pool), parfois sur la moyenne (average-pool)

L’opérateur de pooling opère indépendamment sur chaque activation map

71
Réseaux de neurones artificiels
Couche de pooling

Max-pool
avec un opérateur 2 X 2

224 X 224
112 X 112

pooling

72
Réseaux de neurones artificiels
Réseaux de neurones convolutifs : récapitulatif

f. maps

f. maps
entrée
f. maps
sortie

convolution pooling convolution pooling MLP

73
Réseaux de neurones artificiels
Réseaux de neurones convolutifs : LeNet5 (Le Cun, 1998)

74
Réseaux de neurones artificiels
Réseaux de neurones convolutifs : AlexNet (Krizhevsky et al., 2012)

2012 :
1.2MM images (app.)
50M images (val.)
150M images (test)
1M catégories

75
Réseaux de neurones artificiels
Réseaux de neurones convolutifs : AlexNet (Krizhevsky et al., 2012)

AlexNet Conv1 filters

76
Réseaux de neurones artificiels
Réseaux de neurones convolutifs : VGG (Simonyan et al., 2014)

77
Réseaux de neurones artificiels
Réseaux de neurones convolutifs : ImageNet

78

Vous aimerez peut-être aussi