Ricco Rakotomalala
Université Lumière Lyon 2
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 1
Contexte big data – Volumétrie des données
• Contexte big data : la taille des bases à traiter devient un enjeu essentiel pour les algorithmes
de machine learning
• Il faut développer des stratégies d’apprentissage qui permettent d’appréhender les grandes
bases (en particulier en nombre de descripteurs)
• Tout en obtenant des résultats de qualité satisfaisante (comparables à ceux produits par les
algorithmes standards ex. régression logistique)
• Descente de gradient (stochastique) n’est pas un concept nouveau (cf. ADALINE, 1960), mais
elle connaît un très grand intérêt aujourd’hui, en particulier pour l’entraînement des réseaux de
neurones profonds (deep learning). Elle permet aussi de revisiter des approches statistiques
existantes (ex. régression dans ce document)
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 2
Plan
1. Algorithme du gradient
4. Taux d’apprentissage
5. Régression logistique
6. Logiciels
7. Conclusion
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 3
Démarche itérative pour la minimisation d’une fonction
ALGORITHME DU GRADIENT
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 4
Optimisation d’une fonction différentiable et convexe
25
15
𝑓′ 𝑥 = 0
10
0
1
-5 -4 -3 -2 -1 0 1 2 3 4 5
𝑓 ′ 𝑥 = 2𝑥 − 1 = 0 ⇒ 𝑥 ∗ =
2
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 5
Algorithme du gradient (descente de gradient)
Parfois la résolution analytique n’est pas possible, parce que le nombre de paramètres est élevé par
exemple, ou parce que le calcul serait trop coûteux approximation avec une approche itérative.
Le « gradient », généralisation
1. Initialiser avec x0 (au hasard)
multidimensionnelle de la dérivée [si un seul
2. Répéter
paramètre], au point xt. Indique la direction et
𝑥𝑡+1 = 𝑥𝑡 − 𝜂 × ∇𝑓(𝑥𝑡 ) l’importance de la pente au voisinage de xt.
3. Jusqu’à convergence
η est un paramètre qui permet de moduler
— parce qu’on cherche à minimiser la correction (η trop faible, lenteur de
f(), on prendrait + sinon. convergence ; η trop élevé, oscillation)
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 6
Algorithme du gradient - Exemple
𝑓 𝑥 = 𝑥2 − 𝑥 + 1
η = 0.3 25
eta 0.3
𝑥0
x f'(x_t) f(x)
𝑥0 = 5 5.0000 21.0000 20
𝑥𝑡+1 = 𝑥𝑡 − 𝜂 × ∇𝑓(𝑥𝑡 )
… 𝑥2 < 𝑥1 < 𝑥0
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 7
Algorithme du gradient – Exemple (2)
eta 0.3
20
x f'(x_t) f(x)
-4.0000 21.0000
-1.3000 -9.0000 3.9900
15
-0.2200 -3.6000 1.2684
0.2120 -1.4400 0.8329
0.3848 -0.5760 0.7633
0.4539 -0.2304 0.7521
10
0.4816 -0.0922 0.7503
0.4926 -0.0369 0.7501
0.4971 -0.0147 0.7500
0.4988 -0.0059 0.7500
5
0.4995 -0.0024 0.7500
0.4998 -0.0009 0.7500
0.4999 -0.0004 0.7500
0.5000 -0.0002 0.7500
0
-5 -4 -3 -2 -1 0 1 2 3 4 5
𝑥0 < 𝑥1 < 𝑥2 …
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 8
Application de la descente de gradient à la régression linéaire multiple
RÉGRESSION LINÉAIRE MULTIPLE
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 9
Régression linéaire multiple
𝑦𝑖 = 𝑎0 + 𝑎1 𝑥𝑖1 + ⋯ + 𝑎𝑝 𝑥𝑖𝑝 + 𝜀𝑖
𝑛
Sur un échantillon de taille n, on 1
𝑆= 𝜀𝑖2 Critère des moindres carrés
cherche à minimiser le critère 2𝑛
𝑖=1
On a un problème de 𝑛
2
minimisation par rapport aux min 𝑆 = 𝑦𝑖 − 𝑎, 𝑥𝑖
𝑎0,𝑎1,…,𝑎𝑝
𝑖=1
paramètres 𝑎 = (𝑎0 , 𝑎1 , ⋯ , 𝑎𝑝 )
Où xi = (x0i,xi1,…,xip) et (constante) x0i = 1, ∀𝑖
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 10
Régression linéaire multiple – Descente de gradient
𝑛
𝜕𝑆𝑡 1
= (−1) × 𝑦𝑖 − 𝑎𝑡, 𝑥𝑖
𝜕𝑎0 𝑛
𝑖=1
Descente de gradient 𝑛
𝜕𝑆 𝑡 1
= −𝑥𝑖1 × 𝑦𝑖 − 𝑎𝑡, 𝑥𝑖
𝑎𝑡+1 = 𝑎𝑡 − 𝜂 × ∇𝑆t Où ∇𝑆𝑡 = 𝜕𝑎1 𝑛
𝑖=1
⋮
𝑛
𝜕𝑆 𝑡 1
Taux d’apprentissage (êta, learning rate) = (−𝑥𝑖𝑝 ) × 𝑦𝑖 − 𝑎𝑡, 𝑥𝑖
𝜕𝑎𝑝 𝑛
𝑖=1
Le vecteur gradient de taille (p+1,1) est composé des dérivées partielles de S par rapport à chaque paramètre du modèle.
1. Manipuler un vecteur de taille (p+1,1) plutôt qu’une matrice (p+1,p+1), voilà tout l’intérêt de la
descente de gradient pour les grandes dimensions (il y en a d’autres, cf. les réseaux de neurones)
2. Mais elle nécessite de parcourir plusieurs fois la base (avec n observations)
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 11
Régression linéaire multiple – Exemple eta 1.05
𝑎 𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛 = (1.424, 7.173, −2.523) Convergence lente parce petit effectifs (n=10).
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 12
Régression linéaire multiple – Exemple (suite)
−4.152
eta 1.05 0
𝑎 = (0.1,0.1,0.1) ∇𝑆0 = −3.003
t a0 a1 a2 S dS/d_ao dS/d_a1 dS/d_a2 −1.889
0 0.100 0.100 0.100 224.72 -4.152 -3.003 -1.889
1 4.460 3.253 2.083 127.71 3.026 1.483 1.892 0.1 −4.152 4.460
2 1.283 1.697 0.097 77.53 -2.040 -1.633 -0.825
0.1 − 1.05 × −3.003 → 3.253 = 𝑎1
3 3.425 3.411 0.963 50.95 1.529 0.609 1.045
0.1 −1.889 2.083
Evolution de S au fil des itérations (t) Evolution des coefficients au fil des itérations (t)
6.0
200.00
4.0
150.00
2.0
100.00
0.0
50.00 0 20 40 60 80 100
-2.0
0.00
0 20 40 60 80 100 -4.0
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 14
Correction par observation (online)
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 15
Correction par observation (online) - Exemple
eta 0.5
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 16
Stratégies – Gradient stochastique
2. Online. Gradient calculé pour chaque observation, correction des coefficients. Etc.
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 17
Taux fixe ou taux décroissant au fil du processus d’apprentissage
CHOIX DU TAUX D’APPRENTISSAGE
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 18
Importance du taux d’apprentissage (learning rate)
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 19
Application de la descente de gradient à la régression logistique
RÉGRESSION LOGISTIQUE
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 20
Régression logistique binaire
𝑛
Fonction de perte : 1
𝐽(𝑎) = − 𝑦𝑖 ln 𝑝𝑖 + 1 − 𝑦𝑖 ln 1 − 𝑝𝑖
Binary cross-entropy 𝑛
𝑖=1
1
pi est la proba. conditionnelle P(Y/X) modélisée avec la régression logistique 𝑝𝑖 =
1 + 𝑒 −(𝑎0 +𝑎1 𝑥𝑖1 +⋯+𝑎𝑝𝑥𝑖𝑝 )
J(a) = - LL, où LL est la log-vraisemblance du modèle binomial
Amplitude de l’erreur
𝑛 𝐾
Fonction de perte : 1
𝐽(𝑎) = − 𝑦𝑖𝑘 ln 𝑝𝑖𝑘
Categorical cross-entropy 𝑛
𝑖=1 𝑘=1
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 22
Quelques packages pour Python et R, entres autres….
LOGICIELS
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 23
Python – Librairie « scikit-learn »
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 24
Python – Librairie « tensorflow / keras »
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 25
R – Librairie « gradDescent », et d’autres…
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 26
CONCLUSION
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 27
Pourquoi Descente de Gradient pour l’apprentissage supervisé ?
Attention cependant…
• Grand nombre de paramètres pas toujours faciles à appréhender, qui influent sur le
comportement de l’algorithme
• Toujours ramener les variables sur la même échelle (normalisation, standardisation)
pour éviter que les disparités faussent le déroulement de l’optimisation
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 28
RÉFÉRENCES
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 29
Références
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 30