0% ont trouvé ce document utile (0 vote)
239 vues220 pages

Introduction au Perceptron et Réseaux de Neurones

Ce document décrit l'apprentissage profond et l'algorithme du perceptron. Il présente le fonctionnement d'un réseau de neurones simple avec une couche d'entrée, une couche de sortie et des poids synaptiques. L'algorithme d'apprentissage adapte les poids pour classer correctement les données d'entraînement.

Transféré par

rjiba0ilef
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)
239 vues220 pages

Introduction au Perceptron et Réseaux de Neurones

Ce document décrit l'apprentissage profond et l'algorithme du perceptron. Il présente le fonctionnement d'un réseau de neurones simple avec une couche d'entrée, une couche de sortie et des poids synaptiques. L'algorithme d'apprentissage adapte les poids pour classer correctement les données d'entraînement.

Transféré par

rjiba0ilef
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

Deep Learning

Apprentissage Profond

Dr. Sana Hamdi [Link]@[Link]


2

Introduction
Introduction
• Une approche inspirée du traitement de l'information effectué par le cerveau
• Applications:
 statistiques : analyse de données / prévision / classification
 robotique : contrôle et guidage de robots ou de véhicules autonomes
 imagerie / reconnaissance de formes (images ou signaux)
 traduction automatique,…

Sana Hamdi 3
Modèle inspiré du modèle biologique
• Nous disposons d’une dizaine de milliards de neurones à l'intérieur de notre cerveau
• Les neurones reçoivent des signaux (impulsions électriques) par les dendrites et envoient
l’information par les axones.
• Les contacts entre deux neurones (entre axone et dendrite) se font par l ’intermédiaire des
synapses. dendrites
Élément
d’entrée

Sana Hamdi 4
Le réseau de neurones et la classification
Classificateur linéaire

Sana Hamdi 5
Le réseau de neurones et la classification
Classificateur linéaire et données complexes

Sana Hamdi 6
Le réseau de neurones et la classification
Classificateur linéaire et données complexes

Sana Hamdi 7
Le réseau de neurones et la classification
Non résolu linéairement

Sana Hamdi 8
Le réseau de neurones et la classification
Classificateur non linéaire  limite de décision initiale Apprentissage

Sana Hamdi 9
Le réseau de neurones et la classification
Classificateur non linéaire  limite de décision initiale Apprentissage

Sana Hamdi 10
Le réseau de neurones et la classification
Classificateur non linéaire  limite de décision initiale Apprentissage

Sana Hamdi 11
Architecture du réseau de neurones

Sana Hamdi 12
13

L’algorithme de perceptron
L’algorithme de perceptron
• Le perceptron est le modèle le plus simple de réseaux de neurones
• C’est un classificateur linéaire
• Le perceptron ne possède pas de couches cachées.
 Une couche en entrée et une couche en sortie.

Sana Hamdi 14
L’architecture de perceptron
Couche d’entrée Couche de sortie

biais X0
=1
W0

Entrées:
Descripteurs

Fonction d’activation
Sana Hamdi Poids synaptiques (Heaviside ou signe)
15
L’algorithme de perceptron
1. Mélanger aléatoirement les observations
2. Initialiser aléatoirement les poids synaptiques
3. Faire passer les observations une à une
Calculer l’erreur de prédiction pour l’observation
Mettre à jour les poids synaptiques
4. Jusqu’à convergence du processus

Sana Hamdi 16
L’algorithme de perceptron
• L’algorithme d’apprentissage doit adapter la valeur des paramètres (c’est-à-dire les poids et le
biais) de façon que la sortie prévue fW(X) soit la bonne réponse sur les données d’entraînement.
• Algorithme du Perceptron:
1. Pour chaque paire (Xt, Yt) ⋲ D
a. Calculer fW(Xt)
b. Si Yt ≠ fW(Xt) alors Wi Wi + η(Yt - fW(Xt)) Xt,i ∀i (mise à jour des poids et du biais)
2. Retourner à 1 jusqu’à l’atteinte d’un critère d’arrêt (nb max d’itérations est atteint ou l’erreur = 0)
• La mise à jour des poids est appelée la règle d’apprentissage du perceptron.
•Sana Hamdi
Le multiplicateur η est appelé le taux d’apprentissage.
17
Exemple de classification

R (rouge) G (vert) B (bleu) Classe


255 0 0 ROUGE
248 80 68 ROUGE
0 0 255 BLEU
67 15 210 BLEU

Sana Hamdi 18
Exemple de classification

R (rouge) G (vert) B (bleu) Classe


255 0 0 ROUGE
248 80 68 ROUGE
0 0 255 BLEU
67 15 210 BLEU

Sana Hamdi 19
Exemple de classification
R (rouge) G (vert) B (bleu) Classe

255 0 0 ROUGE

248 80 68 ROUGE

0 0 255 BLEU

67 15 210 BLEU

Sana Hamdi 20
Couche d’entrée
R (rouge) G (vert) B (bleu) Classe

255 0 0 ROUGE

248 80 68 ROUGE

0 0 255 BLEU

67 15 210 BLEU

Sana Hamdi 21
Couche de sortie
R (rouge) G (vert) B (bleu) Classe

255 0 0 ROUGE

248 80 68 ROUGE

0 0 255 BLEU

67 15 210 BLEU

Sana Hamdi 22
Les poids
R (rouge) G (vert) B (bleu) Classe

255 0 0 ROUGE

248 80 68 ROUGE

0 0 255 BLEU

67 15 210 BLEU

Sana Hamdi 23
Les poids
R (rouge) G (vert) B (bleu) Classe

255 0 0 ROUGE

248 80 68 ROUGE

0 0 255 BLEU

67 15 210 BLEU

Sana Hamdi 24
Composants du nœud de la sortie
R (rouge) G (vert) B (bleu) Classe

255 0 0 ROUGE

248 80 68 ROUGE

0 0 255 BLEU

67 15 210 BLEU

Sana Hamdi 25
Composants du nœud de la sortie: somme
pondérée
R (rouge) G (vert) B (bleu) Classe

255 0 0 ROUGE

248 80 68 ROUGE

X1 0 0 255 BLEU

67 15 210 BLEU

X2

𝒎
X3 s= 𝒊 𝑿𝒊𝑾𝒊 Wi = weights
s
s = SOP(Xi, Wi) Xi = inputs
Sana Hamdi 26
Composants du nœud de la sortie: fonction
d’activation
R (rouge) G (vert) B (bleu) Classe

255 0 0 ROUGE

248 80 68 ROUGE

X1 0 0 255 BLEU

67 15 210 BLEU

X2

𝒎
X3 s= 𝒊 𝑿𝒊𝑾𝒊

s s = (𝑿𝟏𝑾𝟏 + 𝑿𝟐𝑾𝟐 + 𝑿𝟑𝑾𝟑)


s = SOP(Xi, Wi)
Sana Hamdi 27
Composants du nœud de la sortie: fonction
d’activation
R (rouge) G (vert) B (bleu) Classe

255 0 0 ROUGE

248 80 68 ROUGE

X1 0 0 255 BLEU

67 15 210 BLEU

X2

X3
s F(s) Mapping (s, Classe)

Sana Hamdi 28
Fonctions d’activation
La fonction linéaire par morceaux La fonction sigmoïde La fonction signe

Sana Hamdi 29
Fonction d’activation
• Quelle fonction d’activation à choisir?

Fonction
Output Classes
d’activation

• Dans notre cas nous avons deux classes (ROUGE et BLEU)


La fonction d’activation à utiliser donne seulement 2 outputs.
La fonction de signe
Sana Hamdi 30
Composants du nœud de la sortie
R (rouge) G (vert) B (bleu) Classe

255 0 0 ROUGE

248 80 68 ROUGE

X1 0 0 255 BLEU

67 15 210 BLEU

X2

X3
s sgn
Sana Hamdi 31
Le biais
R (rouge) G (vert) B (bleu) Classe
X0 255 0 0 ROUGE

248 80 68 ROUGE

X1 0 0 255 BLEU

67 15 210 BLEU

X2 s= 𝒎
𝒊 𝑿𝒊𝑾𝒊 + 𝒃𝒊𝒂𝒊𝒔

X3 s = 𝑿 𝟎 𝑾 𝟎 + 𝑿𝟏 𝑾 𝟏 + 𝑿𝟐 𝑾 𝟐 + 𝑿𝟑 𝑾 𝟑

s = 𝑾 𝟎 + 𝑿𝟏𝑾 𝟏 + 𝑿𝟐𝑾 𝟐 + 𝑿𝟑𝑾 𝟑


Sana Hamdi 32
La classe désirée
X0

X1 0≤η≤1

X2
s = 𝑾 𝟎 + 𝑿𝟏𝑾 𝟏 + 𝑿𝟐𝑾 𝟐 + 𝑿𝟑𝑾 𝟑
X3
−𝟏 𝒔𝒊 𝒍′ 𝒊𝒏𝒔𝒕𝒂𝒏𝒄𝒆 𝒋 𝒂𝒑𝒑𝒂𝒓𝒕𝒊𝒆𝒏𝒕 à 𝑪𝟏(𝑹𝑶𝑼𝑮𝑬)
dj =
+𝟏 𝒔𝒊 𝒍′ 𝒊𝒏𝒔𝒕𝒂𝒏𝒄𝒆 𝒋 𝒂𝒑𝒑𝒂𝒓𝒕𝒊𝒆𝒏𝒕 à 𝑪𝟐(𝑩𝑳𝑬𝑼)
Sana Hamdi 33
L’algorithme de perceptron: étapes
d’apprentissage
1. Initialiser aléatoirement les poids synaptiques

2. Passer les observations une à une

3. Calculer la somme des produits

4. Calculer la réponse de la fonction d’activation

5. Mise à jour des poids


Sana Hamdi 34
Mise à jour des poids
• Si la classe prédite Yj de l’instance j , à l’itération (étape de calcul) n, est
différente de celle désirée dj, alors les poids doivent être mis à jour selon
cette équation:

𝐖𝐢 𝐧 + 𝟏 = 𝐖𝐢 𝐧 +η[d(n)−Y(n)]Xi(n)
Avec
𝐢 = [𝟎, … , 𝒎] et m est le nombre d’entrées (attributs)
Sana Hamdi 35
Taux d’apprentissage
• Le taux d'apprentissage est un hyper-paramètre qui présente la rapidité de la
réponse du réseau aux changements qu’il subisse.
• Il contrôle à quel point nous ajustons les poids de notre réseau en fonction
de la descente du gradient.
• 0≤η≤1

Sana Hamdi 36
Itération 0
• Pour chaque itération, les paramètres du réseau doivent être connus.
• Paramètres à l’itération n = 0:
η=0,001
X(0)=[X0,X1,X2,X3]=[+1, 255, 0, 0]
𝐖 𝟎 = [W0,W1,W2,W3]=[−1, −2, 1, 6.2]
d(0)=−1

Sana Hamdi 37
Itération 0

Sana Hamdi 38
Itération 0

Y(0) = -1
d(0) = -1
Y(0) = d(0)
Poids corrects
Pas de mise à jour

Sana Hamdi 39
Itération 1
• Paramètres à l’itération n = 1:
η=0,001
X(1)=[+1, 248, 80, 68]
𝐖 𝟏 =[−1, −2, 1, 6.2]
d(0)=−1

Sana Hamdi 40
Itération 1

Sana Hamdi 41
Itération 1

Y(0) = +1
d(0) = -1
Y(0) ≠ d(0)
Poids non corrects
Mise à jour des poids

Sana Hamdi 42
Mise à jour des poids pour l’itération2
• Selon cette équation:
𝐖𝐢 𝐧 + 𝟏 = 𝐖𝐢 𝐧 +η[d(n)−Y(n)]Xi(n)
• Avec n =1, on aura:
𝐖 𝟐 = 𝐖 𝟏 +η[d(1)−Y(1)]X(1)
𝐖 𝟐 = [−1, −2, 1, 6.2]+0.001[−1−(+1)][+1, 248, 80, 68]
𝐖 𝟐 = [−1, −2, 1, 6.2]+0.001[−2][+1, 248, 80, 68]
𝐖 𝟐 = [−1, −2, 1, 6.2]+[−0.002][+1, 248, 80, 68]
𝐖 𝟐 = [−1, −2, 1, 6.2]+[−0.002, −0.496, −0.16, −0,136]
𝐖 𝟐 = [−1.002, −2.496, 0.84, 6.064]

Sana Hamdi 43
Itération 2
• Paramètres à l’itération n = 2:
η=0,001
X(2)=[+1, 0, 0, 255]
𝐖 𝟐 = [−1.002, −2.496, 0.84, 6.064]
d(0)=+1

Sana Hamdi 44
Itération 2

Y(0) = +1
d(0) = +1
Poids corrects
Pas de mise à jour

Sana Hamdi 45
Itération 3
• Paramètres à l’itération n = 3:
η=0,001
X(3)=[+1, 67, 15, 210]
𝐖 𝟑 = [−1.002, −2.496, 0.84, 6.064]
d(0)=+1

Sana Hamdi 46
Itération 3

Y(0) = +1
d(0) = +1
Poids corrects
Pas de mise à jour

Sana Hamdi 47
Itération 4
• On n’a pas encore terminé
• On doit entrainer le modèle avec les 2 premières instances en utilisant les nouvelles
valeurs des poids.
• Paramètres à l’itération n = 4:
η=0,001
X(4)=[+1, 255, 0, 0]
𝐖 𝟒 = [−1.002, −2.496, 0.84, 6.064]
d(0)=−1

Sana Hamdi 48
Itération 4

Y(0) = -1
d(0) = -1
Poids corrects
Pas de mise à jour

Sana Hamdi 49
Itération 5
• Paramètres à l’itération n = 5:
η=0,001
X(5)=[+1, 248, 80, 68]
𝐖 𝟓 = [−1.002, −2.496, 0.84, 6.064]
d(0)=−1

Sana Hamdi 50
Itération 5

Y(0) = -1
d(0) = -1
Poids corrects
Pas de mise à jour

Sana Hamdi 51
Prédiction
• Après entraîner notre réseau de neurones avec toutes les entrées en utilisant
les poids mis à jour, on peut conclure que ces poids sont justes pour ce
réseau et ce modèle d’apprentissage.
• Après la phase d’apprentissage, on peut utiliser le modèle pour prédire la
classe d’une nouvelle instance,
• Quelle est la classe (ROUGE ou BLEU) de l’instance :
R=150, G=100, B=180

Sana Hamdi 52
53

Perceptron multicouche
Introduction
• La première version du perceptron était mono-couche
• Non capable de résoudre des problèmes non linéaires
 Perceptron multicouche: Ajouter des couches cachées pour résoudre les
problèmes non linéaires

Sana Hamdi 54
Exemple de classification: problème logique
XOR
• Résolution d’un problème logique de type XOR

A B Classe
1 0 1
0 1 1
0 0 0
1 1 0
Sana Hamdi 55
Exemple de classification: Résolution non
linéaire

A B Classe
1 0 1
0 1 1
0 0 0
1 1 0

Sana Hamdi 56
Exemple de classification: Résolution non
linéaire

A B Classe
1 0 1
0 1 1
0 0 0
1 1 0

Sana Hamdi 57
Exemple de classification: Résolution non
linéaire

A B Classe
1 0 1
0 1 1
0 0 0
1 1 0

Sana Hamdi 58
Exemple de classification: Résolution non
linéaire

A B Classe
1 0 1
0 1 1
0 0 0
1 1 0

Sana Hamdi 59
Exemple de classification: Résolution non
linéaire

A B Classe
1 0 1
0 1 1
0 0 0
1 1 0

Sana Hamdi 60
Exemple de classification: Résolution non
linéaire

A B Classe
1 0 1
0 1 1
0 0 0
1 1 0

Sana Hamdi 61
Exemple de classification: Résolution non
linéaire

A B Classe
1 0 1
0 1 1
0 0 0
1 1 0

Sana Hamdi 62
Exemple de classification

A B Classe
1 0 1
0 1 1
0 0 0
1 1 0

Sana Hamdi 63
Sana Hamdi 64
Exemple de classification

A B Classe
1 0 1
0 1 1
0 0 0
1 1 0

Sana Hamdi 65
Exemple de classification: Architecture

combinaison

Sana Hamdi 66
Exemple de classification: Architecture

Sana Hamdi 67
Exemple de classification: Architecture

Sana Hamdi 68
Exemple de classification: Architecture

Sana Hamdi 69
Exemple de classification: Architecture
Couche d’entrée Couche cachée Couche de sortie

Les neurones d'une couche sont reliés à la totalité des neurones des couches adjacentes,
Sana Hamdi 70
Etapes d’apprentissage
1. Initialiser les poids synaptiques

2. Passer les observations une à une

3. Calculer la somme des produits

4. Calculer la réponse de la fonction d’activation

5. Mise à jour des poids


Sana Hamdi 71
Exemple de classification: Apprentissage

A B Classe
1 0 1
0 1 1
0 0 0
1 1 0

• Pour chaque itération, les paramètres du


réseau doivent être connus.

Sana Hamdi 72
Exemple de classification: Apprentissage
• Paramètres à l’itération n = 0: 1 b1 1
η=0,001
X1 SOP1
b3 biais
X(0)=[1,1,1,X1,X2]=[1,1,1, 1,0]
𝐖 𝟎 = [b1,b2,b3,W1,W2,W3,W4,W5,W6]
SOP3
=[−1.5, −0.5, −0.5, 1,1,1,1,−2, 1]
d(0)=1 A B Classe

résultat elli 1 0 1
X2 SOP2
lezm l modèle 0 1 1
yousellou 0 0 0
1 1 0 1 b2
Sana Hamdi 73
Exemple de classification: Apprentissage
• l’itération n = 0: 1 b1 1
SOP1 = (1*b1+X1*W1+X2*W3)
= -1.5 + 1 + 0 = -0.5 X1 SOP1
b3

SOP2 = (1*b2+X1*W2+X2*W4)
SOP3
= -0.5 + 1 + 0 = 0.5
A B Classe
1 0 1
X2 SOP2
0 1 1
0 0 0
1 1 0 1 b2
Sana Hamdi 74
Exemple de classification: Apprentissage
• l’itération n = 0: 1 b1 1
SOP1 = (1*b1+X1*W1+X2*W3)
= -1.5 + 1 + 0 = -0.5 X1 sop1|0 b3

SOP2 = (1*b2+X1*W2+X2*W4)
SOP3
= -0.5 + 1 + 0 = 0.5

Y1=Y(SOP1)=H(SOP1)=0
X2 sop2|1
Y2=Y(SOP2)=H(SOP2)=1
1 b2
Sana Hamdi 75
Exemple de classification: Apprentissage
• l’itération n = 0: 1 b1 1
SOP1 = (1*b1+X1*W1+X2*W3)
= -1.5 + 1 + 0 = -0.5 X1 0 b3

SOP2 = (1*b2+X1*W2+X2*W4)
SOP3
= -0.5 + 1 + 0 = 0.5

Y1=Y(SOP1)=H(SOP1)=0
X2 1
Y2=Y(SOP2)=H(SOP2)=1
1 b2
Sana Hamdi 76
Exemple de classification: Apprentissage
• l’itération n = 0: 1 b1 1

X1 0 b3
SOP3 = (1*b3+X1*W5+X2*W6)
= (1*-0.5) + (0*-2) + (1*1) = 0.5
sop3

Y = H(SOP3) = 1

X2 1

1 b2
Sana Hamdi 77
Exemple de classification: Apprentissage
• l’itération n = 0: 1 b1 1

X1 0 b3
SOP3 = (1*b3+X1*W5+X2*W6)
= (1*-0.5) + (0*-2) + (1*1) = 0.5
sop3 1
Y = H(SOP3) = 1
Y(0) = 1
X2 1
d(0) = 1
Poids corrects
Pas de mise à jour 1 b2
Sana Hamdi 78
Exemple de classification: Apprentissage
• Paramètres à l’itération n = 1: 1 b1 1
η=0,001
X1 b3
X(1)=[1,1,1,X1,X2]=[1,1,1, 0,1]
𝐖 𝟏 = [b1,b2,b3,W1,W2,W3,W4,W5,W6]
=[−1.5, −0.5, −0.5, 1,1,1,1,−2, 1]
d(1)=1 A B Classe
1 0 1
X2
0 1 1
0 0 0
1 1 0 1 b2
Sana Hamdi 79
Exemple de classification: Apprentissage
• l’itération n = 1: 1 b1 1
SOP1 = (1*b1+X1*W1+X2*W3)
= -1.5 + 0 + 1 = -0.5 X1 SOP1
b3

SOP2 = (1*b2+X1*W2+X2*W4)
SOP3
= -0.5 + 0 + 1 = 0.5
A B Classe
1 0 1
X2 SOP2
0 1 1
0 0 0
1 1 0 1 b2
Sana Hamdi 80
Exemple de classification: Apprentissage
• l’itération n = 1: 1 b1 1
SOP1 = (1*b1+X1*W1+X2*W3)
= -1.5 + 0 + 1 = -0.5 X1 sop1|0 b3

SOP2 = (1*b2+X1*W2+X2*W4)
SOP3
= -0.5 + 0 + 1 = 0.5

Y1=Y(SOP1)=H(SOP1)=0
X2 sop2|1
Y2=Y(SOP2)=H(SOP2)=1
1 b2
Sana Hamdi 81
Exemple de classification: Apprentissage
• l’itération n = 1: 1 b1 1

X1 0 b3
SOP3 = (1*b3+X1*W5+X2*W6)
= (1*-0.5) + (0*-2) + (1*1) = 0.5
sop3 1
Y = H(SOP3) = 1
Y(1) = 1
X2 1
d(1) = 1
Poids corrects
Pas de mise à jour 1 b2
Sana Hamdi 82
Exemple de classification: Apprentissage
• Paramètres à l’itération n = 2: 1 b1 1
η=0,001
X1 SOP1
b3
X(2)=[1,1,1,X1,X2]=[1,1,1, 0,0]
𝐖 𝟐 = [b1,b2,b3,W1,W2,W3,W4,W5,W6]
SOP3
=[−1.5, −0.5, −0.5, 1,1,1,1−2, 1]
d(2)=𝟎 A B Classe
1 0 1
X2 SOP2
0 1 1
0 0 0
1 1 0 1 b2
Sana Hamdi 83
Exemple de classification: Apprentissage
• l’itération n = 2: 1 b1 1
SOP1 = (1*b1+X1*W1+X2*W3)
= -1.5 + 0 + 0 = -1.5 X1 SOP1
b3

SOP2 = (1*b2+X1*W2+X2*W4)
SOP3
= -0.5 + 0 + 0 = -0.5
A B Classe
1 0 1
X2 SOP2
0 1 1
0 0 0
1 1 0 1 b2
Sana Hamdi 84
Exemple de classification: Apprentissage
• l’itération n = 2: 1 b1 1
SOP1 = (1*b1+X1*W1+X2*W3)
= -1.5 + 0 + 0 = -1.5 X1 sop1|0 b3

SOP2 = (1*b2+X1*W2+X2*W4)
SOP3
= -0.5 + 0 + 0 = -0.5

Y1=Y(SOP1)=H(SOP1)=0
X2 sop2|0
Y2=Y(SOP2)=H(SOP2)=0
1 b2
Sana Hamdi 85
Exemple de classification: Apprentissage
• l’itération n = 2: 1 b1 1

X1 0 b3
SOP3 = (1*b3+X1*W5+X2*W6)
= (1*-0.5) + (0*-2) + (0*1) = -0.5
sop3 0
Y = H(SOP3) = 0
Y(2) = 0
X2 0
d(2) = 0
Poids corrects
Pas de mise à jour 1 b2
Sana Hamdi 86
Exemple de classification: Apprentissage
• Paramètres à l’itération n = 3: 1 b1 1
η=0,001
X1 SOP1
b3
X(3)=[1,1,1,X1,X2]=[1,1,1, 1,1]
𝐖 𝟑 = [b1,b2,b3,W1,W2,W3,W4,W5,W6]
SOP3
=[−1.5, −0.5, −0.5, 1,1,1,1−2, 1]
d(3)=𝟎 A B Classe
1 0 1
X2 SOP2
0 1 1
0 0 0
1 1 0 1 b2
Sana Hamdi 87
Exemple de classification: Apprentissage
• l’itération n = 3: 1 b1 1
SOP1 = (1*b1+X1*W1+X2*W3)
= -1.5 + 1 + 1 = 0.5 X1 SOP1
b3

SOP2 = (1*b2+X1*W2+X2*W4)
SOP3
= -0.5 + 1 + 1 = 1.5
A B Classe
1 0 1
X2 SOP2
0 1 1
0 0 0
1 1 0 1 b2
Sana Hamdi 88
Exemple de classification: Apprentissage
• l’itération n = 3: 1 b1 1
SOP1 = (1*b1+X1*W1+X2*W3)
= -1.5 + 1 + 1 = 0.5 X1 sop1|1 b3

SOP2 = (1*b2+X1*W2+X2*W4)
SOP3
= -0.5 + 1 + 1 = 1.5

Y1=Y(SOP1)=H(SOP1)=1
X2 sop2|1
Y2=Y(SOP2)=H(SOP2)=1
1 b2
Sana Hamdi 89
Exemple de classification: Apprentissage
• l’itération n = 3: 1 b1 1

X1 1 b3
SOP3 = (1*b3+X1*W5+X2*W6)
= (1*-0.5) + (1*-2) + (1*1) = -1.5
sop3 0
Y = H(SOP3) = 0
Y(3) = 0
X2 1
d(3) = 0
Poids corrects
Pas de mise à jour 1 b2
Sana Hamdi 90
Exemple de classification: Apprentissage

• Les poids considérés par ce modèle sont:


𝐖=[−1.5, −0.5, −0.5, 1,1,1,1−2, 1]

Sana Hamdi 91
92

Réseaux de neurones profonds


Fonctions Complexes

Sana Hamdi 93
Fonctions Complexes

Sana Hamdi 94
Fonctions Complexes

Sana Hamdi 95
Fonctions Complexes

Sana Hamdi 96
Fonctions Complexes

Sana Hamdi 97
Fonctions Complexes

Sana Hamdi 98
Fonctions Complexes

Sana Hamdi 99
Fonctions Complexes

Sana Hamdi 100


Réseaux de neurones profonds

Sana Hamdi 101


Réseaux de neurones profonds

Sana Hamdi 102


Réseaux de neurones profonds

Sana Hamdi 103


Réseaux de neurones profonds

Sana Hamdi 104


105

La rétro-propagation
Apprendre puis mettre à jour
• L’algorithme de rétro-propagation est utilisé pour mettre à jour les poids
quand ils ne sont pas capables de faire les prédictions correctes.
• Nous devons apprendre le modèle avant la rétro-propagation.

Initialiser les poids Training Prédiction

Mise à jour des


Back-propagation
poids
Sana Hamdi 106
Exemple d’apprentissage

X1 X2 Output
0.1 0.3 0.03

• Les poids initiaux sont:


W1 W2 b
0.5 0.2 1.3

Sana Hamdi 107


Exemple d’apprentissage: Somme des produits

• SOP = S
= X1*W1+X2*W2+1*b
= 0.1*0.5 +0.3*0.2 +1.3
= 1.94

Sana Hamdi 108


Exemple d’apprentissage: Fonction d’activation

• Nous allons utiliser la fonction Sigmoîde comme fonction d’activation:

• En se basant sur le calcul de la SOP, l’output est:


1 1
Output = = = 𝟎. 𝟖𝟕𝟒
1+𝑒 −1.94 1+0.144
Sana Hamdi 109
Fonction d’erreur

• Nous pouvons utiliser la fonction d’erreur quadratique moyenne:


1
𝐸 = (𝐷é𝑠𝑖𝑟é − 𝑝𝑟é𝑑𝑖𝑡)2
2
1 1
• 𝐸= 2
2
(0.03 − 0.874) =
2
∗ 0.713 = 𝟎. 𝟑𝟓𝟕

Sana Hamdi 110


Fonction d’erreur

Prédire l’erreur Minimiser l’erreur

Comment?

Mettre à jour le poids Changer le réseau

𝐖𝐧𝐞𝐰 = 𝐖𝐨ld + η[désiré−prédit]X

Sana Hamdi 111


Pourquoi la rétro-propagation?

𝐖𝐨𝐥d ‼‼ 𝐖new

• Pourquoi les nouveaux poids sont meilleurs que les anciens poids?
• Quelle est l’effet de chaque poids sur la fonction d’erreur?
• Comment augmenter ou diminuer les valeurs des poids affecte la fonction
d’erreur?
𝑳𝒂 𝒓é𝒕𝒓𝒐𝒑𝒓𝒐𝒑𝒂𝒈𝒂𝒕𝒊𝒐𝒏 𝒓é𝒑𝒐𝒏𝒅 à 𝒕𝒐𝒖𝒕𝒆𝒔 𝒄𝒆𝒔 𝒒𝒖𝒆𝒔𝒕𝒊𝒐𝒏𝒔
Sana Hamdi 112
Forward VS Backward

• Forward Entrées et poids SOP Output prédit Erreur prédite

• Backward Erreur prédite Output prédit SOP Entrées et poids

Sana Hamdi 113


Les dérivés
• Soit l’exemple simple suivant: Y=𝑎𝑥 2 + 𝑏
• Comment répondre à cette question: Quel est le changement de Y par
rapport à un petit changement de x?
𝑑𝑦
• La réponse c’est l’utilisation des dérivés: 𝑑𝑥  l’effet d’un petit changement
de x sur Y.

Sana Hamdi 114


Fonction d’erreur et dérivés
𝑑𝐸
• Changement de l’erreur par rapport au changement des poids : 𝑑𝑊 = 𝛻E(w1,w2)
1 2
1 1 2
𝐸 = (𝐷é𝑠𝑖𝑟é − 𝑝𝑟é𝑑𝑖𝑡) = (𝐷é𝑠𝑖𝑟é − )
2 2 1 + 𝑒 −𝑆
1 1
𝐸 = (𝐷é𝑠𝑖𝑟é − )2
2 1 + 𝑒 −(x1∗w1+x2∗w2+b)

Sana Hamdi 115


Descente de gradient
𝑑𝐸
• Objectif: tendre 𝑑𝑊 vers 0: 𝛻E(w1,w2) = 𝛻E (𝑤) = 0
• Etapes: 0. Initialiser 𝑤
𝑑𝐸
𝑑w1
1. Calculer 𝛻𝐸(w1,w2) = 𝑑𝐸
𝑑w2
𝑑𝐸
2. Mettre à jour winew = wiold – η
𝑑wiold
• Jusqu’à 𝛻E (𝑤) = 0

Sana Hamdi 116


Fonction d’erreur et dérivés

Erreur prédite Output prédit SOP poids

1 1
𝐸 = (𝐷é𝑠𝑖𝑟é − 𝑝𝑟é𝑑𝑖𝑡)2 s= x1∗w1+x2∗w2+b w1 et w2
2 1+𝑒 −𝑆

𝑑𝐸 𝑑 1 1
= 𝑑𝑤 ( (𝐷é𝑠𝑖𝑟é − )2 )  Calcul Compliqué Règle de dérivation en chaine
𝑑𝑊 2 1+𝑒 −x1∗w1+x2∗w2+b

Sana Hamdi 117


Règle de dérivation en chaine

Erreur prédite Output prédit SOP poids

1 1
𝐸 = 2 (𝐷é𝑠𝑖𝑟é − 𝑝𝑟é𝑑𝑖𝑡)2 s= x1∗w1+x2∗w2+b w1 et w2
1+𝑒 −𝑆

𝑑𝐸 𝑑𝐸 𝑑𝐸 𝑑𝑝𝑟é𝑑𝑖𝑡 𝑑𝑠 𝑑𝑠
= ∗ ∗
𝑑𝑤1 𝑑𝑤2 𝑑𝑝𝑟é𝑑𝑖𝑡 𝑑𝑠 𝑑𝑊1 𝑑𝑊2

Sana Hamdi 118


Règle de dérivation en chaine

Sana Hamdi 119


Règle de dérivation en chaine

Sana Hamdi 120


Règle de dérivation en chaine

Sana Hamdi 121


Règle de dérivation en chaine

Sana Hamdi 122


Règle de dérivation en chaine

Sana Hamdi 123


Dérivés partielles
• Nous pouvons calculer maintenant les dérivées partielles de E par rapport à
w1 et w2 :

0.028

Sana Hamdi 124


Interprétation
• Deux informations importantes à partir des dérivées calculées:

• Dans notre exemple, les dérivées sont positives, donc pour diminuer l’erreur, on diminue les
poids.
Sana Hamdi 125
Mise à jour des poids
𝒅𝑬
• Les poids doivent être mis à jour comme suit: winew = wiold – η 𝒅w
iold

• Faire la même chose pour b et le mettre à jour,


• Continuer la mise à jour selon les dérivées et réapprendre le modèle jusqu’au avoir une erreur
acceptable (qui tend vers 0)
Sana Hamdi 126
127

La rétro-propagation avec des couches cachées


Sana Hamdi 128
Initialiser les poids Training Prédiction

Mise à jour des


Backpropagation
poids
Sana Hamdi 129
Forward pass: neurones de la couche cachée

Sana Hamdi 130


Forward pass: neurones de la couche cachée

Sana Hamdi 131


Forward pass: neurones de la sortie

Predicted output
Sana Hamdi 132
Forward pass: Erreur de prédiction

Sana Hamdi 133


Forward pass: Erreur de prédiction

Sana Hamdi 134


Dérivées partielles

Sana Hamdi 135


Sana Hamdi 136
Sana Hamdi 137
Sana Hamdi 138
Sana Hamdi 139
Sana Hamdi 140
Sana Hamdi 141
Sana Hamdi 142
Sana Hamdi 143
Sana Hamdi 144
Dérivées partielles de tous les error-weights

Sana Hamdi 145


• Continuer la mise à jour selon les dérivées et réapprendre le modèle jusqu’au avoir une
erreur acceptable (qui tend vers 0)
Sana Hamdi 146
147

La fonction d’erreur pour les réseaux de neurones


Notations
• Les données x(i) sont décrites par les attributs: f1,..., fp, et la classe y(i)
• x(i) = (f1(i) ,..., fp(i))
• Données d’apprentissage: (x(i), y(i)), i=1,...,m tels que x ∈ Rp, y ∈ {0, 1},
• Les poids synaptiques des attributs: w ∈ Rp, b ∈ R
• La somme des produits: z(i) = w x(i) +b
1
• La classe prédite en appliquant la sigmoide: ŷ(i) = σ(z(i) )= 1+𝑒 −z(i)
Sana Hamdi 148
Fonction d’erreur

Ayant {x(1), y(1), x(2), y(2), …, x(m), y(m)}, nous voulons ŷ(i)= y(i)
1 (i)
• La fonction de perte: L(ŷ(i), y )= (ŷ − y(i))2 :
(i)
2
n’est pas très utilisé
maintenant
• Fonction de perte: L(ŷ(i), y(i)) = −(y(i) log(ŷ(i)) +(1−y(i))log(1−ŷ(i)))
1
• Fonction d’erreur: 𝐽 𝑤, 𝑏 = 𝑚
𝑚 (i) (i)
𝑖=1 L(ŷ , y )

Sana Hamdi 149


Fonction d’erreur: explication intuitive
Ayant {x(1), y(2), x(1), y(2), …, x(m), y(m)}, nous voulons ŷ(i)= y(i)
• Fonction de perte: L(ŷ(i), y(i)) = −(y(i) log(ŷ(i)) +(1−y(i))log(1−ŷ(i)))

Sana Hamdi 150


Fonction d’erreur: explication intuitive
Ayant {x(1), y(2), x(1), y(2), …, x(m), y(m)}, nous voulons ŷ(i)= y(i)
• Fonction de perte: L(ŷ(i), y(i)) = −(y(i) log(ŷ(i)) +(1−y(i))log(1−ŷ(i)))
• Si y =1 alors: L(ŷ(i), y(i)) = −( log(ŷ(i))):
on veut que log(ŷ(i)) soit le plus élevé possible c.à.d ŷ(i) le plus élevé possible et
puisque ŷ(i) = σ(z(i) ) alors ŷ(i) ne peut pas dépasser 1

Sana Hamdi 151


Fonction d’erreur: explication intuitive
Ayant {x(1), y(1), x(2), y(2), …, x(m), y(m)}, nous voulons ŷ(i)= y(i)
• Fonction de perte: L(ŷ(i), y(i)) = −(y(i) log(ŷ(i)) +(1−y(i))log(1−ŷ(i)))
• Si y =1 alors: L(ŷ(i), y(i)) = −( log(ŷ(i))):
on veut que log(ŷ(i)) soit le plus élevé possible c.à.d. ŷ(i) le plus élevé possible et puisque
ŷ(i) = σ(z(i)) alors ŷ(i) ne peut pas dépasser 1
• Si y =0 alors L(ŷ(i), y(i)) = −(log(1−ŷ(i))):
on veut que log(1−ŷ(i)) soit le plus élevé possible c.à.d. 1 − ŷ(i) le plus élevé possible et
alors ŷ(i) le plus petit possible et puisque ŷ(i) = σ(z(i)) alors ŷ(i) ne peut pas diminuer de 0
Sana Hamdi 152
Fonction d’erreur: démonstration
• La régression logistique binaire: Chaque donnée en entrée x est associée à un
label y ∈{0, 1}.
• La probabilité a posteriori d’obtenir la modalité 1 de y (respectivement 0)
sachant la valeur prise par x est notée: P(y=1/x) (respectivement P(y=0/x) )
• Nous avons généralement:
- Si y =1 : P(y=1/x) = ŷ
- Si y =0 : P(y=0/x) =𝟏 − ŷ

Sana Hamdi 153


Fonction d’erreur: démonstration
• Nous avons généralement:
- Si y =1 : P(y=1/x) = ŷ
- Si y =0 : P(y=0/x) =𝟏 − ŷ
P(y/x)=ŷy (1−ŷ)1−y

Sana Hamdi 154


Fonction d’erreur: démonstration
• Nous avons généralement:
- Si y =1 : P(y=1/x) = ŷ
- Si y =0 : P(y=0/x) =𝟏 − ŷ
P(y/x)=ŷy (1−ŷ)1−y
• Pour récupérer l’erreur, on utilise la fonction de log
• - log(P(y/x))= −(log(ŷy (1−ŷ)1−y))) = - (log(ŷy) + log((1−ŷ)1−y))
= −(ylog(ŷ) + (1-y)log((1−ŷ)))
Sana Hamdi 155
156

Les fonctions d’activation dans les RN


La fonction Sigmoïde
Sigmoïde prend une entrée et effectue 1

0.5
les opérations suivantes: 0

• Pour la plupart des entrées négatives, sigmoïde transformera l'entrée en un nombre


très proche de 0.
• Pour la plupart des entrées positives, sigmoïde transformera l'entrée en un nombre
très proche de 1.
• Pour les entrées relativement proches de 0, sigmoïde transformera l'entrée en un
certain nombre entre 0 et 1.
Sana Hamdi 157
La fonction Sigmoïde

• Cette valeur peut être interprétée comme une probabilité. Dans une
classification binaire, la fonction d’activation sigmoïde permet alors d’obtenir,
pour une donnée, la probabilité d’appartenir à une classe.
• La fonction Sigmoïde est utilisée en dernière couche d’un réseau de neurones
construit pour effectuer une tâche de classification binaire.

Sana Hamdi 158


La fonction tangente hyperbolique
Notée tanh, sa formule est:

• La fonction tanh permet d’appliquer une normalisation aux valeurs d’entrée.


• Pour la plupart des entrées négatives, tanh transformera l'entrée en un nombre très proche de -1.
• Pour la plupart des entrées positives, tanh transformera l'entrée en un nombre très proche de 1.
• Pour les entrées relativement proches de 0, tanh transformera l'entrée en un certain nombre entre
0 et 1.

Sana Hamdi 159


La fonction tangente hyperbolique

• Si l’entrée est très élevée ou très faible, alors le gradient (la dérivée, la pente)
devient très faible (proche de 0) et cela peut ralentir la descente de
gradient  Problème de disparition de gradient

Sana Hamdi 160


Problème de disparition de gradient

• L’algorithme progresse vers les couches inférieures du réseau, rendant les


gradients de plus en plus petits. La mise à jour donc par descente de gradient
ne modifie que très peu les poids des connexions de la couche inférieure,
empêchant une bonne convergence de l’entrainement vers la solution.
 Utilisation des fonctions d’activation non saturantes.

Sana Hamdi 161


L’unité linéaire rectifiée
La fonction Relu est:

• Pour les entrées négatives, Relu transformera l'entrée en 0.


• Pour les entrées positives, Relu renvoie l’entrée.
• Un désavantage de la fonction ReLU est que sa dérivée devient nulle lorsque l'entrée
est négative ce qui peut empêcher la rétropagation de gradient (Dying ReLU)

Sana Hamdi 162


Problème de Dying ReLU
• La Relu souffre d’un souci : saturation pour les nombres négatifs, ce qui
entraîne la mort de certains neurones, ils arrêtent de produire autre chose que
des 0. Dans certains cas, la moitié des neurones peuvent mourir durant un
entrainement. Il est peu probable qu’il reprenne vie en cours d’entrainement,
rendant le réseau passif. C’est là que les variantes sont utiles puisque leur
principal idée est d’empêcher pour la partie négative d’avoir des gradient
égale à zéro.

Sana Hamdi 163


La fonction Leaky ReLU
• Leaky ReLU est définie par :

• Le paramètre ε est un réel strictement positif et inférieur à 1. La dérivée est


alors égale à ε lorsque z est strictement négatif, ce qui permet de conserver la
mise à jour des poids.

Sana Hamdi 164


L’unité Linéaire Exponentielle

• La fonction ELU est une déclinaison de ReLU.

• ELU se comporte de la même manière que ReLU pour des valeurs d’entrée
positives. Cependant, pour des valeurs d’entrée négatives, ELU donne des
valeurs lisses inférieures à 0.

Sana Hamdi 165


Scaled Exponential Linear Unit
• La fonction SELU est une amélioration de ELU.
• SELU multiplie une variable scale au résultat de la fonction ELU. Cette
opération a été conçue pour favoriser la normalisation des valeurs de sortie.

Sana Hamdi 166


167

Les fonctions de propagation


Fonctions de propagation avant
• Pour la couche l:
- Entrée: a[l-1]
- Sortie: a[l]
a[l] = g[l](Z[l])
Z[l] = W[l] a[l-1]+b[l]

Sana Hamdi 168


Propagation avant
L = #layers = 5 2
3
• Z[1] = W[1] x+b[1] 1
0 4
• a[1] = g[1](Z[1]) 5
• W[1]: (n[1],n[0]): (3, 2)
• x: (2, 1) n[5]=1
• Z[1]: (3, 1): (3, 2) * (2, 1) n[0]=2 n[4]=2
n[1]=3
n[3]=4
• a[1]: (3, 1) n[2]=5

Sana Hamdi 169


Propagation avant
L = #layers = 5 2
3
• Z[2] = W[2] a[1]+b[2] 1
0 4
• a[2] = g[2](Z[2]) 5
• W[2]: (n[2],n[1]): (5, 3)
• a[1]: (3, 1) n[5]=1
• Z[2]: (5, 1): (5, 3) * (3, 1) n[0]=2 n[4]=2
n[1]=3
n[3]=4
• a[2]: (5, 1) n[2]=5

Sana Hamdi 170


Propagation avant
L = #layers = 5 2
3
• Z[3] = W[3] a[2]+b[3] 1
0 4
• a[3] = g[3](Z[3]) 5
• W[3]: (n[3],n[2]): (4, 5)
• a[2]: (5, 1) n[5]=1
• Z[3]: (4, 1): (4, 5) * (5, 1) n[0]=2 n[4]=2
n[1]=3
n[3]=4
• a[3]: (4, 1) n[2]=5

Sana Hamdi 171


Propagation avant
L = #layers = 5 2
3
• Z[4] = W[4] a[3]+b[4] 1
0 4
• a[4] = g[4](Z[4]) 5
• W[4]: (n[4],n[3]): (2, 4)
• a[3]: (4, 1) n[5]=1
• Z[4]: (2, 1): (2, 4) * (4, 1) n[0]=2 n[4]=2
n[1]=3
n[3]=4
• a[4]: (2, 1) n[2]=5

Sana Hamdi 172


Propagation avant
L = #layers = 5 2
3
• Z[5] = W[5] a[4]+b[5] 1
0 4
• a[5] = g[5](Z[5]) 5
• W[5]: ?
• a[4]: (2, 1) n[5]=1
• Z[5]: ? n[0]=2 n[4]=2
n[1]=3
n[3]=4
• a[5]: ? n[2]=5

Sana Hamdi 173


Fonctions de rétro-propagation
• Pour la couche l: w[l], b[l]
- Entrée: da[l] : dL/da[l]
- Sortie: da[l-1], dw[l], db[l] (dL/da[l−1] , dL/dw[l] , dL/db[l] )
dz[l] = da[l] *g’[l](Z[l])
dw[l] = dz[l] a[l-1]
db[l] = dz[l]
da[l-1] = w[l] * dz[l]
dz[l-1] = w[l] * dz[l] *g’[l-1](z[l-1])
- Mise à jour: w[l] = w[l] - η dw[l] , b[l] = b[l] - η db[l]
Sana Hamdi 174
Sommaire de la descente de gradient

#layers = 2
#layers = 2 #samples =m
#samples =1
Sana Hamdi 175
Revue

w[1], b[1] a[1] w[2], b[2] a[2] … … w[l], b[l] a[l] =


a[0]
ŷ
z[1] z[2] … z[l] L(ŷ(i), y(i))
w[1], b[1] w[2], b[2] w[l], b[l]
dz[1] da[1] da[2] … … da[l-1] da[l]
dz[2] dz[l]
= −y/ŷ + (1−y)/(1−ŷ)

dw[1] dw[2] … dw[l]


db[1] db[2] db[l]
Sana Hamdi 176
Revue

Sana Hamdi 177


178

Compromis biais-variance
Sur-apprentissage vs Sous-apprentissage
• Sur-apprentissage (overfitting): quand un modèle a trop appris les
particularités de chacun des exemples fournis en ensemble d’apprentissage. Il
présente alors un taux de succès très important sur les données
d’apprentissage (pouvant atteindre jusqu’à 100%), mais se généralise mal
(performance moins bonnes sur les données de test).
• Sous-apprentissage (underfitting): un algorithme qui n’apprend pas
suffisamment de la phase d’apprentissage et qui manque de relations
pertinentes entre les données en entrée et les sorties prévues (mauvaise
performance sur le training set)
Sana Hamdi 179
Biais vs Variance
• Le biais est l'erreur provenant d’hypothèses erronées dans l'algorithme
d'apprentissage. Un biais élevé peut être lié à un sous-apprentissage.
• La variance est l'erreur due à la sensibilité aux petites fluctuations de l’échantillon
d'apprentissage. Une variance élevée peut entraîner un sur-apprentissage, c'est-à-dire
modéliser le bruit aléatoire des données d'apprentissage plutôt que les sorties
prévues.

Sana Hamdi 180


Compromis biais/variance
• Le principe de compromis entre biais et variance est une des problématiques à
laquelle vous serez confrontés lors de votre travail quotidien !
• En utilisant un modèle comportant une trop grande complexité, dit "à haute
variance", on peut mal capturer le phénomène sous-jacent et devenir trop
dépendant aux données d’apprentissage et aux petites fluctuations aléatoires, non
représentatives du phénomène.
• A contrario, il ne faut pas choisir un modèle trop "simple" qui biaise le résultat et
ne parvient pas à capturer toute la complexité du phénomène.

Sana Hamdi 181


Compromis biais/variance

Sana Hamdi 182


Compromis biais/variance

Biais élevé Variance élevée


• Modéliser un réseau plus grand • Ajout de données supplémentaires
(plus de couches cachés ou plus à l'ensemble d’apprentissage
d'unités cachées) • Régularisation
• Entrainer le modèle plus longtemps • Modifier l’architecture du RN
• Modifier l’architecture du RN

Sana Hamdi 183


184

Réduire le sur-apprentissage
Régularisation
• La régularisation est une technique qui permet de réduire le sur-apprentissage
ou de réduire la variance de notre réseau en pénalisant la complexité.
• L'idée est que certaines complexités de notre modèle peuvent rendre notre
modèle peu susceptible de se généraliser correctement, même si le modèle
correspond aux données d'apprentissage.

Sana Hamdi 185


Régularisation

•  Si nous ajoutons une régularisation à notre modèle, nous échangeons


essentiellement une partie de la capacité de notre modèle à bien s'adapter aux
données d'entraînement contre la possibilité de mieux généraliser le modèle à des
données qu'il n'a jamais vues auparavant.
Sana Hamdi 186
Régularisations L1 et L2
• Mettre en œuvre la régularisation, c'est simplement ajouter un terme à notre fonction d’erreur qui
pénalise les gros poids (les plus importants)
• Deux techniques de régularisation connus: L1 et L2
1 [j]||) λ
• L1: 𝐽(𝑤, 𝑏) = 𝑚 𝑚 (i) (i)
𝑖=1 L(ŷ , y ) + 𝑛
𝑗=1 (||𝑤
𝑚
1 [j]||2) λ
• L2: 𝐽(𝑤, 𝑏) = 𝑚 𝑚 (i) (i)
𝑖=1 L(ŷ , y ) + 𝑛
𝑗=1 (||𝑤 2𝑚
 n= nombre de couches
 m= nombre d’exemples
 𝑤[j]=la matrice de poids de la jème couche
 λ = le paramètre de régularisation

Sana Hamdi 187


Régularisation L1
1 λ
• L1: 𝐽(𝑤, 𝑏) = 𝑚
𝑚 (i) (i)
𝑖=1 L(ŷ , y ) +
𝑛 [j]
𝑗=1(||𝑤 ||) 𝑚

• La plupart des poids W auront comme valeur 0  Un réseau plus simple et rapide

• Le problème qu’on va se débarrasser de plusieurs entrées  un réseau moins précis.

Sana Hamdi 188


Régularisation L2

• La régularisation la plus courante est la régularisation L2.


1 [j]||2) λ
• L2: 𝐽(𝑤, 𝑏) = 𝑚 𝑚
𝑖=1 L(ŷ(i), y(i)) + 𝑛
𝑗=1(||𝑤
2𝑚

Sana Hamdi 189


Régularisation L2 et rétro-propagation
1
Avant la régularisation: dW[l] = dZ[l] A[l-1]
𝑚
Mise à jour des poids: W[l] = W[l] - η dW[l]
1 λ
Après la régularisation: dW[l] = dZ[l] A[l-1] + W[l]
𝑚 𝑚
1 λ
Mise à jour des poids: W[l] = W[l] - η (𝑚 dZ[l] A[l-1] + W[l] 𝑚)
1 λ
= W[l] -η dZ[l] A[l-1] - η W[l]
𝑚 𝑚
𝝀 𝟏
= W[l] (1- η )-η dZ[l] A[l-1]
𝒎 𝒎

Sana Hamdi 190


La technique Drop-out
• Cette technique ignorera au hasard un sous-ensemble de neurones dans une
couche donnée pendant l’apprentissage, c'est-à-dire qu'il supprime les nœuds
de la couche. D'où le nom « drop-out » . Cela empêchera ces neurones
abandonnés de participer à la production d'une prédiction sur les données.

Sana Hamdi
Exemple Drop-out (50%) 191
La technique Drop-out

• Le problème de sur-apprentissage provient des couches ayant un nombre


élevé des poids.
Sana Hamdi 192
La technique Drop-out

Sana Hamdi 193


La technique Drop-out

Sana Hamdi 194


Augmentation de données
Il s'agit du processus de création de données supplémentaires en modifiant
raisonnablement les données de notre ensemble d’apprentissage

Test Set
DataSet
Train Set Data
New Train Set
Augmentation

Sana Hamdi 195


Augmentation de données (Computer vision)

• Pour les données image, nous pouvons effectuer des modifications en


appliquant:
 Recadrage
 Rotation
 Retournement
 Zooming

Sana Hamdi 196


Augmentation de données (NLP)
• . Pour les donnés textuelles, nous pouvons effectuer des modifications en appliquant:
 Traduction inversée
 Remplacement de synonymes
(Word embedding, dictionnaires)
 Insertion aléatoire
 Echange aléatoire
 Suppression aléatoire
 Mélanger les phrases
 transformer (forme active  forme passive), etc.

Sana Hamdi 197


Arrêt précoce (early stopping)
• La méthode la plus simple pour éviter le sur-apprentissage consiste à arrêter la descente
de gradient lorsque que la fonction d’erreur calculée sur l’ensemble de validation
commence à augmenter et que la fonction d’erreur calculée sur l’ensemble
d’apprentissage continue de descendre.

Sana Hamdi 198


199

Optimisation
Descente du gradient par batch
1
• Fonction d’erreur: 𝐽 𝑤 = 𝑚 𝑚 (i) (i)
𝑖=1 L(ŷ , y )
𝒅𝐽 𝑤
• 𝒅= 𝒅w
• Mise à jour : w = w – η∗d

+Facile à comprendre.
+Facile à programmer.
- Trop sensible au minimum/maximum locaux pour être utilisés en pratique.

Sana Hamdi 200


Descente du gradient par batch
Autres inconvénients
- Traiter tous les exemples d’entraînement (x(i), y(i)), donne une seule mise-à-jour
 processus lent
- Pas de MAJ entre (x(i), y(i)), et (x(i+j), y(i+j)) :
Erreur semblable  gradient semblable  redondance

Sana Hamdi 201


Descente du gradient stochastique
• pour améliorer la descente du gradient, on sélectionne aléatoirement une
seule instance en entrée pour estimer l’erreur et le gradient.
• Cette sélection étant faite aléatoirement à chaque itération, on qualifie le
gradient de stochastique : fruit du hasard.
+ Les mises à jour sont plus fréquentes (le réseau évolue régulièrement). Dans
la pratique, diminue le temps de convergence.
- Du bruit apparaît dans le gradient et par conséquent dans la courbe de l’erreur
aussi.
Sana Hamdi 202
Descente de gradient des mini-batchs
• Une mini-batch de taille p → une MAJ fréquente
• Algorithme:
1. Échantillonnage: (x(i), y(i)) 1 ≤ 𝑖 ≤ p.
𝟏 𝒑
2. Gradient: d = 𝒈 = 𝒑
(i) (i)
𝒊=𝟏 d L(ŷ , y ) /dw

3. Mise à jour : w = w – η∗d

Sana Hamdi 203


Descente de gradient des mini-batchs:
Avantages
1. 𝒈 est la version bruité du gradient
Bruit aide à sortir des minimum / maximum locaux.
2. MAJ entre (x(i), y(i)), et (x(i+p), y(i+p))
Diminue la redondance si erreur semblable.
Convergence possible avant même de voir tous les exemples.
3. Traitement parallèle des batchs.
4. Optimisation hardware quand 𝑚 = 2k
Sana Hamdi 204
Descente de gradient des mini-batchs:
Inconvénients
• Variance → fluctuation
• Taux d’apprentissage a une grande influence:
Lorsque l’on approche d’un optimum, la convergence est plus hasardeuse comparée à la méthode
classique de descente de gradient (des lots différents).
On peut corriger cela en réduisant le learning rate.
trop grand peut faire diverger l'algorithme tandis qu'un taux
trop petit ralentit la convergence.

Sana Hamdi 205


Descente de gradient avec Momentum
Concept: Ajouter à la descente de gradient une dynamique Newtonienne
On ajoute une technique à la méthode SGD pour réduire son bruit élevé. On
accélère ainsi la convergence vers la direction pertinente et on réduit la
fluctuation provenant des directions non pertinentes.

Sana Hamdi 206


Descente de gradient avec Momentum
• Cette technique consiste à pondérer le gradient courant par la pondération
des gradients précédents afin de lisser des changements de direction trop
importants. Pour cela, on utilise un nouvel hyperparamètre appelé
le momentum .

Sana Hamdi 207


Descente de gradient avec Momentum:
Moyennes pondérées de manière exponentielle
• Vélocité 𝒗 ∈ ℝ𝐷 • vt: Ceci représente le terme de quantité de
mouvement à l'itération t. C'est un vecteur qui
Estimation des directions précédentes. accumule les gradients passés.
• Facteur d’oubli β ∈ [0, 1[ • β: Il s'agit du coefficient de quantité de mouvement,
β → 0 ≡ SGD standard un hyperparamètre généralement compris entre 0 et
1. Il contrôle la contribution des gradients passés au
(Valeur suggérée: β = 0.9) terme de quantité de mouvement actuel. Une valeur
• Les moyennes pondérées exponentiellement plus élevée de β signifie que plus de poids est
accordé aux gradients passés.
de 1/1- β points
• St: Ceci représente le gradient actuel (ou son
𝒗t← β𝒗t-1 + 1 − β St estimation stochastique) à l'itération t. Il est
généralement calculé à l'aide d'un sous-ensemble de
données d'entraînement (un mini-lot)
Sana Hamdi 208
Descente de gradient avec Momentum:
Moyennes pondérées de manière exponentielle
• Vélocité 𝒗 ∈ ℝ𝐷
Estimation des directions précédentes.
• Facteur d’oubli β ∈ [0, 1[
β → 0 ≡ SGD standard
(Valeur suggérée: β = 0.9)
• Les moyennes pondérées exponentiellement
de 1/1- β points
𝒗t← β𝒗t-1 + 1 − β St
momentum - données provenant de moyennes pondérées de manière exponentielle.

Sana Hamdi 209


Descente de gradient avec Momentum
• Algorithme:
1. Échantillonnage : (x(i), y(i)) 1 ≤ 𝑖 ≤ p.
𝟏 𝒑
2. Gradient : d = 𝒈 = 𝒑 𝒊=𝟏 d L(ŷ (i), y(i)) /dw

3. Vélocité (momentum) : 𝒗t← β 𝒗t-1 + (1 − β) ∗ 𝒅


4. Mise à jour : w = w - η 𝒗 t

Sana Hamdi 210


Descente de gradient avec Momentum:
Avantages
• Momentum aide quand il y a plusieurs optimums locaux
• Les MAJ de w tendent à s’aligner.

Sana Hamdi 211


Descente de gradient avec Momentum:
Problème
• Peut survoler les min / max locaux. Mais, peut dépasser le min global.

Sana Hamdi 212


RMSprop
• Algorithme:
1. Échantillonnage : (x(i), y(i)) 1 ≤ 𝑖 ≤ p.
𝟏 𝒑
2. Gradient : d = 𝒈 = 𝒑 𝒊=𝟏 d L(ŷ (i), y(i)) /dw

3. Accumulateur : St← β St-1 + (1 − β) ∗ 𝒅𝟐


𝑑
4. Mise à jour : 𝒘 = 𝒘 − η
S𝑡

Sana Hamdi 213


RMSprop: Avantages
• Si St croit alors diminuer la rapidité de mise à jour (oscillations verticales).
• Si St décroit alors croitre la rapidité de mise à jour (oscillations horizontales).

Sana Hamdi 214


RMSprop: Problème
• Cet estimateur a un large biais positif au début de la descente du gradient,

Sana Hamdi 215


Algorithme d’optimisation Adam
• Solution pour résoudre les inconvénients de RMSprop + momentum
• Méthode :
 Calculer une estimation des premier et second moments avec une moyenne mobile
exponentielle à taux β1, β2 ∈ [0, 1[ .
• Valeurs suggérées: β1 = 0.9 et β2 = 0.999
 Corriger les biais des moments.
 Le premier moment normalisé par le second moment donne la direction de MAJ.
Sana Hamdi 216
Algorithme d’optimisation Adam
• Correction du biais de départ

Sana Hamdi 217


Algorithme d’optimisation Adam
• Algorithme:
1. Échantillonnage : (x(i), y(i)) 1 ≤ 𝑖 ≤ p.
𝟏 𝒑
2. Gradient : d = 𝒈 =
𝒑
(i) (i)
𝒊=𝟏 d L(ŷ , y ) /dw
3. 1er moment: 𝒗← β1 𝒗 + (1 − β1) ∗ 𝒅
4. 2ème moment: S← β2 S + (1 − β2) ∗ 𝒅𝟐
𝒗
5. Correction biais 1er moment: 𝒗← 𝟏− β 𝒕
1
𝑺
6. Correction biais 1er moment: S← 𝟏− β 𝒕
2
𝑣
7. Mise à jour : 𝒘 = 𝒘 − η 𝑆+𝜀

Sana Hamdi 218


Algorithme d’optimisation Adam
• Choix des hyper-paramètres:
1. η à régler
2. β1 = 0,9
3. β2 = 0,99
4. 𝜀 = 10−8

Sana Hamdi 219


Merci pour votre attention !

Dr. Sana Hamdi

Maitre Assistante en Informatique à l’INSAT

Membre du Laboratoire LIPAH (FST-Tunisie)


et du Laboratoire SAMOVAR (Telecom SudParis-France)

Vous aimerez peut-être aussi