Vous êtes sur la page 1sur 32

Méthodes par ensemble

Introduction à l’apprentissage machine – GIF-4101 / GIF-7005


Professeur : Christian Gagné

Semaine 11 : 14 novembre 2018

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 1 / 32


Méthodes par ensemble

Théorème du no free lunch


I Aucun algorithme d’apprentissage n’est supérieur aux autres pour tous
problèmes
Arguments statistiques pour l’utilisation d’ensembles
I Moyenne d’un ensemble d’échantillons plus fiable que valeur d’un seul
échantillon
I Éliminer la variance en moyennant les décisions d’ensemble
I Retire le bruit des décisions individuelles des classifieurs
Plusieurs têtes valent mieux qu’une
I Méthodes par votes
I Codes à correction d’erreurs
I Échantillonnage dynamique de données ou de caractéristiques
I Mixtures d’experts

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 2 / 32


Théorème du jury de Condorcet

Quelle est la probabilité qu’un jury obtienne une décision à majorité


qui soit correcte ?
I Deux décisions possibles : décision correcte ou décision erronée
I Chaque jury a une probabilité p de prendre une décision correcte
I Lorsque la probabilité p > 1/2, la probabilité de décision correcte du
jury tend vers 1 avec un très grand nombre de participants au jury
I Inversemement, avec une probabilité p < 1/2, la probabilité de décision
du jury correcte est réduite par l’augmentation de la taille du jury
I Suppose que les votes sont indépendants et identiquement distribués
(iid)
Proposé par le Marquis de Condorcet en 1785
I Justification mathématique de la démocratie, étudiée en science
politique

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 3 / 32


Approches pour création d’ensembles

Différents algorithmes d’apprentissage


I Différentes hypothèses sur les données (biais et variance)
Différents hyperparamètres
I Nombre de neurones/couches cachées
I Nombre de voisins
I Type de matrice de covariance
Différentes représentations
I Différentes mesures/capteurs
I Différentes caractéristiques (forêt aléatoire, random subspaces)
Différents jeux de données d’entraı̂nement
I Échantillonnages aléatoires des données (bagging)
I Échantillonnages selon données mal classées (boosting)

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 4 / 32


Complexité, combinaison, formalisation
Complexité des classifieurs de base
I Classifieurs de base n’ont pas à être très précis individuellement
I La simplicité est souvent préférable à la performance
I Diversité dans le classement, spécialisation dans certains domaines
I Si les erreurs des classifieurs sont iid
lim Eensemble → EBayes
L→∞

Approches pour combinaisons


I Combinaisons d’experts multiples (parallèle)
F Votes, mixtures d’experts, stacked generalization
I Combinaisons multi étages (série)
F Classifieurs d’étages suivants appelés seulement lorsque doutes aux
étages précédents (classifieurs en cascade)
Formalisation des méthodes par ensemble
h̄(x|Φ) = f(h1 (x), h2 (x), . . . ,hL (x)|Φ)

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 5 / 32


Votes

Méthode des votes


I Assigner à la classe la plus fréquente parmi les réponses des classifieurs
de base
Formulation générale : pondérer chaque vote par un facteur wj
L
X X
h̄(x) = wj hj (x), où wj ≥ 0, ∀j et wj = 1
j=1 j

I Modèle linéaire de combinaison parallèle


I Dans le cas de vote simple, wj = 1/L
I Poids peuvent représenter la confiance dans chaque classifieur

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 6 / 32


Votes
y

+ f()
w1 wL
w2

d1 d2 dL

x
Tiré de E. Alpaydin, Introduction to Machine Learning, 2e édition, MIT Press, 2010.

Figure 15.1: In voting, the combiner function C.f (·)


GIF-4101 / GIF-7005 (U. Laval)
Méthodes par ensemble Gagné
is 7 / 32
Combinaison de modèles bayésiens

Modèle bayésien de combinaison


X
P(Ci |x) = P(Ci |x,Mj )P(Mj )
∀Mj

I wj = P(Mj ) et hj (x) = P(Ci |x,Mj )


I Vote simple est le cas de probabilités a priori égales, P(Mj ) = 1/L

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 8 / 32


Biais et variance

Biais et variance dans les ensembles de classifieurs à deux classes


I hj sont iid, avec espérance E[hj ] et variance Var(hj )
 
L
X 1  1
E[h̄] = E  hj = L E[hj ] = E[hj ]
L L
j=1
 
L
X 1  1 1
Var(h̄) = Var  hj = 2 L Var(hj ) = Var(hj )
L L L
j=1

Variance diminue lorsque le nombre de voteurs indépendants L


augmente
I Avec ensembles, on peut donc réduire la variance sans affecter le biais
I Erreur quadratique est d’autant réduite

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 9 / 32


Diversité et corrélation négative

Variance d’ensembles, cas général


   
1 X 1 X  XX
Var(h̄) = 2 Var  hj  = 2  Var hj + 2 Cov(hj ,hi )
L j
L j j i>j

I Réduction supplémentaire de la variance avec voteurs corrélés


négativement
I Erreur quadratique peut être réduite, pourvu que la corrélation négative
n’affecte pas le biais de l’ensemble
Diversité dans les réponses des classifieurs d’ensemble
I Objectif dans la formation d’ensemble : obtenir des classifieurs ne
faisant pas les mêmes erreurs
I Cas limite d’ensemble sans diversité : L copies du même classifieur

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 10 / 32


Matrice de décision

Classement multi classes avec ensembles, avec vote pondéré


X
h̄i (x) = wi,j hj,i (x)
j

Matrice de décision W : valeurs des poids wi,j


Matrice de décision pour classement un contre tous (exemple avec
L = K = 4)  
+1 −1 −1 −1
 −1 +1 −1 −1 
W=
 −1

−1 +1 −1 
−1 −1 −1 +1

Ambiguı̈té lorsque mauvaise décision d’un classifieur de base


I Deux valeurs h̄i (x) = 0
I Similarité trop élevée entre les codes (faible distance de Hamming)

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 11 / 32


Ensembles avec redondance

Matrice de décision pour décisions par paires (exemple avec K = 4,


L = K (K − 1)/2 = 6)
 
+1 +1 +1 0 0 0
 −1 0 0 +1 +1 0 
W=
 
0 −1 0 −1 0 +1 
0 0 −1 0 −1 −1

I Valeur de wi,j = 0 signifie que la décision est ignorée


I Erreur d’un classifieur de base n’implique pas nécessairement une
ambiguı̈té
I Valeur L croı̂t quadratiquement selon K
Généralisation de l’approche : codes à correction d’erreur
I Utiliser une matrice de décision W de taille L préétablie
I Distance de Hamming entre lignes est maximisée

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 12 / 32


Codes à correction d’erreur
Codes à correction d’erreur (CCE)
I Avec K classes, il y a 2(K −1) − 1 problèmes à deux classes différents
I Diversité de discriminants : colonnes différentes
I Correction d’erreur : composantes différentes pour une ligne
Exemple de matrice avec CCE (K = 4 et L = 9)
 
−1 −1 −1 −1 −1 −1 −1 +1 +1
 −1 −1 −1 +1 +1 +1 +1 −1 −1 
W=
 −1

+1 +1 −1 −1 +1 +1 −1 +1 
+1 −1 +1 −1 +1 −1 +1 +1 −1

I Différence (distance de Hamming) minimale de d = 5 entre chaque


paire de lignes  d−1   5−1 
F Tolère donc jusqu’à 2
= 2
= 2 erreurs de classifieurs de base
I Choix de la classe selon h̄i (x) maximum
I Valeur h̄i (x) normalisée dans [0,1] peut être interprétée comme une
probabilité
I Choix des valeurs W en partie arbitraires, certaines dichotomies
peuvent être plus difficiles que d’autres
GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 13 / 32
Bagging et Random subspaces

Bagging : ensemble de classifieurs entraı̂nés sur ensembles de données


légèrement différents
I Chaque classifieur de base entraı̂né sur ensemble Xj
F Xj : tirage avec remise de N données dans X
F Remise : plusieurs exemplaires de certaines données, absence de
certaines autres
I Idéalement, classifieurs de base devraient être instables
F Algorithme d’entraı̂nement instable : pour jeux de données légèrement
différents, donne des classifieurs avec comportements différents
F Stable : k-plus proches voisins, classement paramétrique
F Instable : perceptron multicouche, condensation de Hart
F En général, algorithmes instables ont une grande variance
Random subspaces
I Générer chaque classifieur de base par un échantillonnage aléatoire d’un
sous-ensemble de caractéristiques

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 14 / 32


Arbres de décision

Arbres de décision
I Séparation hiérarchique (récursive) de l’espace d’entrée
I Chaque nœud de l’arbre est un test sur valeur avec issues discrète
I Effectue une division de plus en plus fine de l’espace d’entrée
Propriétés des arbres de décision
I Construction descendante (top-down) des arbres selon critère de
performance (ex. entropie)
I Élagage (pruning) permet réduire sur-spécialisation
I Utile pour extraire des règles de décision interprétables

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 15 / 32


Arbres de décision
9 Decision Trees

Figure 9.1
Tiré de E.Example
Alpaydin, of a dataset
Introduction and theLearning,
to Machine corresponding
3e édition, decision
MIT Press, tree.
2014. Oval
nodes are the decision nodes and rectangles are leaf nodes. The univariate de-
cision node splits along one axis, and successive splits are orthogonal to each
other. After the first split, {x|x1 < w10 } is pure and is not split further.

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 16 / 32


Forêt aléatoire

Problème avec arbres de décision pour classement


I Classifieurs à biais faible et variance élevée
I Ce qui implique risque élevé de sur-apprentissage (même si élagage est
utilisé)
Solution : faire ensemble d’arbres
I Moyennage permet de garder biais faible tout en réduisant variance
d’ensemble
I Mais ensemble doit comporter diversité d’arbres
Générer arbres « aléatoires » avec bagging et random subspaces
I Pour apprendre chaque nœud, utiliser sous-ensembles de données et de
variables différents
Ensemble d’arbres aléatoires correspond à une forêt aléatoire
I Moyenner décisions des arbres
I Variance sur les décisions est un bon indicateur de la confiance de
l’ensemble

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 17 / 32


Boosting

Bagging : nécessite des algorithmes instables


I Diversité générée passivement
Boosting : générer activement de nouveaux classifieurs à partir des
données difficiles pour les classifieurs actuels
1 Diviser aléatoirement le jeu de données en trois (X1 , X2 et X3 )
2 Entraı̂ner classifieur h1 sur X1
3 Évaluer données X2 avec h1 , utiliser données mal classées et un nombre
égal de données bien classées pour former X20
4 Entraı̂ner classifieur h2 sur X20
5 Évaluer données X3 avec h1 et h2 , utiliser données où h1 et h2 en
désaccord pour former X30
6 Entraı̂ner classifieur h3 sur X30
Évaluer classement de données : tester données avec h1 et h2 , si
désaccord utiliser décision de h3
Améliore les performances, mais requiert de très grands jeux de
données
GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 18 / 32
AdaBoost

AdaBoost (adaptive boosting) : réutiliser le même jeu de données


pour les classifieurs de base
I Contrairement au boosting classique, ne requiert pas de très grands
jeux de données
I Peut générer un nombre arbitrairement élevé de classifieurs
AdaBoost.M1 : la probabilité d’échantillonner une donnée change en
fonction des erreurs des classifieurs de base
I Initialement, p1t = 1/N, t = 1, . . . ,N
I Échantillonner jeu Xj à partir de X selon probabilités pjt
I Entraı̂ner classifieur hj avec Xj
P d’erreur de hj supérieur à j > 0,5, interrompre l’algorithme,
Si taux
I

j = t pjt `0 −1 (r t ,hj (xt ))


t
I Calculer les probabilités pj+1 selon le classement de X avec hj
I Répéter pour générer les L classifieurs de base

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 19 / 32


Weak learner
Boosting et AdaBoost ne nécessitent pas de classifieurs très précis
I Weak learner : algorithme ayant une probabilité d’erreur de moins de
1/2 en deux classes (mieux qu’un classement aléatoire) et relativement
instable (variations soutenues dans le classement)
I Utiliser des weak learners permet une bonne diversité dans le classement
Souches de décision : weak learner couramment utilisé avec AdaBoost
I Décisions basées sur un seuil appliqué à une seule dimension
h(x|θ,υ,γ) = sgn(θ(xγ − υ)), θ ∈ {−1,1}, γ ∈ {1, . . . ,D}, υ ∈ R
I Entraı̂nement déterministe de souches de décisions
x̃jk = xjt | x̃j1 ≤ x̃j2 ≤ · · · ≤ x̃jk−1 ≤ xjt ≤ x̃kk+1 ≤ · · · ≤ x̃jN
vjk = 0,5(x̃jk + x̃jk+1 ), k = 1, . . . ,N − 1
n o
Aj = (sj ,vjk ,j) | ∀sj ∈ {−1,1}, ∀k ∈ {1, . . . ,N − 1}
A = A1 + A2 + · · · + AD
(θ,υ,γ) = argmin E (h(·|sj ,ujk ,j)|X )
(sj ,ujk ,j)∈A

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 20 / 32


Erreurs avec AdaBoost

E
ror
0.5
k l e arnearining er
weaghted tr
0.4 wei
0.3
ensem
ble te
0.2 st err
ensem or
ble tr
0.1 ainin
g erro
r
kmax
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

GURE 9.7. AdaBoost Tiré de R.O.applied to aD.G.


Duda, P.E. Hart, weak
Stork, learning system
Pattern Classification, can
Wiley reduce
Interscience, 2001.the training err

xponentially as the number of component classifiers, kmax , is increased. Becau


aBoost “focuses on” difficult training patterns, the training error of each successi
mponent
GIF-4101classifier
/ GIF-7005 (U. (measured
Laval) on Méthodes
its own par weighted
ensemble training set) isC. generally
Gagné 21 / larg
32
Algorithme AdaBoost
Entraı̂nement avec AdaBoost :
1 Initialiser les probabilités de chaque donnée, p t = 1/N, t = 1, . . . ,N
1
2 Pour chaque classifieur de base j = 1, . . . ,L :

1 Échantillonner jeu Xj à partir de X selon probabilités pjt


2 Entraı̂ner classifieur hj avec jeu Xj P
3 Calculer l’erreur du classifieur, j = t pjt `0 −1 (r t ,hj (xt ))
4 Si erreur j > 0,5, alors L = j − 1 et arrêter l’algorithme

5 Calculer βj = 1−j j
t
6 Calculer les nouvelles probabilités pj+1
qjt βj pjt si hj (xt ) = r t

t t
pj+1 = P s , qj = , t = 1, . . . ,N
s qj
pjt autrement

Évaluation du classement d’une donnée :


L  
X 1
h̄(x) = log hj (x)
βj
j=1

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 22 / 32


Exemple avec AdaBoost

2 m =1 2 m =2 2 m =3

0 0 0

−2 −2 −2

−1 0 1 2 −1 0 1 2 −1 0 1 2

2 m =6 2 m = 10 2 m = 150

0 0 0

−2 −2 −2

−1 0 1 2 −1 0 1 2 −1 0 1 2

Tiré de C. M. Bishop, Pattern Recognition and Machine Learning, Springer, 2006.

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 23 / 32


Maximisation des marges avec AdaBoost

AdaBoost maximise les marges pour le classement


I Apprentissage avec probabilités plus fortes pour les données difficiles à
classer
F Données difficiles : données dans la marge
I h̄i est le résultat d’un vote pondéré
votes pour classe i − votes contre classe i
h̄i =
nombre total de votes
I Avec grand nombre de classifieurs, h̄i (x) → 1 si x ∈ Ci et h̄i (x) → −1
autrement
I Larges marges ⇒ meilleure généralisation
Nombreuses variantes de boosting
I LPBoost : apprendre les αj = log β1j par programmation linéaire
F À chaque génération de classifieur de base, réapprend les αj de tous les
classifieurs actuels
F Nombreux parallèles à faire avec les SVM

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 24 / 32


Mixture d’experts

Mixture d’experts
I Classifieurs-experts spécialisés sur certains aspects du problème
I Travaillent en parallèle, avec fonction de routage pondérant les
décisions selon l’expertise
I Similaire au vote pondéré, mais avec pondération non constante
L
X
h̄(x) = wj (x)hj (x)
j=1

Spécialisation dans différentes régions de l’espace réduit corrélation


Génère donc des experts biaisés, mais négativement corrélés
I Implique une réduction globale de la variance, donc de l’erreur
Fonction de routage peut être non linéaire (ex. perceptron
multicouche)
I Peut réduire le biais, au risque d’augmenter la variance (sur
apprentissage)

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 25 / 32


Mixtures d’experts

f()
+
wL
gating
w1

d1 d2 dL

x
Tiré de E. Alpaydin, Introduction to Machine Learning, 2e édition, MIT Press, 2010.

Figure 15.3: Mixture of experts is a voting method


where the votes, as given by the gating system, are a
GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 26 / 32
Stacked generalization

Stacked generalization : système à deux étages


I Premier étage : classifieurs de base fonctionnant en parallèle
I Deuxième étage : système de combinaison associant sortie des
classifieurs de base avec étiquette désirée
h̄(x) = hcomb (h1 (x),h2 (x), . . . ,hL (x))
Système de combinaison : classifieur standard
I Apprend comment les classifieurs de base font des erreurs
I Entraı̂nement du système de combinaison doit se faire sur données non
vues par les classifieurs de base
I Permet d’estimer et de corriger les biais des classifieurs de base

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 27 / 32


Stacked generalization

f()

d1 d2 dL

x
Tiré de E. Alpaydin, Introduction to Machine Learning, 2e édition, MIT Press, 2010.

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 28 / 32


Classifieurs en cascade
Classifieurs en cascade : séquence de classifieurs de base
I Passage d’un étage à l’autre si le classifieur k a une confiance faible en
son classement, wj (x) < θj

h̄(x) = hj (x) si wj (x) ≥ θj et wk (x) < θk , ∀k < j


I Confiance wj (x) peut correspondre à la probabilité a posteriori P(Ci |x)
du classifieur
I Seuil sur la confiance θj devrait être élevé (taux de rejet élevé) pour les
premiers étages
Entraı̂nement d’une cascade
I Classifieur h1 entraı̂né avec X1 = X
I Jeu Xj+1 est formé des rejets de Xj avec classifieur hj
I Classifieur hj+1 entraı̂né avec jeu Xj+1
Classifieurs de base de complexités croissantes
I Classifieurs simples (peu coûteux) gèrent la plupart des cas
I Classifieur complexes (coûteux) sur les derniers étages gèrent les cas
difficiles
GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 29 / 32
Classifieurs en cascade

y=d L
y=d 2

yes

y=d 1 no ...
w 2>θ 2 dL
yes

no
w 1>θ 1 d2

d1

Tiré de E. Alpaydin, Introduction to Machine Learning, 2e édition, MIT Press, 2010.


Figure 15.5: Cascading is a multistage method where
there(U.isLaval)
GIF-4101 / GIF-7005 a sequence Méthodes
of classifiers,
par ensemble and the next one C.isGagné 30 / 32
Surproduction et sélection

h̄(x|Φ) = f (h1 (x), h2 (x), . . . ,hL (x)|Φ) : métaclassifieur


I Chaque classifieur hi (x) peut être vu comme une caractéristique (ou
une fonction de base) du méta classifieur
Surproduction et sélection
I Générer une vaste variété de classifieurs candidats
F Ex. méthode des random subspaces
I Sélectionner un sous-ensemble de ces classifieurs pour former
l’ensemble final
Sélection possible par les méthodes de sélection de caractéristiques
I Sélection séquentielle vorace avant
I Sélection séquentielle vorace arrière
I Algorithmes évolutionnaires multiobjectifs

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 31 / 32


Scikit-learn

ensemble.BaggingClassifier : plusieurs variantes de Bagging de


classifeurs, incluant random subspaces
ensemble.RandomForestClassifier : forêt aléatoire pour le
classement
ensemble.AdaBoostClassifier : variantes AdaBoost.SAMME de
l’algorithme AdaBoost
ensemble.VotingClassifier : vote de classifieurs, incluant vote à
majorité et somme pondérées des probabilités
multiclass.OutputCodeClassifier : combinaison de classifieurs
avec un code pour la décision, pouvant être un code à correction
d’erreur

GIF-4101 / GIF-7005 (U. Laval) Méthodes par ensemble C. Gagné 32 / 32

Vous aimerez peut-être aussi