Sujets couverts
description
Transcript of Sujets couverts
IFT 615 – Intelligence artificielle
Apprentissage supervisé
Froduald KabanzaDépartement d’informatique
Université de Sherbrookeplaniart.usherbrooke.ca/kabanza/cours/ift615
Sujets couverts
● Introduction
● Classification linéaire avec le Perceptron et la régression logistique
● Réseau de neurones artificiel
IFT615 Froduald Kabanza 2
INTRODUCTION
IFT615 Froduald Kabanza 3
● Un problème d’apprentissage supervisé est formulé comme suit:« Étant donné un ensemble d’entraînement de N exemples:
où chaque a été généré par une fonction inconnue , découvrir une nouvelle fonction (modèle ou hypothèse)
qui sera une bonne approximation de (c’est à dire ) »
Apprentissage supervisé
IFT615 Froduald Kabanza 4
Espace d’hypothèses
Hf(x)
hopt(x) H
Error
● Données : ensemble d’entraînement de N exemples:
● Problème : trouver h(x) tel que
● Un algorithme d’apprentissage peut donc être vu comme étant une fonction à laquelle on donne un ensemble d’entraînement et qui donne en retour la fonction h
Apprentissage supervisé
IFT615 Froduald Kabanza 5
avec
● Données : ensemble d’entraînement de N exemples:
● Problème : trouver h(x) tel que
● Le problème d’apprentissage est réalisable si f(x) ϵ H
Apprentissage supervisé
IFT615 Froduald Kabanza 7
avec
Espace d’hypothèse
f(x)
hopt(x) H
ErrorH
● Étant donné un ensemble de données d’entrainement, l’apprentissage est un problème de recherche de l’hypothèse h dans un espace d’hypothèses H, tel que h minimise la distance à f(x)
● Les données sont souvent bruités et disponibles en quantité limitée. Il y a donc une variation dans les données et dans les modèles (représentations).
● L’erreur dépend de la qualité des données d’entrainements et de la méthode utilisée pour sélectionner/chercher la bonne hypothèse
Apprentissage supervisé
IFT615 Froduald Kabanza 8
Espace d’hypothèse
f(x)
hopt(x) H
ErrorH
● Dépendamment des approches d’apprentissage, la fonction h peut être représenté de différente manière:
Règle de production (if-then) avec la logique du premier ordre Arbre de décision Fonction linéaires , polynomiales Réseau de neurones artificiel Programmes Java Etc.
● Dans cette leçon, nous voyons la régression linéaire et le réseau de neurones artificiel
● Le livre couvre différentes autres approches
Modèles et approche pour chercher la fonction h
IFT615 Froduald Kabanza 9
● Comment évaluer le succès d’un algorithme d’apprentissage? on pourrait regarder l’erreur moyenne commise sur les exemples
d’entraînement, mais cette erreur sera nécessairement optimiste» a déjà vu la bonne réponse pour ces exemples!» on mesurerait donc seulement la capacité de l’algorithme à mémoriser
● Ce qui nous intéresse vraiment, c’est la capacité de l’algorithme à généraliser sur de nouveaux exemples ça reflète mieux le contexte dans lequel on va utiliser h
● Pour mesurer la généralisation, on met de côté des exemples étiquetés, qui seront utilisés seulement à la toute fin, pour calculer l’erreur on l’appel l’ensemble de test
Mesure de la performance d’un algorithme d’apprentissage
IFT615 Froduald Kabanza 10
● Étant donnés un ensemble de points dans R2, approcher cet ensemble par une fonction f d’une seule variable.
● Données d’entraînement : paires (x, f(x))
● Hypothèse: équation d’une fonction h(x) qui approxime f(x)● Espace d’hypothèses : ensemble de polynômes de degrés k.
Exemple familier
IFT615 Froduald Kabanza 11
Exemples d’espaces d’hypothèses
IFT615 Froduald Kabanza 12
f(x) = 0.5 + x + x2 + 6x3
H1H2H3
H1={a+bx}; H2={a+bx+cx2}; H3={a+bx+cx2+dx3};Linéaire; Quadratique; Cubique;
H1 H2 H3
Comment choisir parmi plusieurs hypothèses consistants?
Hypothèse : fonction linéaire
Hypothèse :Polynôme de degré 7
Données : polynôme degré 6Hypothèse : fonction linéaire
Hypothèse: fonction sinusoïdale
Utiliser le principe du rasoir d’Ockham: maximiser une combinaison/compromis entre consistance et simplicité
IFT615 Froduald Kabanza 13
Compromis entre expressivité et complexité
● Nous avons vu qu’un problème d’apprentissage est réalisable si l’espace d’hypothèses correspondant contient la vraie fonction.
● Dans ce cas, pourquoi ne pas choisir simplement l’espace d’hypothèse le plus large possible (exemple: programmes Java ou machine de Turing)?
● Parce qu’il existe en général un compromis entre l’expressivité de l’espace d’hypothèse la complexité de la recherche d’une bonne hypothèse dans cet espace
● On a en plus un compromis entre l’expressivité de l’espace d’hypothèse l’efficacité en temps de calcul de h(x) et sa simplicité de représentation
IFT615 Froduald Kabanza 14
REGRESSION LINÉAIRE (À UNE VARIABLE)
IFT615 Froduald Kabanza 15
16
Régression linéaire à une variable
● Données : Un ensemble de points y = f(x)
● Trouver la fonction hw(X) = y = w1x + w0 qui minimise la distance (erreur) à f(x)
● Cela revient à trouver les valeurs des poids w=[w0,w1] qui rende la perte empirique minimale.
● On utilise une fonction de perte quadratique
Loss(hw ) = =
IFT615 Froduald Kabanza
17
Régression linéaire à une variable
● On cherche w*=argminw Loss(hw), avec Loss(hw ) = =
● La somme atteint un minimum lorsque les dérivée partielles par rapport à w0 et w1 valent zéro.
● Cela donne la solution unique:
Nxwyw
xxN
yxyxNw
ii
ii
iiii
/)( 10
221
IFT615 Froduald Kabanza
18
Régression par la descente du gradient
● Pour les modèles non linéaires, les équations définissant la perte minimale n’on souvent pas de formule fermée.
● On utilise la descente du gradient
w = any point loop until convergence do: for each wi in w do: wi = wi – α ∂ Loss(w)
∂ wi
α : pas d’apprentissage
IFT615 Froduald Kabanza
19
Régression par la descente du gradient
● Pour simplifier, supposons que l’on a un seul exemple d’apprentissage (x,y).
● La la règle de mise à jour
donne
w0 ← w0 + α(y-hw(x))w1 ← w1 + α(y-hw(x))*x
wi = wi – α ∂ Loss(w)∂ wi
IFT615 Froduald Kabanza
20
Régression par la descente du gradient
● Si on a N exemples d’entraînement on veut rendre minimal la perte pour chaque exemple. Cela donne:
w0 ← w0 + α w1 ← w1 + α * xj
● C’est la règle d’apprentissage de la descente du gradient en batch.
● La descente du gradient stochastique examine un point d’apprentissage à la foi, choisie au hasard, en appliquant la règle pour un exemple unique vu précédemment.
● Cela se généralise facilement à la régression linéaire à plusieurs variables, c.à.d., cas xi sont des vecteurs. Voir le livre, section 18.62.
IFT615 Froduald Kabanza
RÉGRESSION LINÉAIRE À SEUIL DURE
Classifieurs linéaires
IFT615 Froduald Kabanza 21
22
Classificateur linéaire à seuil dur
● Outre la régression, les fonctions linéaires peuvent être utilisées pour la classification Étant donné un ensemble d’entraînement (d1, y1), …, (dn, yN) apprendre à séparer les données en deux classes.
• hw(x) retourne 0 ou 1• w0 + w1x1 w2x2 peut se réécrire w0x0 + w1x1 + w2x2 , avec x0=1, c.a.d. w.x
• On a donc hw(x)= 1 si w.x ≥ 0 et 0 sinon• C.à.d., hw(x)=Threshold(w.x)
• Règle d’apprentissage
wi ← wi + α(y-hw(x))*xi
• C’est la règle d’apprentissage du perceptron à seuil dur.
(x1,x2) 0 ou 1
Équation de la ligne
X2 = -w0/w2 – (w1/w2)x1IFT615 Froduald Kabanza
Perceptron(Rosenblatt, 1957)
IFT615 Froduald Kabanza 23
● Un des plus vieux algorithmes de classification● Idée: modéliser la décision à l’aide d’une fonction linéaire, suivi d’un seuil:
où si , sinon
● Le vecteur de poids correspond aux paramètres du modèle● On ajoute également un biais w0 , qui équivaut à ajouter une entrée
fictive x0
. . .
Threshold
1w0
Perceptron(Rosenblatt, 1957)
IFT615 Froduald Kabanza 24
● L’algorithme d’apprentissage doit adapter la valeur des paramètres (c’est-à-dire les poids et le biais) de façon à ce que soit la bonne réponse sur les données d’entraînement
● Algorithme du Perceptron:1. pour chaque paire
a. calculerb. si
• (mise à jour des poids et biais)2. retourner à 1 jusqu’à l’atteinte d’un critère d’arrêt (nb. maximal d’itérations
atteint ou nb. d’erreurs est 0)• La mise à jour des poids est appelée la règle d’apprentissage du
Perceptron. La multiplicateur est appelé le taux d’apprentissage
Perceptron(Rosenblatt, 1957)
IFT615 Froduald Kabanza 25
● L’algorithme d’apprentissage doit adapter la valeur des paramètres (c’est-à-dire les poids et le biais) de façon à ce que soit la bonne réponse sur les données d’entraînement
● Algorithme du Perceptron:1. pour chaque paire
a. calculerb. si
• (mise à jour des poids et biais)2. retourner à 1 jusqu’à l’atteinte d’un critère d’arrêt (nb. maximal d’itérations
atteint ou nb. d’erreurs est 0) • La mise à jour des poids est appelée la règle d’apprentissage du
Perceptron. La multiplicateur est appelé le taux d’apprentissage
forme vectorielle
Exemple 1
IFT615 Froduald Kabanza 26
● Simulation avec biais, α = 0.1
● Initialisation : w [0.5, 0, 0]⟵
● Paire (x1,y1) : h(x1) = Threshold( w . x1) = Threshold(0.5) = 1 puisque h(x1) = y1, on ne fait pas de mise à jour de w
D ensembleentraînement
xt yt
[1,2,0] 1
[1,0,3] 0
[1,3,0] 0
[1,1,1] 1
Exemple 1
IFT615 Froduald Kabanza 27
● Simulation avec biais, α = 0.1
● Valeur courante : w [0.5, 0, 0]⟵
● Paire (x2,y2) : h(x2) = Threshold( w . x2) = Threshold(0.5) = 1 puisque h(x2) ≠ y2, on met à jour w
» w ⟵ w + α ( y2 - h(x2) ) x2 = [0.5,0, 0] + 0.1 * (0 – 1) [1, 0, 3] = [0.4, 0, -0.3]
D ensembleentraînement
xt yt
[1,2,0] 1
[1,0,3] 0
[1,3,0] 0
[1,1,1] 1
Exemple 1
IFT615 Froduald Kabanza 28
● Simulation avec biais, α = 0.1
● Valeur courante : w [0.4, 0, -0.3]⟵
● Paire (x3,y3) : h(x3) = Threshold( w . x3 + b) = Threshold(0.4) = 1 puisque h(x3) ≠ y3, on met à jour w et b
» w ⟵ w + α ( y3 - h(x3) ) x3 = [0.4, 0, -0.3] + 0.1 * (0 – 1) [1, 3, 0] = [0.3, -0.3, -0.3]
D ensembleentraînement
xt yt
[1,2,0] 1
[1,0,3] 0
[1,3,0] 0
[1,1,1] 1
Exemple 1
IFT615 Froduald Kabanza 29
● Simulation avec biais, α = 0.1
● Valeur courante : w [0.3, -0.3, -0.3]⟵
● Paire (x4,y4) : h(x4) = Threshold( w . x4 + b) = Threshold(-0.3) = 0 puisque h(x4) ≠ y4, on met à jour w et b
» w ⟵ w + α ( y4 - h(x4) ) x4 = [0.3, -0.3, -0.3] + 0.1 * (1 – 0) [1, 1, 1] = [0.4, -0.2, -0.2]
● Et ainsi de suite, jusqu’à l’atteinte d’un critère d’arrêt...
D ensembleentraînement
xt yt
[1,2,0] 1
[1,0,3] 0
[1,3,0] 0
[1,1,1] 1
IFT615 Froduald Kabanza 30
Exemple 2
y=(x)=Threshold(w.x)
c = 0.2wi = α (d-h(xi))xixt yt
1.0 1.0 1
9.4 6.4 0
2.5 2.1 1
8.0 7.7 0
0.5 2.2 1
7.9 8.4 0
7.0 7.0 0
2.8 0.8 1
1.2 3.0 1
7.8 6.1 0
1. Initialisation : w = [w0 ,w1, w2] = [-.6,.75, .5]
2. y= Threshold(-.6×1+.75×1+.5×1)=Threshold(.65)=1;
w = 0.2(1-1)X= 0; donc w est inchangé.
3. y= Threshold(-.6×1+.75×9.4+.5×6.4)=Threshold(9.65)=1;
w = -.4X; donc w = -.4 *[1,9.4, 6.4] = [-3.01, -2.06, -1]
…
500. w = [+10.9 + -1.3, -1.1].
Équation de la ligne séparant les données : -1.3x1 + -1.1x2+10.9 = 0.
[Luger, 2005] Artificial Intelligence
1
i=1
nw.x = Σ wixi
(x)
w0
IFT615 Froduald Kabanza 31
Exemple 2x1 x2 d
1.0 1.0 1
9.4 6.4 -1
2.5 2.1 1
8.0 7.7 -1
0.5 2.2 1
7.9 8.4 -1
7.0 7.0 -1
2.8 0.8 1
1.2 3.0 1
7.8 6.1 -1
Après dix itérations
Surface de séparation
IFT615 Froduald Kabanza 32
● Le Perceptron cherche donc un séparateur linéaire entre les deux classes
● La surface de décision d’un classifieur est la surface (dans le cas du perceptron en 2D, une droite) qui sépare les deux régions classifiées dans les deux classes différentes
surfacede décision
Convergence et séparabilité
IFT615 Froduald Kabanza 33
● Si les exemples d’entraînement sont linéairement séparables (gauche), l’algorithme est garanti de converger à une solution avec une erreur nulle sur l’ensemble d’entraînement, quel que soit le choix de
● Si non-séparable linéairement (droite), pour garantir la convergence à une solution avec la plus petite erreur possible en entraînement, on doit décroître le taux d’apprentissage, par ex. selon
Courbe d’apprentissage
IFT615 Froduald Kabanza 34
● Pour visualiser la progression de l’apprentissage, on peut regarder la courbe d’apprentissage, c’est-à-dire la courbe du taux d’erreur (ou de succès) en fonction du nombre de mises à jour des paramètres
linéairement séparable
pas linéairement séparable
pas linéairement séparable, avec taux
d’app. décroissant
RÉGRESSION LOGISTIQUEClassifieurs linéaires
IFT615 Froduald Kabanza 35
Régression logistique
IFT615 Froduald Kabanza 36
● Idée: plutôt que de prédire une classe, prédire une probabilité d’appartenir à la classe 1 (ou la classe 0, ça marche aussi)
● Pour choisir une classe, prendrela plus probable selon le modèle si choisir la classe 1 sinon, choisir la classe 0
. . .
Logistic
Dérivation de la règle d’apprentissage
IFT615 Froduald Kabanza 37
● Pour obtenir une règle d’apprentissage, on définit d’abord une perte
si , on souhaite maximiser la probabilité si , on souhaite maximiser la probabilité
● On dérive la règle d’apprentissage comme une descente de gradient
ce qui donne
● La règle est donc la même que pour le Perceptron, mais la définition de est différente
LIMITATIONS DES CLASSIFIEURS LINÉAIRES
Classifieurs linéaires
IFT615 Froduald Kabanza 38
Limitation des classifieurs linéaires
IFT615 Froduald Kabanza 39
● Cependant, la majorité des problèmes de classification ne sont pas linéaires
● En fait, un classifieur linéaire ne peut même pas apprendre XOR!
00
1
1 00
1
1 00
1
1
?
AND OR XOR
IFT615 Froduald Kabanza 40
xi wi xi wi
x y x+y-2 x+y-1
1 1 0 1 1 11 0 -1 0 0 1
0 1 -1 0 0 10 0 -2 0 -1 0
Exemples de neurones
Limitation des classifieurs linéaires
IFT615 Froduald Kabanza 41
● Par contre, on pourrait transformer l’entrée de façon à rendre le problème linéairement séparable sous cette nouvelle représentation
● Dans le cas de XOR, on pourrait remplacer par AND( , ) et par OR( , )
00
1
1
?
XOR
00
1
1
XOR
AND( , )
OR( , )
RÉSEAU DE NEURONES ARTIFICIELS
IFT615 Froduald Kabanza 42
IFT615 Froduald Kabanza 43
Neurone Biologique Neurone artificiel (Perceptron) cellule (soma) neurone dendrites entrées synapses poids axon sortie
Neurone artificiel
. . .
aj =g(inj)=Threshold(w.x)
Logistic
x1
xn
x0
w1
wn
w0
aj
IFT615 Froduald Kabanza 44
● Un modèle de calcul inspiré du cerveau humain.
• Cerveau humain :– 10 milliards de neurones– 60 milliards de connexions (synapses)
• RNA :– Un nombre fini de neurones en
couches successives.
– Réseau feedfoward : pas de boucles.
– Réseau récurrents: les sorties peuvent être connectées aux entrées. Peut mémoriser.
Réseau de neurones
Dérivation de la règle d’apprentissage● La dérivation de la règle d’apprentissage se fait encore avec les gradients
● Par l’application de la dérivée en chaîne, on peut décomposer cette règle d’apprentissage comme suit:
● Donc la règle de mise à jour peut être écrite comme suite:
IFT615 Froduald Kabanza 45
gradient du coût p/r au neurone
gradient du neuronep/r à la somme des entrées
gradient de la somme p/r
au poids
x0
. . .
Logistic. . .
w0
Dérivation de la règle d’apprentissage
● Par contre, un calcul naïf de tous ces gradients serait très inefficace● Pour un calcul efficace, on utilise la procédure de rétropropagation des
gradients (ou erreurs)
IFT615 Froduald Kabanza 46
gradient du coût p/r au neurone
gradient du neuronep/r à la somme des entrées
gradient de la somme p/r
au poids
x0
. . .
Logistic. . .
w0
Rétropropagation des gradients
IFT615 Froduald Kabanza 47
● Utiliser le fait que la dérivée pour un neurone à la couche l peut être calculée à partir de la dérivée des neurones connectés à la couche l+1
où et
itère sur les neurones cachés de la couche l+1
(pour simplifier notation)
Visualisation de la rétropropagation
IFT615 Froduald Kabanza 48
● L’algorithme d’apprentissage commence par une propagation avant
7
w5,7
w6,7
5
6
3
4
1
2
w3,5
w3,6
w4,5
w4,6
w1,3
w1,4
w2,3
w2,4
x1 =
x2 =
Visualisation de la rétropropagation
IFT615 Froduald Kabanza 49
● Ensuite, le gradient sur la sortie est calculé, et le gradient rétropropagé
7
w5,7
w6,7
5
6
3
4
1
2
w3,5
w3,6
w4,5
w4,6
w1,3
w1,4
w2,3
w2,4
x1 =
x2 =
Visualisation de la rétropropagation
IFT615 Froduald Kabanza 50
● Peut propager aussi (décomposition équivalente du livre)
7
w5,7
w6,7
5
6
3
4
1
2
w3,5
w3,6
w4,5
w4,6
w1,3
w1,4
w2,3
w2,4
x1 =
x2 =
IFT615 Froduald Kabanza 51
(pour simplifier notation)
Exemple
IFT615 Froduald Kabanza 52
● Exemple: ,
1
-3
2
-1
1
-1
3
-4
0.5
-1
1.5
-2
propagation avant
Exemple
IFT615 Froduald Kabanza 53
● Exemple: ,
1
-3
1
-1
3
-4
0.5
-1
1.5
-2
0.3782
-1
Logistic(0.5 * 2 + 1.5 * -1) = Logistic(-0.5) = 0.378
propagation avant
Exemple
IFT615 Froduald Kabanza 54
● Exemple: ,
1
-3
1
-1
3
-4
0.5
-1
1.5
-2
0.3782
-1
Logistic(-1 * 2 + -2 * -1) = Logistic(0) = 0.5
0.5
propagation avant
Exemple
IFT615 Froduald Kabanza 55
● Exemple: ,
1
-3
1
-1
3
-4
0.5
-1
1.5
-2
0.3782
-1
Logistic(1 * 0.378 + 3 * 0.5) = Logistic(1.878) = 0.867
0.5
0.867
propagation avant
Exemple
IFT615 Froduald Kabanza 56
● Exemple: ,
1
-3
1
-1
3
-4
0.5
-1
1.5
-2
0.3782
-1
Logistic(-1 * 0.378 + -4 * 0.5) = Logistic(-2.378) = 0.085
0.5
0.867
0.085
propagation avant
Exemple
IFT615 Froduald Kabanza 57
● Exemple: ,
1
-3
1
-1
3
-4
0.5
-1
1.5
-2
0.3782
-1
Logistic(1 * 0.867 + -3 * 0.085) = Logistic(0.612) = 0.648
0.5
0.867
0.085
0.648
propagation avant
Exemple
IFT615 Froduald Kabanza 58
● Exemple: ,
1
-3
1
-1
3
-4
0.5
-1
1.5
-2
0.3782
-1 0.5
0.867
0.085
0.648
Δ = y - a
rétropropagation
Exemple
IFT615 Froduald Kabanza 59
● Exemple: ,
1
-3
1
-1
3
-4
0.5
-1
1.5
-2
0.3782
-1 0.5
0.867
0.085
0.648
Δ = 1 - 0.648
rétropropagation
Exemple
IFT615 Froduald Kabanza 60
● Exemple: ,
1
-3
1
-1
3
-4
0.5
-1
1.5
-2
0.3782
-1 0.5
0.867
0.085
0.648
Δ = 0.352
rétropropagation
Exemple
IFT615 Froduald Kabanza 61
● Exemple: ,
1
-3
1
-1
3
-4
0.5
-1
1.5
-2
0.3782
-1
Δ = 0.867 * (1-0.867) * 1 * 0.352 = 0.041
0.5
0.867
0.085
0.648
Δ = 0.352
Δ = 0.041
rétropropagation
Exemple
IFT615 Froduald Kabanza 62
● Exemple: ,
1
-3
1
-1
3
-4
0.5
-1
1.5
-2
0.3782
-1
Δ = 0.085 * (1-0.085) * -3 * 0.352 = -0.082
0.5
0.867
0.085
0.648
Δ = 0.352
Δ = 0.041
Δ = -0.082
rétropropagation
Exemple
IFT615 Froduald Kabanza 63
● Exemple: ,
1
-3
1
-1
3
-4
0.5
-1
1.5
-2
0.3782
-1
Δ = 0.378 * (1-0.378) * (1 * 0.041 + -1 * -0.082) = 0.029
0.5
0.867
0.085
0.648
Δ = 0.352
Δ = 0.041
Δ = -0.082
Δ = 0.029
rétropropagation
Exemple
IFT615 Froduald Kabanza 64
● Exemple: ,
1
-3
1
-1
3
-4
0.5
-1
1.5
-2
0.3782
-1
Δ = 0.5 * (1-0.5) * (3 * 0.041 + -4 * -0.082) = 0.113
0.5
0.867
0.085
0.648
Δ = 0.352
Δ = 0.041
Δ = -0.082
Δ = 0.029
Δ = 0.113
rétropropagation
Exemple
IFT615 Froduald Kabanza 65
● Exemple: ,
1
-3
1
-1
3
-4
0.5
-1
1.5
-2
0.3782
-1 0.5
0.867
0.085
0.648
Δ = 0.352
Δ = 0.041
Δ = -0.082
Δ = 0.029
Δ = 0.113
mise à jour (α=0.1)w1,3 0.5 + 0.1 * 2 * 0.029 = 0.506
w1,4 -1 + 0.1 * 2 * 0.113 = -0.977
w2,3 1.5 + 0.1 * -1 * 0.029 = 1.497
w2,4 -2 + 0.1 * -1 * 0.113 = -2.011
w3,5 1 + 0.1 * 0.378 * 0.041 = 1.002
w3,6 -1 + 0.1 * 0.378 * -0.082 = -1.003
w4,5 3 + 0.1 * 0.5 * 0.041 = 3.002
w4,6 -4 + 0.1 * 0.5 * -0.082 = -4.004
w5,7 1 + 0.1 * 0.867 * 0.352 = 1.031
w6,7 -3 + 0.1 * 0.085 * 0.352 = -2.997
Retour sur la notion de généralisation
● Comment choisir le nombre de neurones cachés?
IFT615 Froduald Kabanza 66
Erreur
Nb. de neurones cachés
Retour sur la notion de généralisation
● Comment choisir le nombre de neurones cachés?
IFT615 Froduald Kabanza 67
Erreur
Nb. d’itérations
Retour sur la notion de généralisation
● Comment choisir le nombre de neurones cachés?
IFT615 Froduald Kabanza 68
Erreur
Capacité de mémoriser l’ensemble d’entraînement
On veut trouverce point, sans sous-apprentissage ni surapprentissage
Hyper-paramètres
IFT615 Froduald Kabanza 69
● Dans tous les algorithmes d’apprentissage qu’on a vu jusqu’à maintenant, il y avait des « options » à déterminer Perceptron et régression logistique: le taux d’apprentissage , nb. itérations N réseau de neurones: taux d’apprentissage, nb. d’itérations, nombre de neurones
cachés, fonction d’activation g(.)● On appelle ces « options » des hyper-paramètres
choisir la valeur qui marche le mieux sur l’ensemble d’entraînement est en général une mauvaise idée (mène à du surapprentissage)
on ne peut pas utiliser l’ensemble de test non plus, ça serait tricher! en pratique, on garde un autre ensemble de côté, l’ensemble de validation,
pour choisir la valeur de ce paramètre● Sélectionner les valeurs d’hyper-paramètres est une forme d’apprentissage
Autres définitions
IFT615 Froduald Kabanza 70
● Capacité d’un modèle : habilité d’un modèle à réduire son erreur d’entraînement, à mémoriser ces données
● Modèle paramétrique: modèle dont la capacité n’augmente pas avec le nombre de données (Perceptron, régression logistique, réseau de neurones avec un nombre de neurones fixe)
● Modèle non-paramétrique: l’inverse de paramétrique, la capacité augmente avec la taille de l’ensemble d’entraînement (réseau de neurones avec un nombre de neurones adapté aux données d’entraînement)
● Époque: une itération complète sur tous les exemples d’entraînement● Fonction d’activation: fonction non-linéaire g(.) des neurones cachés
Applications
IFT615 Froduald Kabanza 71
● Problèmes de classification (visages, textes, sons, …)● Jeux
Contrôle - Par exemple, contrôler une voiture de course, un avion Évaluation de la menace – Entrée: configuration du jeu. Sortie: niveau de
menace, unités menacés.» Cadre bien avec le concept de « influence map »
http://www.onlamp.com/pub/a/onlamp/2004/09/30/AIforGameDev.html
● Bien d’autres …● Il existe plusieurs packages implémentant les algorithmes d’apprentissage
sur Internet
http://www.onlamp.com/pub/a/onlamp/2004/09/30/AIforGameDev.html
IFT615 Froduald Kabanza 72
Exemple 2
NEAT Coevolution Robots
Objectifs du cours
IFT615 Froduald Kabanza 73
agents intelligents
recherche heuristique
recherche locale
recherche à deux adversaires
satisfaction de contraintes
Algorithmes et concepts
raisonnement probabiliste
processus de décision markovien
apprentissage automatique peut servir dans plusieurs contextes
apprentissage automatique
apprentissage d’heuristique
apprentissage de modèles probabilistes
Apprentissage automatique : pour quel type d’agent?
IFT615 Froduald Kabanza 74
Simple reflex Model-based reflex
Goal-based Utiliy-based
Vous devriez être capable de...
● Simuler les algorithmes vus Perceptron régression logistique réseau de neurones
● Comprendre les notions de sous-apprentissage et surapprentissage
● Savoir ce qu’est un hyper-paramètre
IFT615 Froduald Kabanza 75
BACKGROUNDDérivées partielles
IFT615 Froduald Kabanza 76
Recherche locale pourla minimisation d’une perte
IFT615 Froduald Kabanza 77
? ?
Dérivées
● On peut obtenir la direction de descente via la dérivée
● Le signe de la dérivée est la direction d’augmentation de signe positif indique que augmente lorsque augmente signe négatif indique que diminue lorsque augmente
● La valeur absolue de la dérivée est le taux d’augmentation de
● Plutôt que , je vais utiliser le symbole
IFT615 Froduald Kabanza 78
Dérivées
● Les dérivées usuelles les plus importantes sont les suivantes:
IFT615 Froduald Kabanza 79
et sontdes constantes
Dérivées
● On peut obtenir des dérivées de composition de fonctions
IFT615 Froduald Kabanza 80
et sontdes constantes
Dérivées
● Exemple 1:
IFT615 Froduald Kabanza 81
Dérivées
● Exemple 2:
IFT615 Froduald Kabanza 82
Dérivées
● Pour des combinaisons plus complexes:
IFT615 Froduald Kabanza 83
Dérivées
● Exemple 3:
IFT615 Froduald Kabanza 84
Dérivées
● Exemple 4:
IFT615 Froduald Kabanza 85
Dérivées
● Exemple 4:
IFT615 Froduald Kabanza 86
dérivation alternative!
IFT615 Froduald Kabanza 87
Algorithme de descente de gradient
Dérivée partielle et gradient
● Dans notre cas, la fonction à optimiser dépend de plus d’une variable elle dépend de tout le vecteur
● Dans ce cas, on va considérer les dérivées partielles, c.-à-d. la dérivée par rapport à chacune des variables en supposant que les autres sont constantes:
IFT615 Froduald Kabanza 88
Dérivée partielle et gradient
● Exemple de fonction à deux variables:
● Dérivées partielles:
IFT615 Froduald Kabanza 89
traitecomme une constante
traitecomme une constante
Dérivée partielle et gradient
● Un deuxième exemple:
● Dérivée partielle :
équivaut à faire la dérivée de
où et on a des constantes et
IFT615 Froduald Kabanza 90
Dérivée partielle et gradient
● Un deuxième exemple:
IFT615 Froduald Kabanza 91
Dérivée partielle et gradient
● Un deuxième exemple:
où , ,
● On remplace:
IFT615 Froduald Kabanza 92
Dérivée partielle et gradient
● Un troisième exemple:
● Dérivée partielle :
équivaut à faire la dérivée de
où et on a une constante
IFT615 Froduald Kabanza 93
Dérivée partielle et gradient
● Un troisième exemple:
IFT615 Froduald Kabanza 94
Dérivée partielle et gradient
● Un troisième exemple:
où ,
● On remplace:
IFT615 Froduald Kabanza 95
Dérivée partielle et gradient
● On va appeler gradient d’une fonction le vecteur contenant les dérivées partielles de par rapport à toutes les variables
● Dans l’exemple avec la fonction :
IFT615 Froduald Kabanza 96
BACKGROUNDDescente du gradient
IFT615 Froduald Kabanza 97
Descente de gradient
● Le gradient donne la direction (vecteur) ayant le taux d’accroissement de la fonction le plus élevé
IFT615 Froduald Kabanza 98
Descente de gradient
● La direction opposée au gradient nous donne la direction à suivre
IFT615 Froduald Kabanza 99
Descente de gradient
● La direction opposée au gradient nous donne la direction à suivre
IFT615 Froduald Kabanza 100
Apprentissage vue comme la minimisation d’une perte
IFT615 Froduald Kabanza 101
● En apprentissage automatique, on souhaite optimiser:
● Le gradient par rapport à la perte moyenne contient les dérivées partielles:
● Devrait calculer la moyenne des dérivées sur tous les exemples d’entraînement avant de faire une mise à jour des paramètres!
Descente de gradient stochastique
IFT615 Froduald Kabanza 102
● Descente de gradient stochastique: mettre à jour les paramètres à partir du (c.-à-d. des dérivées partielles) d’un seul exemple, choisi aléatoirement:
● Cette procédure est beaucoup plus efficace lorsque l’ensemble d’entraînement est grand on fait mises à jour des paramètres après chaque parcours de l’ensemble
d’entraînement, plutôt qu’une seule mise à jour avec la descente de gradient normale
- Initialiser aléatoirement- Pour T itérations
- Pour chaque exemple d’entraînement
-
EXEMPLESApprentissage supervisé
IFT615 Froduald Kabanza 103