View
7
Download
1
Category
Preview:
Citation preview
Marco Pedersoli Cours 5 -
Apprentissage MachineSéance 5:
EntraînementETS
dep. de génie de la production automatiséMarco Pedersoli
Cours Hiver 2018
Marco Pedersoli Cours 5 -
Appr. traditional vs. profondTraditional:● Fonction objectif convexe:
+ on utilise des outil d’optimisation bien étudiés et on à des garanties sur la qualité de la solution
- représentation limitée: soit fonction linéaire, soit transformations (noyeux), mais elles ne sont pas apprises
2
Profond:● Fonction objectif non-convexe:
- on n’as pas de garantie sur la qualité de la solution et il faut trouver de nouvelle techniques d’optimisation
+ représentation plus puissante: on peut apprendre une hiérarchie de représentations
Marco Pedersoli Cours 2 -
Phases de l’apprentissage● Entraînement:
■ on trouve les paramètres ■ appris avec une optimisation telle qu’on minimise une
fonction objective sur la base d’entrainement
● Validation: ■ soit , on trouve les Hyper-paramètres ■ paramètres non trouvés dans l’optimisation■ il faut utiliser une base de validation pour trouver leurs
valeurs optimales
● Évaluation: ■ soient et , on calcule la performance sur la base de
test
3
Entraînement
Validation
Sélection du Modèle
Evaluation
Paramètres
Paramètres et hyper-paramètres
Marco Pedersoli Cours 5 -
Défis de l’optimisation● Efficacité du calcul (Eff.)
○ beaucoup de données pour une bonne approx de f○ apprentissage (sub-) linear en nombre d’échantillons○ apprentissage local → algorithme du gradient○ comment réduire le coût de calcul du gradient!
● Qualité de la solution (Qlt.)○ f non convexe → pas de garanties sur la solution○ comment éviter des mauvais minima!
4
Marco Pedersoli Cours 5 -
Plan de la séance:● Estimation du gradient (Eff. Qlt.)● Coefficient d’apprentissage (Qlt. Eff.)● Momentum (Eff. Qlt.)● Algorithmes adaptatifs (Eff. Qlt.)● Initialisation de poids (Qlt. Eff.)● Régularisation (Qlt. Eff.)
5
Marco Pedersoli Cours 3 -
L’algorithme du gradient:
6
Marco Pedersoli Cours 3 -
Rétro Propagation• Apprentissage = Changer les poids synaptiques w afin de réduire E• Calculer le gradient de E sur w pour chaque couche• Utiliser la règle de chaîne (“chain rule”) de la dérivation• Propager l’erreur et calculer le gradient de E sur w pour chaque ‘boîte’
x y* Fnet
w
x y* F’
net
w
x y* F’
net
w
Marco Pedersoli Cours 5 -
L’algorithme du gradient
8
Marco Pedersoli Cours 5 -
L’algorithme du gradient
9
Pour chaque mise à jour de W il faut calculer le gradient sur tous les exemples!
Marco Pedersoli Cours 5 -
L’algorithme du gradient● Garantie de convergence à un minimum
global pour des fonctions objectif convexes● Minimum local pour fonctions objectif
non-convexes● Temps de calcul proportionnel au nombre
d'échantillons → très lent pour de grandes bases de données
10
Marco Pedersoli Cours 5 -
Estimation du gradient● Estimation de f à partir d’exemples:
○ Avec échantillons infinis (si el estimateur n’est pas biaisé) on obtient f
○ Comme on n’a pas échantillons infinis, il faut utiliser un ensemble de validation!
● Estimation du Gradient:○ On peut utiliser le vrai gradient (mais d’une estimation de f)○ On peut utiliser une estimation du gradient aussi!
11
Marco Pedersoli Cours 5 -
Gradient StochastiqueAu lieu d’utiliser tous les échantillons on estime le gradient avec un seul échantillon à la fois
12
source: wikipedia
Marco Pedersoli Cours 5 -
Estimation stochastique○ Estimation du gradient non biaisé :
■ Sélection d’échantillons au hasard pour éviter biais ■ Avec assez d'échantillons on obtiendra le vrai
gradient■ (Si on passe le mêmes exemples plusieur fois
l’estimation devient biaisé)
○ Plus de variance:■ Gradient + bruit■ Mais bruil = Régularisation
○ Solution avec du bruit:■ On utilise l’ensemble de validation pour trouver la
bonne solution■ Mais on réduit le coefficient d’apprentissage
13
source: wikidocs
Marco Pedersoli Cours 5 -
Compromis entre le vrai gradient et le gradient stochastique.Souvent on appelle le gradient en mini-lots aussi gradient stochastique
Gradient en mini-lots
14
Marco Pedersoli Cours 5 -
Comparison:Vrai gradient1
Tout l'entraîn.2
No
Moyenne
Grande
Basse
15
Approximation
un mini-lot
Oui3
Bonne4
Moyenne
Haute5
Mauvaise Approx.
un-exemple
Oui3
Moyenne4
No (ou Difficile)
Moyenne
lots mini-lots stochastiqueEstimation:
Mémoire:
Régularisation:
Solution:
Parallélisation:
Vitesse:1: Même si c’est le vrai gradient d'ensemble d'entraînement, c’est toujours une approximation du gradient de la distribution de données2: On peut calculer le gradient d’un exemple à la fois, donc c’est n’est pas nécessaire d’utiliser beaucoup de mémoire3: De fois le bruit introduit par la stochasticité peut aider à sortir de minimum locaux et donc trouver une meilleure solution4: Même si l’estimation du gradient est bruyant, si on diminue le coefficient d’apprentissage on peut arriver à une bonne solution 5: Avec des mini-lots on peut trouver un bon compromis entre tous le facteurs, mais il y à un nouveau hyper-paramètre, la taille du lot.
Marco Pedersoli Cours 5 -
Exemple en python
16
X = np.random.random((dim_in,n_samples))Y = np.random.random((dim_out,n_samples))
model = perceptron(dim_in, dim_out, lr = 0.1)
for e in range(100): Yest = model.forward(Xtr) E = loss.forward(Yest,Ytr) dy = loss._backward() model.update(dy) plot( E )
Gradient par lotsorder = np.range( Nsamples )for e in range(100): numpy.random.shuffle(order) E=[] for b in range(Nsamples/batch_size):
smp = order[ b*batch_size:(b+1)*batch_size ] Xtrb = Xtr[:,smp] Ytrb = Ytr[:,smp] Yest = model.forward(Xtrb) E.append( loss.forward(Yest,Ytrb) ) dy = loss._backward() model.update(dy)
plot( E.mean() )
Gradient par mini-lots
Marco Pedersoli Cours 5 -
Exemple en python
17
order = np.range( Nsamples )for e in range(100): numpy.random.shuffle(order) E=[] for b in range(Nsamples/batch_size):
smp = order[ b*batch_size:(b+1)*batch_size ] Xtrb = Xtr[:,smp] Ytrb = Ytr[:,smp] Yest = model.forward(Xtrb) E.append( loss.forward(Yest,Ytrb) ) dy = loss._backward() model.update(dy)
plot( E.mean() )
Marco Pedersoli Cours 5 -
Autres estimations du gradient○ Estimation basée sur des échantillons du poids○ L'espérance de la fonction objectif autour W donne un
estimation du gradient
18
Marco Pedersoli Cours 5 -
Estimation génétique (ou évolutive)○ Aussi avec des fonctionnes discrètes○ Estimation avec une grande variance →plus lent! ○ Simple parallélisation
19Source: OpenAi blog post
Evolution Strategies as a Scalable Alternative to Reinforcement Learning
Marco Pedersoli Cours 5 -
Plan de la séance:● Estimation du gradient● Coefficient d’apprentissage● Momentum● Algorithmes adaptatifs● Initialisation de poids● Régularisation
20
Marco Pedersoli Cours 3 -
L’algorithme du gradient:
21
Marco Pedersoli Cours 5 -
Coefficient d’apprentissage
● Coefficient d’apprentissage η trop grand: divergence
● Coefficient d’apprentissage η trop petit: apprentissage trop lent
● Trouver le bon η dans l’ensemble de validation
22Source: Convolutional Neural Networks, Stanford
Marco Pedersoli Cours 5 -
Coefficient d’apprentissage
23
Comment réduire le coeff. d’apprentissage:
● Échelon○ ex: chaque 10 epoques
η = η / 10
● Continue○ ex: η = η0 / (1+epoque)
● À convergence○ ex: si error < epsilon → η = η / 10
Source: https://github.com/FlorianMuellerklein/Identity-Mapping-ResNet-Lasagne
Marco Pedersoli Cours 5 -
Nouvelle méthode:
24
Gradient stochastique avec redémarrage à chaud :●● aide à éviter des minimum locaux● convergence plus rapide● on arrive à un meilleure solution
[I. Loshchilov & F. hutter, “SGDR: STOCHASTIC GRADIENT DESCENT WITH WARM RESTARTS”]
Marco Pedersoli Cours 5 -
Redémarrage à chaud
25
coefficient d’apprentissage:
Marco Pedersoli Cours 5 -
Avec un coefficient d’apprentissage trop grand l’apprentissage diverge!!!
26
Exemple en python
Marco Pedersoli Cours 5 -
Plan de la séance:● Estimation du gradient● Coefficient d’apprentissage● Momentum● Algorithmes adaptatifs● Initialisation de poids● Régularisation
27
Marco Pedersoli Cours 5 -
Gradient Normal Gradient avec momentum
Momentum:
28
Vidéos: https://www.youtube.com/watch?v=7HZk7kGk5bUhttps://www.youtube.com/watch?v=3NGiZKKjoEk
Marco Pedersoli Cours 5 -
Momentum:
29
Marco Pedersoli Cours 5 -
Momentum de Nesterov:
30Source: Convolutional Neural Networks, Stanford
Le momentum de Nesterov est une variante où le gradient est calculé après le changement de poids
Marco Pedersoli Cours 5 -
Accélère l’apprentissage en:● Réduisant l’oscillation pendant
l’apprentissage.● Accélérant l’apprentissage aux
endroits où la surface d’erreur est planaire.
● Décélérant l’apprentissage quand le signe de la dérivée de l’erreur change.
Désavantages:● Un paramètre de plus à régler ( ) ● Peut créer de nouvelle oscillations.
Momentum:
31
Marco Pedersoli Cours 5 -
Plan de la séance:● Estimation du gradient● Coefficient d’apprentissage● Momentum● Algorithmes adaptatifs● Initialisation de poids● Régularisation
32
Marco Pedersoli Cours 5 -
Adagrad● Idée: le coefficient d’apprentissage est
différent pour chaque dimension● Utile avec donnée épars (“sparse data”)● Le coefficient d’apprentissage est plus
grand pour les paramètres dont on n’as pas beaucoup d’observations
33
Marco Pedersoli Cours 5 -
Adagrad
34
● Le dénominateur devient de plus en plus grand jusqu’à n’avoir plus de changement du gradient
Marco Pedersoli Cours 5 -
RMSprop● Amélioration d’Adagrad: utilise une
moyenne décroissante (“decaying average”)
35
Marco Pedersoli Cours 5 -
ADAM● ADaptive Moment Estimation● Mélange entre momentum et estimation
adaptative du gradient
36
Marco Pedersoli Cours 5 -
Méthodes adaptatives ou non?
37
Marco Pedersoli Cours 5 -
Plan de la séance:● Estimation du gradient● Coefficient d’apprentissage● Momentum● Algorithmes adaptatifs● Initialisation de poids● Régularisation
38
Marco Pedersoli Cours 6 -
Initialisation du poids
39
● On travaille avec des problèmes non-convexes● On peut arriver à des mauvaises solutions avec la
méthode du gradient● L’initialisation de poids est donc très important● Arrêt anticipé adjoint un connaissance préalable basée
sur l’initialisation des poids
Marco Pedersoli Cours 6 -
Initialisation du poids
40
● Basée sur de simples heuristiques● Rupture de la symétrie● Initialisation avec avec des valeurs au hasard
échantillonnées d’une distribution Gaussienne ou Uniforme
● La norme de l’initialisation est limitée pour éviter l’explosion des gradients (surtout pour les réseaux récurrents)
Marco Pedersoli Cours 6 -
Initialisation des poids
41
● generally:● Glotor et. al:● Saxe et al.: initialisation orthonormale● He et al.: pour convolution● Mishkin and Matas: initialisation
orthonormale + normalisation de moyenne et variance de chaque couche
nombre d’entrées
nombre de sorties
Marco Pedersoli Cours 6 -
Init. basé sur des auto-encodeursPré-entraînement:(“Greedy Layer-wise training”) ● On entraîne chacune des couches individuellement de
manière non-supervisée avec un auto-encodeurs.
● On finalise l’apprentissage avec le système complet de manière supervisée.
42
Marco Pedersoli Cours 6 -
Init. basé sur des auto-encodeurs
● Réseau avec 3 couches
● Entrée avec 6 dimensions
● Classification de 3 catégories y={0,1,2}
43
Marco Pedersoli Cours 6 -
Init. basé sur des auto-encodeurs
44
Étape 1 : Entraîner le
premier auto-encodeur
Étape 2 : Entraîner le second
auto-encodeur
Marco Pedersoli Cours 6 -
Étape 4 : Entraîner de manière
supervisée tout le réseau(fine tuning)
Init. basé sur des auto-encodeurs
Marco Pedersoli Cours 6 -46
Exemple en python Perceptron Réseau à 3 couches
Marco Pedersoli Cours 5 -
Plan de la séance:● Estimation du gradient● Coefficient d’apprentissage● Momentum● Algorithmes adaptatifs● Initialisation de poids● Régularisation
47
Marco Pedersoli Cours 2 -
Régularisation● Contraintes sur l'espace de recherche pour
choisir des bonnes soluciones● Une façon d'ajouter de la connaissance à
priori sur notre modèle● Autre manière pour réduire la variance (et
donc augmenter le biais)
48
Marco Pedersoli Cours 2 -
Sur-apprentissage
49
Marco Pedersoli Cours 2 -
Régularisation
50
Marco Pedersoli Cours 2 -
Régularisation● Arrêt anticipé (“Early stopping”)● Pénalité sur le poids synaptiques● Partage de paramètres● Augmentation des données● Apprentissage semi-supervisé et multitâche● Dropout et Normalisation du lot
51
Marco Pedersoli Cours 2 -
Arrêt anticipé● Dans les méthodes itératives, c’est la façon la plus simple
de trouver un équilibre entre biais et variance● On conditionne le poids à
ne s'éloigner trop de la solution initiale
● Le nombre d'itérations est donc un hyper-paramètre
● À la fin, refaire l'entraînementavec aussi la validation
52
Marco Pedersoli Cours 2 -
Régularisation● Pénalité sur le poids synaptiques
● Pas de pénalité sur le seuil ● Pour simplicité on assume
la même régularisation surchaque couche
53
Marco Pedersoli Cours 2 -
Régularisation L2
“Weight decay”
54
Marco Pedersoli Cours 2 -
Régularisation L1
“Sparsity inducing”
55
Marco Pedersoli Cours 2 -
ComparativeL2 L1
56
Marco Pedersoli Cours 2 -
Combinaison L1 + L2
● Induire régularisation par groupes● Exploiter la structure de données
○ L’entré est une combinaison de K modalités différentes et on veut avoir une représentation éparse
57
Marco Pedersoli Cours 2 -
Autres normes● L0 conte combien de dimension sont actives,
mais non différentiable● L1 est une relaxation de L0
● Lmax pour avoir des valeurs proches
● aussi différences entre poids, etc.
58
Marco Pedersoli Cours 2 -
Partage de paramètres (“parameters sharing”)● Certaines paramètres sont connectés à d’autres et il
doivent avoir la même valeur● Deux façons: dur et mou● Dur: le paramètres sont exactement égales● Mou: dans la loss il y a une pénalité qui force les
paramètre á être similaires● Ex: réseau convolutif ou récurrent
59
Marco Pedersoli Cours 2 -
Augmentation de données● Transformation invariante à
l’espace d’entrée● Images:
○ Retournement de l’image (“flip”)○ Changement de couleurs○ Changement d’échelle○ Introduction de bruit
● Son:○ Changement de volume○ Changement de ton○ etc.
60Cats vs Dogs - WordPress.com
Marco Pedersoli Cours 2 -
Apprentissage semi-supervisé● On a des exemples avec des annotations
et d’autres sans annotations● Utiliser les exemples sans annotations
comme une forme de régularisation● Ex: on apprend un classifieur avec les
exemples annotés et on l’utilise pour annoter les autres exemples
61
Marco Pedersoli Cours 2 -
Apprentissage multitâche● On apprend plusieur tâches en même
temps● Chaque tâche fait de régularisation aux
autres● Les tâches doivent être connectées● Ex: on apprend un réseau pour faire de la
classification et détection d’objets62
Marco Pedersoli Cours 2 -
Modèle d’ensemble(“Model Ensembling”)● Construire plusieurs modèles qui votent● Plusieurs manières de combiner les modèles
○ “Bagging”: somme de chaque sortie○ Somme pondéré: on apprend l’importance de chaque
réseau (soit statiquement ou dynamiquement avec un autre réseau)
● Normalement on change l’ensemble d'entraînement● Dans l’apprentissage profond on peut changer d’autres
hyper-paramètres: coeff. d’appr., init. de poids, etc.63
Marco Pedersoli Cours 2 -
Dropout● Ignore des neurones ● À chaque itération● Pendant propagation
directe et retroprop.● Neurones choisi au hasard avec probabilité p● Introduir bruit à chaque layer (augmentation de donne est
seulement à l’entrée)● Eviter la coadaptation de neurones: chaque neurone doit
fonctionner indépendamment des autres64
Marco Pedersoli Cours 2 -
Dropout● Pendant l’évaluation on utilise tous les neurones (on veut
une sortie déterministe) mais divisée par un facteur p● Plus d’itérations pour arriver à la convergence, mais
chaque itération est plus rapide (manque de neurones)● Autre vision:
○ Pendant l’apprentissage on apprend 2H réseaux différentes, H est le nombre de neurones
○ Pendant l’évaluation on utilise un seul réseau, mais on peut penser qui est l’ensemble de 2H
65
Marco Pedersoli Cours 2 -
Normalisation du lot (“batch normalisation”)
● Normalisation de chaque couche afin que la sortie a moyenne 0 et écart type 1● Normalement on normalise l’entrée du
réseau, avec la normalisation du lot on fait ça pour chaque couche
● Avantages:○ L’apprentissage devient plus rapide○ On peut apprendre de tâches plus
difficiles et des réseau plus profondes○ L’initialisation des poids est moins
important
66
Marco Pedersoli Cours 2 -
Entraînement des réseaux de neurones (profonds)● La méthode du gradient stochastique avec
retro-propagation marche très bien, mais● Il y a beaucoup de triches et paramètres à ajuster
○ Coefficient d’apprentissage et taille du lot○ Initialisation des poids○ Techniques de régularisation○ Architecture du réseau
67
Marco Pedersoli Cours 5 -
Prochaine séance:● Réseaux convolutifs● Convolution 1d, 2d et 3d● Généralisation● Pooling● Améliorations et architectures
68
Recommended