0% ont trouvé ce document utile (0 vote)
6 vues33 pages

CM 1

Le document présente un cours sur l'apprentissage profond et l'apprentissage automatique, en définissant leurs concepts fondamentaux et en les positionnant par rapport à d'autres domaines scientifiques. Il aborde les différents types d'apprentissage (supervisé, non supervisé, auto-supervisé et par renforcement) ainsi que les architectures de réseaux de neurones, notamment les perceptrons et les réseaux de convolution. Des exemples pratiques et des applications dans divers domaines tels que la reconnaissance d'images et le traitement du langage sont également discutés.

Transféré par

omarainan03
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)
6 vues33 pages

CM 1

Le document présente un cours sur l'apprentissage profond et l'apprentissage automatique, en définissant leurs concepts fondamentaux et en les positionnant par rapport à d'autres domaines scientifiques. Il aborde les différents types d'apprentissage (supervisé, non supervisé, auto-supervisé et par renforcement) ainsi que les architectures de réseaux de neurones, notamment les perceptrons et les réseaux de convolution. Des exemples pratiques et des applications dans divers domaines tels que la reconnaissance d'images et le traitement du langage sont également discutés.

Transféré par

omarainan03
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

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

Vous aimerez peut-être aussi