Академический Документы
Профессиональный Документы
Культура Документы
• Introduction à l’apprentissage
• Apprentissage inductif: Arbres de décision
• Apprentissage d’ensembles d’hypothèses
• Apprentissage à partir d’instances : K-voisins
les plus proches
• Réseaux de Neurones
• SVM
2
2019-04-01
Apprentissage par observation
3
2019-04-01
Type de retour pour le critique
• Trois types d’apprentissage
– Apprentissage supervisé
• Dans ce cas, la base de données d'apprentissage est un
ensemble de couples entrée-sortie avec
et que l'on considère être tirées selon une loi sur
inconnue, par exemple suit une loi uniforme et
où est un bruit centré.
– Apprentissage non supervisé
• L’agent apprend à partir des relations entre les perceptions.
Il apprend à prédire les perceptions à partir de celles du
passé.
– Apprentissage par renforcement
• L’évaluation de l’action est faite par récompense ou
punition (attachée à la tâche).
4
2019-04-01
Apprentissage inductif
• Forme la plus simple d’apprentissage (supervisé) qui
consiste à apprendre une fonction à partir d’exemples.
– On veut apprendre une fonction .
– On a des exemples de la forme ;
– On veut trouver une fonction (hypothèse) qui se
rapproche le plus possible de .
5
2019-04-01
Méthode d’apprentissage inductif
7
2019-04-01
Espace des hypothèses (suite)
8
2019-04-01
Apprentissage d’arbres de décision
• Une des formes les plus simples d’apprentissage,
mais tout de même une de celles qui connaissent
le plus de succès.
• À partir d’exemples, le but est d’apprendre des
structures d’arbres permettant de prendre des
décisions.
• Chaque nœud représente un test à faire.
• Chaque branche représente une valeur possible
résultant du test.
• Une feuille correspond à une prise de décision.
9
2019-04-01
Exemple du restaurant
Attributs
10
2019-04-01
Exemple du restaurant
• Exemple: En arrivant au restaurant, est-ce que ça
vaut la peine d’attendre ?
11
2019-04-01
Exemple du restaurant
• Exemple : En arrivant au restaurant, est-ce que ça
vaut la peine d’attendre ?
12
2019-04-01
Apprentissage d’arbres de décision
• Les instances sont représentés par des pairs (attribut,
valeur). Les valeurs peuvent être discrètes ou continues.
• La fonction visée est généralement binaire, mais il est
facilement possible d'étendre les arbres de décision
pour qu'ils puissent avoir plusieurs valeurs en sorties.
• On pourrait donner en sortie des valeurs réelles, mais
ce n'est pas très utilisé.
13
2019-04-01
Apprentissage d’arbres de décision
• Les exemples d'entraînement peuvent contenir des
erreurs.
– Les erreurs dans les exemples d'entraînement sont
souvent appelés des bruits.
– Les arbres de décision sont robustes aux erreurs de
classification et aux erreurs dans les valeurs des attributs.
– Bien sûr, il ne faut pas qu'il y en ait trop.
• Il peut manquer des valeurs pour certains attributs dans
les exemples d'entraînement.
• Les arbres de décision sont bons pour les problèmes de
classification.
14
2019-04-01
Expressivité
15
2019-04-01
Construire un arbre de décision
16
2019-04-01
Construire un arbre de décision
17
2019-04-01
Algorithme
• Construire les arbres de décision de haut en
bas.
– Placer à la racine l’attribut le plus important, c’est-
à-dire celui qui sépare le mieux les exemples
positifs et négatifs.
– Par la suite, il y a un nouveau nœud pour chacune
des valeurs possibles de cet attribut.
– Pour chacun de ces nœuds, recommencer le test
avec le sous-ensemble des exemples
d'entraînement qui ont été classés dans ce nœud.
18
2019-04-01
Algorithme
19
2019-04-01
Entropie pour le choix des attributs (Wiki)
20
2019-04-01
Entropie (définition)
Entropie (variable binaire)
Entropie (propriétés)
Choix de l’attribut
• On choisit l'attribut ayant le meilleur gain
d'information:
26
2019-04-01
Exemple
27
2019-04-01
Exemple
28
2019-04-01
Exemple
• On calcul le gain de la même manière pour les
trois autres attributs:
29
2019-04-01
Exemple
• En séparant les exemples selon les valeurs de l’attributs Ciel, on
obtient l’arbre partiel:
[9+, 5-]
Ciel
Ensoleillé
Pluvieux
Nuageux
[2+, 3-] [3+, 2-]
[4+, 0-]
??? Oui ???
• On peut voir que lorsque le ciel est nuageux, il reste uniquement
des exemples positifs, donc ce nœud devient une feuille avec une
valeur de Oui pour la fonction visée.
• Pour les deux autres nœuds, il y a encore des exemples positifs et
négatifs, alors il faut recommencer le même calcul du gain
d'information, mais avec les sous-ensembles restants.
30
2019-04-01
Exemple
Ensoleillé Pluvieux
Nuageux
[2+, 3-] [3+, 2-]
[4+, 0-]
Humidité Oui Vent
31
2019-04-01
Procédure générale d’apprentissage
1. Faire la collecte d’un grand ensemble d’exemples.
2. Diviser les exemples en deux ensembles: un
d’entraînement et l’autre de test (2/3 et 1/3 ou 80%
et 20%).
3. Utiliser l’ensemble d’entraînement comme
exemples et générer l’hypothèse .
4. Mesurer le pourcentage d’exemples de l’ensemble
de test qui sont correctement identifiés par .
32
2019-04-01
Gérer les erreurs dans les exemples
• Il se peut qu'on trouve un arbre plus grand, mais
qui ne classifiera pas bien les instances autres
que celles utilisées dans les exemples
d'entraînement (surapprentissage (overfitting)).
• Pour choisir la profondeur de notre arbre avant la
phase de test, on pourrait utiliser un ensemble de
validation. On réservera une partie des exemples
de l’ensemble d’entraînement pour former
l’ensemble de validation.
33
2019-04-01
Élagage de l’arbre
• Cette méthode coupe des parties de l'arbre en
choisissant un nœud et en enlevant tout son sous-
arbre.
– Ceci fait donc du nœud une feuille et on lui attribut la
valeur de classification qui revient le plus souvent.
• Des nœuds sont enlevés seulement si l'arbre
résultant n'est pas pire que l'arbre initial sur les
exemples de validation.
• On continue tant que l'arbre résultant offre de
meilleurs résultats sur les exemples de validation.
• Ceci a pour but de réduire l'arbre en enlevant des
branches.
34
2019-04-01
Exemple
• Est-ce une bonne journée pour jouer au tennis ?
Journée Ciel Température Humidité Vent JouerTennis
J1 Ensoleillé Chaude Élevée Faible Non
J2 Ensoleillé Chaude Élevée Fort Non
J3 Nuageux Chaude Élevée Faible Oui
J4 Pluvieux Tempérée Élevée Faible Oui
J5 Pluvieux Froide Normal Faible Oui
J6 Pluvieux Froide Normal Fort Non
J7 Nuageux Froide Normal Fort Oui
J8 Ensoleillé Tempérée Élevée Faible Non
J9 Ensoleillé Froide Normal Faible Oui
J10 Pluvieux Tempérée Normal Faible Oui
J11 Ensoleillé Tempérée Normal Fort Oui
J12 Nuageux Tempérée Élevée Fort Oui
J13 Nuageux Chaude Normal Faible Oui
J14 Pluvieux Tempérée Élevée Fort Non
35
2019-04-01
Élagage de l’arbre
• Si on ajoute une erreur dans l’exemple précédent en modifiant le
premier exemple, on obtient l’arbre suivant:
J1 Ensoleillé Chaude Élevée Faible Non
J1 Ensoleillé Chaude Normale Faible Non
Ciel
Ensoleillé Pluvieux
Nuageux
37
2019-04-01
Valeurs d'attributs manquantes
• S’il y a des valeurs pour certains attributs qui ne sont
pas disponibles, alors on peut :
– Donner la valeur moyenne pour cet attribut.
• On regarde les autres exemples et on calcule la
moyenne des valeurs présentes.
• On utilise cette moyenne pour estimer la valeur
manquante dans le calcul du gain d'information.
– Attribuer une probabilité pour la valeur manquante.
• On regarde les autres exemples et on calcule la
probabilité de chaque valeur possible pour l'attribut.
• On utilise par la suite ces probabilités pour calculer le
gain d'information.
38
2019-04-01
Valeurs d'attributs manquantes
• Pour la première stratégie, les calculs ne changent pas.
On ne fait qu'utiliser la valeur moyenne pour remplacer la
valeur manquante.
• Pour la deuxième stratégie, les calculs sont modifiés pour
utiliser les probabilités.
– On commence par calculer la probabilité de chacune des
valeurs possibles pour l'attribut manquant.
– Par exemple, supposons qu'il nous manquerait une valeur
pour l'attribut Vent.
• La probabilité que le vent soit faible, selon nos exemples
d'entraînement est de 8/14 * 100 = 57%.
• La probabilité que le vent soit fort est de 6/14 * 100 = 43%.
– Ceci nous donne des fractions d'exemples dans nos calculs.
39
2019-04-01
Attributs multivalués
• Il y a problème avec la fonction de gain d'information.
– Lorsque les attributs ont beaucoup de valeurs
possibles, comme par exemple un attribut date, leur
gain est très élevé, car il classifie parfaitement les
exemples.
– Par contre, ils vont générer un arbre de décision d'une
profondeur de 1 qui ne sera pas très bon pour les
instances futures.
• Solution: on peut utiliser une fonction qui se nomme
GainRatio qui pénalise les attributs qui ont trop de
valeurs possibles.
40
2019-04-01
Attributs multivalués
41
2019-04-01
Attributs à valeurs continues
• On utilise un point de coupe pour obtenir une
discrétisation des variables continues.
– Ex: la variable Température est continue et on a les 6
exemples suivants.
Température 40 48 60 72 80 90
JouerTennis Non Non Oui Oui Oui Non
– On met les valeurs en ordre croissant et on regarde les
endroits ou la fonction change de valeur.
– À ces endroits, on choisit la médiane comme valeur de coupe.
– On compare toutes les valeurs de coupe et on choisit celle qui
apporte le plus grand gain d'information.
42
2019-04-01
Exemple
Température 40 48 60 72 80 90
JouerTennis Non Non Oui Oui Oui Non
43
2019-04-01
Exemple
44
2019-04-01
Exemple
45
2019-04-01
Apprentissage d’ensembles d’hypothèses
46
2019-04-01
La méthode « boosting »
47
2019-04-01
La méthode « boosting »
48
2019-04-01
Algorithme des k plus proches voisins
• Paramètre : le nombre k de voisins
• Donnée : un échantillon de m exemples et leurs
classes.
• Entrée : un nouvel exemple X.
• Déterminer les k plus proches exemples de X en
calculant les distances.
• Sortie : la classe de X est prédite par vote de
majorité parmi les k plus proches voisins.
49
Exemple: Client loyal ou non
K=3
50
Autres distances
Distance
euclidienne :
51
Exemple (1)
52
Exemple (2)
K=3
53
Apprentissage à base d’instances
2019-04-01
Fonction visée à valeurs discrètes
• L’ensemble V contient les valeurs possibles.
• L’estimation de la fonction est tout
simplement la valeur qui revient le plus
souvent dans les k voisins.
où
2019-04-01
Réseaux de Neurones
56
2019-04-01
Réseau de neurones
2019-04-01
Perceptron
Ij Wji Ij Wj O
Oi
Neurones Neurones Neurones Neurone
d'entrée de sortie d'entrée de sortie
X0 = -1
X1 w0
w1
w2
X2 Somme
..
wn
.
Xn
2019-04-01
Perceptron
• Les perceptrons peuvent représenter toutes les
fonctions linéairement séparables.
X1 X1
+ +
+ - + -
X2 X2
-
- - +
2019-04-01
Exemple de perceptron
• La fonction ET
– Les entrées prennent les valeurs 1 (vrai) ou 0 (faux)
X0 = -1
0.8
X1 0.5
Somme
0.5
X2
-1 au lieu de +1 + + Augmente
+1 au lieu de -1 - - Diminue
2019-04-01
Version ‘Batch’
• La règle utilisée pour ajuster les poids est:
2019-04-01
Les réseaux multi-couches
65
2019-04-01
Les réseaux multi-couches
Neurones Oi
de sortie
Wji
Neurones aj
cachés
Wkj
Neurones
Ik
d'entrée
2019-04-01
Les réseaux multi-couches
• Par exemple, dans le cas des fonctions booléennes, il est facile de calculer le
XOR en utilisant deux neurones linéaires à seuil.
67
2019-04-01
Exemple
2019-04-01
Sigmoïd
X1 w0
w1
w2
X2 Somme
..
wn
.
Xn
2019-04-01
Algorithme de rétropropagation
• Utilise l'algorithme de descente du gradient.
• Tente de diminuer la différence au carré entre
les sorties du réseau et les sorties désirées.
• L'erreur E du réseau est:
71
2019-04-01
Algorithme de rétropropagation:
Dérivation
72
2019-04-01
Algorithme de rétropropagation:
Dérivation
73
2019-04-01
Algorithme de rétropropagation
- Initialiser les poids à de petites valeurs aléatoires (entre -0.05 et 0.05)
- Tant que la condition d'arrêt n'est pas atteinte
- Pour chaque exemple d'entraînement
• Calculer les sorties du réseau.
• Pour toutes les unités de sortie calculer l'erreur:
2019-04-01
Exemple
Entrées
-1 x0
W40 = -0.5 -1 x3
W53 = -0.4
2019-04-01
Exemple
Entrées
-1 x0
W40 = -0.5 -1 x3
W53 = -0.4
2019-04-01
Exemple
Entrées
-1 x0
W40 = -0.5 -1 x3
W53 = -0.4
2019-04-01
Exemple
Entrées
-1 x0
W40 = -0.5 -1 x3
W53 = -0.4
x1 W41 = -0.2
2 Sortie
W54 = 0.3
x4 x5 2
W42 = 0.1
5 x2
2019-04-01
Exemple
Entrées
-1 x0
W40 = -0.5 -1 x3
W53 = -0.4
x1 W41 = -0.2
2 Sortie
W54 = 0.3
x4 x5 2
W42 = 0.1
5 x2
2019-04-01
Condition d'arrêt
• Le nombre d'itérations est important car:
– Si trop faible, l'erreur n'est pas suffisamment réduite.
– Si trop grand, le réseau devient trop spécifique aux données
d'entraînement.
• Il y a plusieurs conditions d'arrêt possible:
– Après un certain nombre fixe d'itérations.
– Lorsque l'erreur dans les sorties des exemples d'entraînement
descend en dessous d'une certaine borne.
– Retourner les dernières valeurs de paramètres qui ont
résultées en une augmentation de la performance sur
l’ensemble de validation (early stopping).
2019-04-01
Applications
• TSUNAMI du deep learning
• L'interprétation d'images.
• La reconnaissance de formes
• La reconnaissance vocale.
• La reconnaissance de mots écrits à la main.
• L'apprentissage de stratégies de contrôle pour les
robots.
• Une des meilleurs méthodes connues pour
l'interprétation de données provenant de capteurs
dans le monde réel.
2019-04-01
Démo
https://playground.tensorflow.org
Une introduction aux machines à
vecteurs supports (SVM)
Adapté de Martin Law, Antoine Cornuéjols et autres sources sur Internet
Plan
• Qu’est-ce qu’une bonne frontière de
séparation pour deux classes linéairement
séparables ?
– La solution SVM
• Adaptation aux cas non linéairement
séparables
– l’astuce des fonctions noyau
• SVR
84
Problème à deux classes linéairement
séparables
• Plusieurs surfaces de décision existent
pour séparer les classes ; laquelle choisir ?
Frontière de décision possibles
Classe 2
Classe 1
85
Exemples de choix mal avisés
Classe 2 Classe 2
Classe 1 Classe 1
Classe 2
w T xi b 1
Classe 1
Hyperplan
optimal
Si {xi} = {x1, ..., xn} est l’ensemble des données et yi {1,-1} est la
classe de chacune, on veut avoir :
89
Problème d’optimisation quadratique
Maximiser la marge du classificateur revient donc à trouver
w et b tels que :
1 2
w est minimum
2
et
yi wT xi b 1, i 1,...,n
Si d est la dimension des xi (nombre d’entrées), cela revient
à régler d+1 paramètres (les éléments de w, plus b)
Possible par des méthodes d’optimisation classiques
(optimisation quadratique) seulement si d pas trop grand (< 103)
L’approche SVM utilise les multiplicateurs de Lagrange.
90
Lagrangien
Conditions KKT
Formulation du problème dual
n
i{( x Ti wb) yi 1}
1
( w, b, α )
2
w
Partant de 2 i 1
i i 0 n
w ,b ( w, b, α ) 0 donne w i yi xi
i 1
n
et y
i 1
i i 0
i
n
i yi 0
i 1
Il faut trouver qui maximise ( w , b, α ) .
93
Solution du problème d’optimisation
ns
wˆ ˆ i yi xi
• ^ : estimé
nS : nombre de vecteurs de support
i 1
(xi avec i 0)
ns • (xS,yS) : vecteur de support
bˆ ys ˆ i yi ( x i x s )
T
arbitraire (pour trouver b̂ )
i 1
D( x ) ( wˆ T x bˆ)
n
1 n n
( w, b, α) i i j yi y j x Ti x j
i 1 2 i 1 j 1
94
Caractéristiques de la solution
i 1
95
Interprétation géométrique
• Seules les points les plus proches de la
Classe 2 surface de séparation influent sur sa
définition
8=0.6 10=0
7=0
5=0 a2=0
1=0.8
4=0
6=1.4
9=0
3=0
Classe 1
96
Cas non linéairement séparable
• On peut introduire une marge d’erreur i (slack variables)
pour la classification
Classe 2
Classe 1
97
Hyperplan à marges douces
• i sont des variables qui donnent du ”slack” aux marges optimales
98
Détermination de l’hyperplan de
séparation
• La forme duale du problème est
• La seule différence avec le cas linéairement séparable est qu’il existe une
limite supérieure C aux i
99
Extension à une surface de séparation non-
linéaire
• « Simplifier les choses » en projetant les xi dans un nouvel espace
où ils sont linéairement séparables
Espace de re-description
Extension à une surface de séparation non-
linéaire
• Problèmes cependant :
=?
Grand effort de calcul potentiel (d explose !)
• SVM à fonctions noyaux résout les deux problèmes
– Efficacité computationnelle
– La transformation désirée des données est faite implicitement !
Φ( )
Φ( )
Φ( ) Φ( ) Φ( )
Φ(
Φ( ) Φ( ) )
Φ( ) Φ( )
Φ( ) Φ( ) Φ( )
Φ( ) Φ( ) Φ( ) Φ( )
Φ( ) Φ( )
102
Les conditions de Mercer
Pour une fonction K symétrique, il existe une fonction Φ telle que :
m
K(x, x' ) ( x). (x' ) gi (x). gi (x' )
i1
103
Modification due à la transformation
Problème
original :
Après
transformation:
104
Modification due à la transformation
Original :
Après
transformation :
105
Exemple d’utilisation
• Définissons la fonction noyau K(x,y) telle que, pour toute paire de vecteurs
x=(x1, x2) et y=(y1, y2) :
K ( x, y ) 1 x1 y1 x2 y2
2
( x ) 1, 2 x1 , 2 x2 , x12 , x22 , 2 x1 x2
On peut voir en effectuant le calcul que
( x), ( y) 1 x1 y1 x2 y2
2
K ( x, y )
On peut donc obtenir le résultat sans avoir à passer par l’espace
transformé.
106
Illustration : le cas du XOR
x2 • Il faut résoudre :
1
4 4 4
i i j i j
1
max y y K ( x i , x )
j
i 1 2 i 1 j 1
-1 1 x1 i 0 i C
4
i yi 0
-1
i 1
• Si on reprend la fonction noyau K ( x, y ) 1 x1 y1 x2 y2 ,
2
Index i xi y
on obtient les équations suivantes pour le Lagrangien
1 (1,1) 1
: Q 1 2 3 4
2 (1,-1) -1
3 (-1,-1) 1 1
(912 21 2 21 3 21 4
4 (-1,1) -1 2
9 22 2 2 3 2 2 4 9 32 2 3 4 9 2 )
4
1 2 3 4 0
107
Illustration : le cas du XOR
• Le maximum de Q(a) est obtenu en prenant ses dérivées par rapport
aux i et en trouvant les valeurs de i qui les annulent :
1 91 2 3 4 0
1 9 0
1 2 3 4
1 1 2 9 3 4 0
1 1 2 3 9 4 0
1
ˆ 1 ˆ 2 ˆ 3 ˆ 4
8
Les 4 données du où exclusif sont donc des vecteurs de support,
puisque aucune valeur trouvée de n’est nulle
108
Illustration : le cas du XOR
1 4 1 4
• Dans l’espace de re-description : b 1 y j K ( x j , x1 ) 1 1 j K ( x j , x1 ) 0
ˆ
8 j 1 8 j 1
ns
wˆ ˆ i yi xi et :
i 1 1 4 1 4
1 j K ( x j , x) x1 x2
ns D( x ) y j K ( x j , x )
b ys ˆ i yi K ( x i x s )
ˆ T 8 j 1 8 j 1
(on aurait obtenu le même résultat en utilisant () :
i 1
s
D( x ) ˆ j y j K ( x j , x ) bˆ 1
j 1 2
x1
• Donc : 1
2 x1 x2
wˆ T ( x ) 0, 0, , 0, 0, 0 x1 x2
wˆ
1
( x1 ) ( x2 ) ( x3 ) ( x4 ) 2 x 2
2
8 2x
1 1 1 1 0 1
2x
2
1 1 1 1 0
1 2 2 2 2 1 2
8 1 1 1 1 0
2 2 2 2 0
2 2 2
2 0
(on connait () dans cet exemple, mais il n’est pas requis en
général, car l’équation de la marge dépend seulement de K())
109
Illustration : le cas du XOR
110
Autre Exemple
• Supposons 5 nombres x1=1, x2=2, x3=4, x4=5, x5=6, avec
– 1, 2, 6 classe 1 (y=1)
– 4, 5 classe 2 (y=-1)
– Donc: {(xi, yi)}i=1,…,5 ={(1,1), (2,1), (4,-1), (5,-1), (5,1)}
• Utilisons à nouveau le noyau polynomial de degré 2
– K(x,x’) = (1+xTx’)2
– C est choisi égal à 100
• Trouvons d’abord i (i=1, …, 5) :
111
Exemple
• La solution est :
– 1=0, 2=2.5, 3=0, 4=7.333, 5=4.833
• Les vecteur supports sont donc {x2=2, x4=5, x5=6}
• La fonction discriminante est
112
Exemple
Valeur de la fonction discriminante
1 2 4 5 6
113
Exemples de fonctions noyaux
115
Une applette de démonstration
• http://svm.cs.rhul.ac.uk/pagesnew/GPat.shtml
• 47 exemples (22 +, 25 -)
• Vecteurs de support : 4 + et 3 -
• Ici fonction polynomiale de degré 5 et C = 10000
116
Paramètres de contrôle : les fonctions noyau
Régression linéaire :
Soit à minimiser :
Forme de la
solution du dual
avec noyau :
x x x
0
x
x
x x
x x
x x
118
Régression vectorielle à support (-SVR)
* Valeurs hors
cible
- 119
Régression vectorielle à support (-SVR)
120
Régression vectorielle à support (-SVR)
121
Forces et faiblesses des SVM
• Forces
– L’apprentissage est relativement facile
• Pas de minima locaux, comme pour les réseaux de neurones.
– L’algorithme est robuste face aux changements d’échelle.
– Le compromis entre la complexité du classificateur et l’erreur de
classification peut être gérée explicitement.
• Faiblesses
– Il faut trouver une bonne fonction noyau.
– Deux classes à la fois.
– Complexité peut facilement être quadratique dans le nombre de
données.
122
Sources
documentaires
• Ouvrages / articles
– Cornuéjols & Miclet (02) : Apprentisage artificiel. Concepts et algorithmes.
Eyrolles, 2002.
– Cristianini & Shawe-Taylor (00) : Support Vector Machines and other kernel-
based learning methods. Cambridge University Press, 2000.
– Herbrich (02) : Learning kernel classifiers. MIT Press, 2002.
– Schölkopf, Burges & Smola (eds) (98) : Advances in Kernel Methods : Support
Vector Learning. MIT Press, 1998.
– Schölkopf & Smola (02) : Learning with kernels. MIT Press, 2002.
– Smola, Bartlett, Schölkopf & Schuurmans (00) : Advances in large margin
classifiers. MIT Press, 2000.
– Vapnik (95) : The nature of statistical learning. Springer-Verlag, 1995.
123