R
ÉSEAUX DE NEURONES Julie Schollermars 2019
M Éc E n
I. Introduction
Réseaux de neurones
• Idée initiale : simuler le cerveau humain
• Historique : 1940’ notion initiale, 1950’-1960’ perceptron de Rosenblatt, 1980’ essor, 1990’ industrialisation, 2000’-2010’ nouvel essor avec le deep learning
• Diversité : techniques descriptives et prédictives (classification et régression)
Réseaux de neurones formels ou artificiels
• méthodes d’apprentissage supervisées et non supervisées développées en analogie avec le cerveau
• combinaison (réseau) plus ou moins complexe d’objets élémentaires (neurones formels)
I. Introduction
Diversité
Un réseau de neurones est défini par
• sa structure
• son type de neurone.
Exemples
• Carte auto-organisée, carte de Kohonen (méthode non supervisée)
• Perceptron multicouche (méthode supervisée)
• Alex Net, GoogLeNet, Residual Network, etc.
I. Introduction
Avantages
• fonctionne pour la prédiction de variables quantitatives et qualitatives
• méthode non paramétrique
• ils peuvent approcher n’importe quelle fonction (assez régulière)
Points faibles
• difficile à entraîner ; puissance informatique requise, convergence vers une solution non forcément optimale
• risque de surapprentissage
• aspect boîte noire
II. Neurone
Neurone naturel
Par BruceBlaus - https ://commons.wikimedia.org/w/index.php ?curid=28761830
II. Neurone
Neurone formel
• signaux d’entrée
• fonction de combinaison des signaux faisant intervenir des poids
• fonction de transfert ou d’activation (de seuil, linéaire, sigmoïde, etc.)
• signal de sortie
x2 w2 X
f
Fonction d’activation
z Sortie
x1 w1
x3 w3
Poids
Biais : b
Entrées
III. Perceptron multicouche
Couches
• une couche d’entrée (valeurs X)
• une couche de sortie (valeurs Y)
• une ou plusieurs couches cachées Caractéristiques
• pas de connexion entre les neurones d’une même couche
• connexions entre les neurones de deux couches successives (feedforward)
III. Perceptron multicouche
Structure à deux couches cachées
Entrée #1 Entrée #2 Entrée #3 Entrée #4
Sortie Couche
cachée 1
Couche cachée 2 Couche
d’entrée
Couche de sortie
III. Perceptron multicouche
Structure à une couche cachée
Entrée #1 Entrée #2 Entrée #3 Entrée #4
Sortie Couche
cachée Couche
d’entrée
Couche de sortie
III. Perceptron multicouche
Perceptron à une couche cachée
fS
Q
X
j=1
wj(2)fN
P
X
k=1
wjk(1)xk + w0(1)
!
+w0(2)
avec fN une sigmoïde
Approximation universelle
Pour toute fonction Φ assez régulière et pour toute précision ε, il existe un perceptron à une couche cachée avec fonction d’activation sigmoïde qui approche Φ avec une erreur au plus de ε.
IV. Apprentissage du perceptron à une couche cachée
Apprentissage des poids
à Q (le nombre de neurones de la couche) fixé, on cherche wn = arg min
w
1 n
n
X
i=1
(yi −Fw(xi))2
!
Principaux problèmes
• pas de solution exacte : algorithme d’approximation, obtention d’un minimum local
• risque de surapprentissage : plus le nombre de neurones est grand, plus le perceptron est flexible
IV. Apprentissage du perceptron à une couche cachée
Optimisation par descente de gradient
Rbn(w) =
n
X
i=1
(yi − Fw(xi))2 =
n
X
i=1
Ei(w)
Méthode
• Initialisation des poids w(0) : aléatoirement ou selon un a priori
• Approche batch : pour t = 1, . . .T
w(t + 1) = w(t)− η(t)∇wRbn(w(t))
• Approche stochastique : pour t = 1, . . .T, on choisit aléatoirement un individu et on met à jour
w(t + 1) = w(t)− η(t)∇wE(w(t))
• η(t) : taux d’apprentissage fixe ou évolutif
IV. Apprentissage du perceptron à une couche cachée
Principe de rétropropagation du gradient
• méthode rapide pour obtenir le gradient
Deux étapes
• Étape forward : calcul des valeurs des différents neurones, de la couche d’entrée vers la couche de sortie
• Étape backward : calcul des gradients partiels par rapport aux poids, de la couche de sortie vers la couche d’entrée
V. Apprentissage en pratique
Apprentissage en pratique
Données en entrée
• numériques
• normalisées ou standardisées entre 0 et 1 Choix des poids initiaux
• Poids choisis aléatoirement selon N
0; 1
√ P
ou N
0; 1
√Q
• R : dans nnet : poids choisis aléatoirement selon U([−0.5; 0.5]) Choix de l’arrêt de l’apprentissage
• On se fixe un T.
• On s’arrête quand on atteint une certaine erreur Rbn(w).
• On s’arrête quand on atteint une certaine évolution de l’erreur : Rbn(w(t))− Rbn(w(t + 1)).
V. Apprentissage en pratique
Stratégie pour éviter le surapprentissage
1. bien choisir Q le nombre de neurones de la couche
• validation croisée
• si Q est très grand, utiliser une partie des données pour contrôler l’erreur et stopper la descente de gradient
• en pratique, on considère qu’il faut un échantillon
d’apprentissage au moins 10 fois plus grand que le nombre de paramètres à estimer
V. Apprentissage en pratique
Exemple d’apprentissage de x 7→ sin(2π x )
+
+ + +
+
+
++
+ +
+ +
+
+ +
0.2 0.4 0.6 0.8
-1.0 -0.5 0.0 0.5 1.0
x
y
V. Apprentissage en pratique
Différentes valeurs de Q
+
+ + +
+ +
++ + +
+ + +
+ +
Q = 1
x
y
+
+ + +
+ +
++ + +
+ + +
+ +
Q = 2
x
y
+
+ + +
+ +
++ + +
+ + +
+ +
Q = 3
x
y
+
+ + +
+ +
++ + +
+ + +
+ +
Q = 4
x
y
+
+ + +
+ +
++ + +
+ + +
+ +
Q = 5
x
y
+
+ + +
+ +
++ + +
+ + +
+ +
Q = 6
x
y +
+ + +
+ +
++ + +
+ + +
+ +
Q = 7
x
y
+
+ + +
+ +
++ + +
+ + +
+ +
Q = 8
x
y
+
+ + +
+ +
++ + +
+ + +
+ +
Q = 9
x
y
+
+ + +
+ +
++ + +
+ + +
+ +
Q = 10
x
y
V. Apprentissage en pratique
Erreurs selon Q
+ + + + + + + + +
+
2 4 6 8 10
0.00 0.05 0.10 0.15 0.20 0.25
Q
erreur
+ +
+
+
+
+
+
+ +
+ apprentissage
test
V. Apprentissage en pratique
Choix de Q par validation croisée
2 4 6 8 10
0.10 0.11 0.12 0.13 0.14 0.15 0.16
Q
erreur
V. Apprentissage en pratique
Stratégie pour éviter le surapprentissage
1. bien choisir Q le nombre de neurones de la couche 2. pénalisation du risque empirique
Rbn(w) +λkwk2
V. Apprentissage en pratique
Choix de λ pour Q fixé à 10
+
+ ++
+ +
++ + +
+ + +
+ +
0.1
x
y
+
+ ++
+ +
++ + +
+ + +
+ +
0.01
x
y
+
+ ++
+ +
++ + +
+ + +
+ +
0.001
x
y
+
+ ++
+ +
++ + +
+ + +
+ +
1e-04
x
y
+
+ ++
+ +
++ + +
+ + +
+ +
1e-05
x
y
+
+ ++
+ +
++ + +
+ + +
+ +
1e-06
x
y +
+ ++
+ +
++ + +
+ + +
+ +
1e-07
x
y
+
+ ++
+ +
++ + +
+ + +
+ +
1e-08
x
y
+
+ ++
+ +
++ + +
+ + +
+ +
1e-09
x
y
+
+ ++
+ +
++ + +
+ + +
+ +
sans régularisation
x
y
V. Apprentissage en pratique
Erreur selon λ
+
+
+ + + + + + +
2 4 6 8
0.0 0.1 0.2 0.3 0.4
- log10
(
l)
erreur
+ +
+
+
+
+
+
+
+ apprentissage
test
V. Apprentissage en pratique
Choix de λ par validation croisée
2 4 6 8
0.10 0.12 0.14 0.16 0.18 0.20 0.22
- log10
(
l)
erreur
V. Apprentissage en pratique
Stratégie pour éviter le surapprentissage
1. bien choisir Q le nombre de neurones de la couche 2. pénalisation du risque empirique
Rbn(w) +λkwk2
3. injection de bruit : modification des données en entrée durant l’entrainement
V. Apprentissage en pratique
Exemple avec Boston
4 5
20 40 60 80
size
RMSE
decay
0.001 0.01 0.1 0.5 1
V. Apprentissage en pratique
Exemple avec Boston
Différentes méthodes
• Random Forest avec 10 variables par split : MSE ' 13.77
• Boosting de 300 arbres de 5 de profondeur avec pénalisation à 0.05 : MSE ' 11.20
• Perceptron à une couche cachée de 30 neurones et une pénalisation de 1 : MSE ' 11.92
VI. Deep Learning
Deep Learning
• réseaux de neurones à architecture profonde (dès 3 couches)
• nécessite beaucoup d’exemples d’apprentissage
• temps d’apprentissage important Historique
• dès les années 1990’
• industrialisation : 2000’
• révolution du deep learning : 2010’
Outils
• TensorFlow
• Keras
VI. Deep Learning
Applications
• médecine, santé
• reconnaissance d’image
• reconnaissance vocale
• traduction automatique
Exemples en reconnaissance d’image
• AlexNet (2012) : réseau convolutif, 8 couches, 60 millions de paramètres à régler, 1 semaine de calculs sur deux GPU
erreur en reconnaissance d’image : 15%
• GoogleNet (2014) : inception
erreur en reconnaissance d’image : 7%
• Residual Network (2016) : 152 couches
erreur en reconnaissance d’image : 3%