Apprentissage profond / Deep Learning
Master IAMD, Djibouti
CM 1
Andrzej Stos
1 / 33
Objectifs du cours
I Définir et positionner l’apprentissage profond / Deep Learning
par rapport aux autres domaines scientifiques
I Concepts fondamentaux :
I Modèle de neurone (Perceptron),
I Algorithme fondamental de l’apprentissage : retro-propagation
I Architectures de réseaux
I réseaux intégralement connectés ("Multilayer Perceptron")
I réseaux de convolution ("CNN") pour images
I autoencodeurs
I réseaux récurrents pour séries chronologiques
I transformers pour traitement de texte
I Exemples en TP (beaucoup)
2 / 33
Apprentissage automatique / Machine Learning
L’apprentissage automatique est la discipline donnant aux
ordinateurs la capacité d’apprendre sans qu’ils soient explicitement
programmés.
Arthur Samuel, un de pionniers de l’IA, 1959
N.B. Opposition historiquement fondamentale (cf. ci-après)
L’apprentissage automatique est la science (et l’art) de programmer
les ordinateurs de sorte qu’il puissent apprendre à partir de données.
Aurélien Géron, 2018
Pourquoi faire ? Exemple : anti-spam.
D’autres exemples ? Quand ne pas faire AA ?
3 / 33
Apprentissage automatique
Apprendre ?
Etant donné une tâche T et une mesure de performance P, on dit
qu’un programme informatique apprend à partir d’une expérience E
si les résultats obtenus sur T, mesurés par P, s’améliorent avec
l’expérience E.
Tom Mitchell, 1997
Apprendre : ajuster un modèle à une réalité observée.
"réalité" : un ensemble de données (fixe ou grandissant dans le
temps)
"modèle" : une fonction (ou un algorithme) f : X 7→ Y
X = Rp , Y = R ou N
"ajuster" : produire une représentation interne adéquate, trouver
des paramètres (ou hyper-paramètres) pour minimiser une fonction
de perte ou erreur de prévision
4 / 33
Apprentissage automatique : domaines connexes
I Intelligence artificielle (IA)
I Fouille de données ("Datamining / Big data")
I Science des données ("Data Science")
I Reconnaissance de formes ("Pattern Recognition"), traitement
des signaux ("Signal Processing", séries temporelles, bourse...)
I Traitement Automatique de Langage (TAL ou NLP en anglais)
I Traitement de données ("Data Engineering")
5 / 33
Apprentissage automatique, IA et Deep Learning
D’après Yoshua Bengio, Deep Learning
Deep Learning ( Machine Learning ( Intelligence Artificielle
IA Exemples IA \ ML ?
ML tout algorithme en apparence "intelli-
gent" mais complétement prédéterminé
DL jeu d’échecs, souris de Claude Shannon,
robot pré-programmé, chatbot Elisa
dans Emacs, systèmes de règles ("if-
else")
Remarque. Avant : IA ≈ collection d’algorithmes (100% codage,
100% logique, 0% apprentissage)
Après : IA ≈ DL / ML (100% apprentissage)
6 / 33
Type de problèmes
I Supervisé : Pour chaque observation, on a une valeur cible. Il
s’agit de construire et d’ajuster un modèle capable de prédire
une valeur cible pour une nouvelle observation (jamais vu
durant la phase d’apprentissage : #généralisation).
I Non supervisé : On a un ensemble d’objets sans aucune
valeur cible à prédire. Il s’agit de regrouper les objets ou
produire une représentation interne qui met en valeur les
régularités présentes au sein de ces objets.
I Auto-supervisé (self-supervised ) : Il s’agit d’apprendre
(produire une représentation) à partir de l’observation de
l’environnement ("apprendre comme un enfant").
,→ Utilisé surtout dans ... ? (question importante !)
I Par renforcement : prise de décision par un agent dans un
environnement dynamique (eg. jeux de stratégie).
,→ Utilisé dans ... ? (question importante !)
7 / 33
Apprentissage supervisé
Deux types d’apprentissage supervisé
I Régression : valeur cible continue (R)
I Classement, classification ou catégorisation : valeur cible
discrète (N)
Remarque
Un objet ou une observation : un vecteur de plusieurs variables
(réelles), noté xi = (x1 , . . . , xp ). À chaque vecteur xi on associe
une valeur cible yi .
Exemples :
I Prédiction de la consommation électrique en fonction des conditions
météo
Prédiction du prix d’une maison étant donnés certains paramètres
I Prédiction de l’espèce d’une fleur à partir de mesures
Reconnaissance de chiffres à partir d’images
8 / 33
Apprentissage supervisé
Classification est une forme de régression.
Supposons qu’on a un ensemble de points appartenant à deux
catégories. Autrement dit
xi = (x1 , x2 ) ∈ R2 et yi ∈ Y = {−1, 1}.
On traite le problème comme une régression linéaire multiple
y = g (x).
On applique la règle de décision suivante
(
−1 si ĝ (x) ≥ 0
fˆ(x) =
+1 si ĝ (x) < 0.
La ligne de niveau ĝ (x) = 0 est la frontière de décision.
9 / 33
Formalisation (apprentissage supervisé)
I Les données X : n observations de p variables
y : variable cible.
x11 x12 . . . x1p y1
x21 x22 . . . x2p y2
X= . .. . . .. y=.
.. . . . ..
xn1 xn2 . . . xnp yn
i-ème observation xi = (xi1 , . . . , xip ) ∈ X ⊂ Rp
Y = R ,→ problème de regression ;
yi ∈ Y ;
Y = N ,→ problème de classification
I Ensemble d’entraînement E = {(xi , yi ), i = 1 . . . n}
I On cherche une généralisation, c.à.[Link] fonction modélisant
la relation entre les x ∈ X et les y ∈ Y (non seulement sur E) :
y = f (x) +
où est une erreur (résidu).
10 / 33
Rappel : régression linéaire simple
Critère classique : minimiser
On observe des couples (xi , yi ) avec la somme des erreurs
xi ∈ R, yi ∈ R. quadratiques
Idée : prédire une valeur réelle à partir d’une
n
entrée. X
(yi − ŷi )2
Modèle le plus simple :
i=1
yi = a0 + a1 xi + εi
où a0 est l’ordonnée à l’origine, a1 la pente,
et εi un bruit / résidu.
On cherche la droite qui approxime au mieux
le nuage de points :
ŷi = â0 + â1 xi
11 / 33
Regression Logistique - rappels et compléments
Objectif : modéliser des probabilités d’appartenance dans une de
deux classes. ,→ utilisé pour une classification
Modèle :
1
p(x) = σ(a0 + a1 x), x ∈ R, σ(t) = 1+e −t
Pourquoi faire ?
image : James, Witten, Hastie, Tibshirani, An Introduction to Stat. Learning 12 / 33
Regression Logistique - rappels et compléments
Décision : y ∈ "0" si p(x) < 0.5, y ∈ "1" sinon.
Apprentissage : maximisation de la fonction de vraisemblance
Y Y
L(a) = p(xi ) (1 − p(xi ))
i:yi =1 i:yi =0
Pour les calculs sur machine :
X X
log L(a) = log(p(xi )) + log(1 − p(xi ))
i:yi =1 i:yi =0
Réécriture pour une référence ultérieure (DL) :
X
log L(a) = yi log(p(xi )) + (1 − yi ) log(1 − p(xi ))
i
,→ entropie croisée (cross-entropy, fonction de perte en DL)
13 / 33
Régression logistique multinomiale)
Rappel de régression logistique :
1
p(x) = P(Y = 1|X = x) = σ(a0 + a · x) =
1+ e −(a0 +a·x)
(a, x ∈ Rp )
Représentation équivalente
p(x)e −(a0 +a·x) = 1 − p(x)
p(x)
log = a0 + a · x
1 − p(x)
P(Y = 1|X = x)
log = a0 + a · x
P(Y = 0|X = x)
,→ "log-odds" (ou logits)
14 / 33
Régression logistique multinomiale
Modèle multinomial pour la régression logistique :
pk (x) = P(Y = k|X = x), k = 1, 2, . . . , q
On compare ainsi chaque classe C1 , C2 , . . . , Cq−1 à la classe de
référence Cq (arbitraire), en supposant encore que les log-odds se
représentent par un modèle linéaire :
p1 (x)
log = a1,0 + a1 · x
pq (x)
...
pq−1 (x)
log = aq−1,0 + aq−1 · x
pq (x)
,→ Système de q − 1 équations avec les inconnus p1 , . . . , pq−1
(car pq = 1 − p1 − . . . − pq−1 ).
15 / 33
Régression logistique multinomiale
Pour retrouver les probabilités pk :
exp(a1,0 + ak · x)
pk = Pq k = 1, 2, . . . , q
k=1 exp(a1,0 + ak · x)
C’est la fonction standard appelée softmax :
amplification par exp, "maximum dérivable", cf. Deep Learning.
16 / 33
Régression logistique multinomiale
On suppose que les probabilités pk sont issues d’une distribution
multinomiale c.à.[Link] fonction de vraisemblance pour n observations
xi est
q Y
Y n
L= P(Y = k|X = xi ; ak )yik avec yik = 1 si xi ∈ Ck
k=1 i=1
Log-vraisemblance
q X
X n
LL = yik log(P(Y = k|X = xi ; ak ))
k=1 i=1
ou encore
q X
n
X exp(a1,0 + ak · xi )
LL = yik log( Pq )
k=1 i=1 k=1 exp(a1,0 + ak · xi )
Solution : pas de formule analytique, on utilise une approximation
numérique (Newton-Raphson, ...)
17 / 33
Deep Learning
I Apprentissage profond avec des réseaux de neurones :
(presque) un synonyme de l’IA
I Juste quelques technique(s) d’apprentissage parmi d’autres...
I ... mais particulièrement efficaces dans certains domaines où
les autres méthodes ont échoué
I Reconnaissance d’images, d’écriture à la main, de la parole /
signaux sonores,
synthèse d’images / videos, de la parole, de la musique...
jeux de stratégie et d’action (niveau sur-humain)...
traitement / synthèse du texte / raisonnement ...
18 / 33
Deep Learning par Yann Le Cun
19 / 33
Deep Learning
Deep Learning =
réseaux de neurones
+ descente de gradient
+ retro-propagation
+ quelques technique l’accélération + ...
20 / 33
Neurones biologiques
∼ 100 milliards de neurones dans un cerveau humain.
21 / 33
Perceptron : neurone mathématique
Function plusieurs variables : Rp 7→ R.
p
!
X
(x1 , x2 , . . . , xp ) → g w0 + wi xi
i=1
xi : les données
wi : les poids (w0 = biais d’activation de neurone)
g : une fonction d’activation
22 / 33
Perceptron : neurone mathématique
Function plusieurs variables : Rp → R.
x → g (x · W)
x = (1, x1 , x2 , . . . , xn ) : les données avec le biais de neurone
W = (w0 , w1 , w2 , . . . , wn )t : les poids avec le biais de neurone
une fonction d’activation g :
I identité g (u) = u
(
1 u>0
I fonction à seuil g (u) = .
0 sinon
1 eu
I sigmoïde g (u) = =
1 + e −u eu + 1
I relu (ang. rectified linear unit) g (u) = max(0, u)
(
αu u < 0
I leaky relu g (u) = small α ∈ [0, 1]
u u≥0
I d’autres (tanh, arctan...)
23 / 33
Perceptron : interprétation statistique
I Le perceptron linéaire (g (u) = u) revient à un modèle de
regression linéaire.
I Le perceptron avec la fonction seuil est un modèle de
catégorisation binaire par un hyperplan dans Rp .
I Le perceptron associé à la fonction sigmoïde peut s’interpréter
comme probabilité d’appartenance dans une classe pour une
catégorisation binaire (regression logistique).
Question : Comment traiter un problème multi-classe (à l’aide d’un
réseau) ?
24 / 33
Perceptron : interprétation statistique
,→ Problème multi-classe : une couche de neurones en parallèle.
Chaque perceptron "détecte" une classe ("one vs others")
on choisi la classe la plus probable.
Softmax ("argmax lisse") :
exp(x · Wk )
gk (x) = Pq
i=1 exp(x · Wk )
Sortie sous forme d’un vecteur, idéalement une composante valant
1, le reste 0 (ang. one-hot encoding ).
25 / 33
Perceptron : pourquoi faire ?
Question : si le perceptron est un modèle statistique comme les
autres, pourquoi introduire un formalisme de plus ?
I algorithme d’apprentissage simple (descente de gradient) !
I composition : réseaux multi-couches ! !
I rétropropagation : procédé d’apprentissage efficace ! ! ! ! !
26 / 33
Perceptron : que peut il faire ?
Un perceptron peut réaliser une séparation linéaire (peut-être
sous-optimale)
Il ne peut pas réaliser l’opération OU EXLCUSIF (XOR)
x1 x2 XOR
0 0 0
0 1 1
1 0 1
1 1 0
27 / 33
Perceptron : historique
I Introduction de perceptrons : Rosenblatt 1958 (modèle à seuil)
I Premiers succès, reconnaissance d’images (chars vs camions),
excitation et grandes promesses ("on peut tout faire")
I Minsky & Papert "Perceptrons" 1969 : l’exemple de XOR
,→ arrêt brutal ("on peut rien faire"), AI winter.
I Reprise dans les années 80 : Hopfield, Hinton, LeCun
(perceptron multi-couche, modèles en réseau) ...
I Certains succès, mais... problèmes d’apprentissage en pratique
,→ arrêt rapide de recherche, AI winter, Saison 2
I 30 septembre 2012, Visual Recognition Challenge, Geoffrey
Hinton, Alex Krizhewsky, Ilya Sutskever (CNN) ... avec une
participation de tous les joueurs et d’internet (données
massives, cartes graphiques)
,→ succès réel dans plusieurs domaines
,→ mais aussi boulle médiatique, grandes promesses, ...
,→ ... winter is coming ?
28 / 33
Apprentissage : descente de gradient
Comment trouver un chemin du Puy de Dôme vers Clermont ?
Soit X → g (X) un neurone à deux entrées (+ biais)
X = (1, x1 , x2 ), et à la function d’activation sigmoïde σ.
Notons D = (X1 , . . . , Xk ) jeu de données de longueur k,
y = (y1 , . . . , yk ) la variable cible, i = 1, . . . , k.
(i) (i)
On a donc ŷi = σ(ui ) avec ui = Xi · W = w0 + w1 x1 + w2 x2 .
Objectif : minimiser l’erreur quadratique
k
1X
E= (yi − ŷi )2 .
2
i=1
Fixons n = 0, 1 ou 2. Influence du poids wn sur l’erreur E :
k
∂E X ∂ui
=− (yi − ŷi )σ 0 (ui )
∂wn ∂wn
i=1 29 / 33
Apprentissage : descente de gradient
k
∂E X ∂ui
=− (yi − ŷi )σ 0 (ui )
∂wn ∂wn
i=1
e −u 1 + e −u 1
σ 0 (u) = −u
= −u
− = σ(u)(1 − σ(u)).
(1 + e ) 2 (1 + e ) 2 (1 + e −u )2
Or σ(ui ) = ŷi . Donc finalement,
k
∂E X (i)
=− (yi − ŷi )ŷi (1 − ŷi )xn .
∂wn
i=1
Mise à jour des poids : W = W − α∇E , c.à.d.
∂E
wn = wn − α , n = 0, 1, 2.
∂wn
α : vitesse d’ajustement, ang. learning rate
,→ implémentation en Python ( !) 30 / 33
Apprentissage en pratique
3 régimes d’apprentissage quand les données sont plus importantes :
I Classique (batch) : pour mettre à jour les poids, on traite
toutes les observations (comme dans notre exemple).
Problème : lenteur avec big data ; aussi : rigidité (plus
facilement coincé dans un minimum locale).
I Gradient Stochastique dit "on-line" : mettre à jour les poids
après avoir traité juste une observation au hasard, puis répéter
(sans remise).
Problème : instabilité, aussi lenteur.
I Gradient Stochastique mini-batch : mettre à jour les poids
après avoir traité une portion de données (un bloc). Bon
compromis, le plus utilisé.
N. B. Une période où on traite l’ensemble de données (soit une par
une, soit par bloc) est appelée epoch.
31 / 33
Réseau de neurones : perceptron multicouche
Une combinaison de séparateurs linéaires permet de produire un
séparateur globalement non-linéaire (Rumelhart, 1986)
Théorème d’approximation universelle (Cybenko 1989)
Un réseau à une couche cachée est capable d’approximer toute
fonction continue pourvu qu’il possède un nombre suffisant de
neurones.
Problème : comment faire d’une manière effective et efficace ? 32 / 33
Réseau de neurones : rétro-propagation du gradient
I Calculer l’erreur à la sortie.
I Corriger les poids de la dernière couche (la sortie, ici 1
neurone)
I Propager les corrections dans la couche précédente etc.
,→ implémentation en Python
33 / 33