• Aucun résultat trouvé

Amplification d'arbres de régression compatibles avec l'encodage de la sortie, application à la reconnaissance des images de chiffres manuscrits

N/A
N/A
Protected

Academic year: 2021

Partager "Amplification d'arbres de régression compatibles avec l'encodage de la sortie, application à la reconnaissance des images de chiffres manuscrits"

Copied!
87
0
0

Texte intégral

(1)

Amplification d'arbres de régression compatibles avec

l'encodage de la sortie, application à la reconnaissance

des images de chiffres manuscrits

Mémoire

Khalil Ben Fadhel

Maîtrise en informatique - avec mémoire

Maître ès sciences (M. Sc.)

(2)

Amplification d’arbres de régression compatibles

avec l’encodage de la sortie, application à la

reconnaissance des images de chiffres manuscrits

Mémoire

Khalil Ben Fadhel

Sous la direction de:

Mario Marchand, directeur de recherche François Laviolette, codirecteur de recherche

(3)

Résumé

Le boosting est une approche largement utilisée pour résoudre les problèmes de classification et de régression. Sa force réside dans sa capacité à améliorer les performances de classificateurs individuels faibles pour en construire un puissant. La théorie du boosting est bien établie en tant que descente de gradient dans un espace de fonctions. Cependant, la conception d’un apprenant faible qui peut s’amplifier par boosting reste une question ouverte. Inspirés par les algorithmes Adaboost-MH et XGBoost, nous proposons une nouvelle famille d’apprenants faibles appelée Arbres de Hamming multi-classes à niveaux de confiance, où un arbre prend en charge l’encodage de la sortie, effectue un seul partitionnement disjoint de l’espace des instances, et prédit un vecteur de coefficients à valeurs réelles afin de mieux approximer le gradient fonctionnel négatif de la fonction objective. Nous proposons également un algorithme de boosting appelé QuadBoost-MHCR pour la minimisation de la perte quadratique multi-calsses avec encodage multi-classes de Hamming et avec des prédictions à niveaux de confiance. L’algorithme minimise une fonction de perte L2multi-classes et il est facile de le généraliser, de manière analogue à XGBoost, pour minimiser toute fonction objective deux fois différentiable.

(4)

Abstract

Boosting is a widely used approach for solving classification and regression problems. Its strength lies in its ability to improve the performance of individual weak classifiers to construct a strong one. The theory of boosting is well established as a gradient descent in functional space. However, the design of a boostable weak learner is still an open issue. Inspired by the algorithms Adaboost-MH and XGBoost, we propose a new family of weak learners called confidence rated multi-class Hamming trees where a tree supports output coding, performs a single disjoint partitioning of the input space, and outputs a real valued vector in order to better approximate the negative functional gradient of the cost function. We also propose a joint boosting algorithm, called QuadBoost-MHCR for Quadratic Loss Boosting with Multi-class Hamming output encoding, and Confidence Rated predictions. The algorithm minimizes a multi-class L2-loss function, and it is easy to extend it, in an XGBoost fashion, to minimize

(5)

Table des matières

Résumé iii

Abstract iv

Table des matières v

Liste des tableaux vi

Liste des figures vii

Remerciements xi

Introduction 1

1 Concepts de Base 3

1.1 Apprentissage automatique supervisé . . . 3

1.2 Risque, risque empirique et généralisation . . . 5

1.3 Contrôle du surapprentissage . . . 6

1.4 Vote de majorité et boosting pour le cas binaire . . . 9

1.5 Extensions multi-classes . . . 13

2 Algorithmes de boosting performants 17 2.1 L’algorithme Adaboost-MH . . . 17

2.2 L’algorithme XGBoost . . . 24

3 L’algorithme QuadBoost-MHCR 32 3.1 Description de l’algorithme . . . 32

3.2 Algorithme de l’apprenant faible . . . 35

3.3 Contrôle du sur apprentissage . . . 40

3.4 Convergence de QuadBoost-MHCR . . . 43

4 Résultats 47 4.1 La reconnaissance des images de chiffres manuscrits. . . 47

4.2 Analyse de QuadBoost-MHCR . . . 48

4.3 Comparaison entre QuadBoost-MHCR, Adaboost-MH et XGBoost . . . 67

Perspectives et conclusion 72

(6)

Liste des tableaux

1.1 Différents algorithmes de boosting pour la classification binaire selon la fonction

de perte alternative utilisée. . . 13

4.1 Valeur finale de l’erreur de classification pour les algorithmes Adaboost-MH,

(7)

Liste des figures

1.1 Principe de l’apprentissage supervisé.. . . 4

1.2 La méthode holdout. . . 8

1.3 La validation croisée. . . 9

1.4 Principe des algorithmes de boosting, un bloc rouge correspond à une tâche de l’algorithme de boosting, un bloc vert correspond à une tâche de l’apprenant

faible. . . 11

2.1 Arbre de Hamming, à gauche : arbre de Hamming avec un seul nœud interne,

à droite : arbre de Hamming avec deux nœuds internes . . . 24

2.2 Prédiction avec le votant faible utilisé dans XGBoost pour N = 3 et K = 3, les

flèches vertes indiquent le chemin suivi par l’instance x. . . 26

3.1 Arbre MHCR. Un nœud interne, en gris, est responsable d’acheminer l’instance

à une feuille de droite où à une feuille de gauche ; chaque feuille prédit un vecteur

de mesures de confiances c ∈RK.. . . 34

3.2 Souche de décision à niveaux de confiance dans le cas particulier de w uniforme,

K = 2, X = R et ri∈ {±1}. . . 37

3.3 Apprentissage des nœuds internes avec un sous-ensemble de l’ensemble

d’en-traînement. . . 41

4.1 Allure des coefficients des ondelettes de Haar à 2 dimensions, seuls les signes

des coefficients sont représentés.. . . 48

4.2 Deux ondelettes de Haar obtenues par translation d’une ondelette de Haar mère.

Les pixels gris correspondent à une valeur nulle. . . 49

4.3 La transformation en Ondelettes de Haar. (a) : image originale (b) : image

transformée en considérant des ondelettes de Haar de taille 2 pixels × 2 pixels (c) deuxième niveau de la transformation obtenu en doublant la largeur et la hauteur du support des quatre ondelettes mères. Chaque quadrant est pointé par l’image ondelette correspondante. Les quadrants encadrés en rouge cor-respondent aux images moyennes. Ceux encadrés en bleu corcor-respondent aux

contours. . . 50

4.4 Variation du risque quadratique multi-classes en fonction de T . . . 51

4.5 Variation du pourcentage d’erreur sur l’ensemble de test en fonction de T . . . . 52

4.6 Courbe d’apprentissage, pour quelques valeurs de N , de QuadBoost-MHCR

appris sur les données MNIST transformées par des ondelettes de Haar à 4

(8)

4.7 Variation du risque quadratique multi-classes, pour quelques valeurs de N , du classificateur QuadBoost-MHCR appris sur les données MNIST transformées

par des ondelettes de Haar à 4 niveaux. . . 54

4.8 Histogramme des tailles des arbres-MHCR. Les classificateurs sont appris sur

les données MNIST transformées par des ondelettes de Haar à 4 niveaux. . . . 55

4.9 Variation du risque quadratique multi-classes en fonction de T , pour différentes valeurs de β. Les classificateurs sont appris sur les données MNIST transformées

par des ondelettes de Haar à 4 niveaux. . . 56

4.10 Variation du pourcentage d’erreur sur l’ensemble d’entraînement en fonction de T , pour différentes valeurs de β. Les classificateurs sont appris sur les données

MNIST transformées par des ondelettes de Haar à 4 niveaux. . . 57

4.11 Variation du pourcentage d’erreur sur l’ensemble de test en fonction de T , pour différentes valeurs de β. Les classificateurs sont appris sur les données MNIST

transformées par des ondelettes de Haar à 4 niveaux. . . 58

4.12 Histogramme des tailles des arbres-MHCR pour des valeurs de α. Les classifi-cateurs sont appris sur les données MNIST transformées par des ondelettes de

Haar à 4 niveaux.. . . 59

4.13 Variation du risque quadratique multi-classes en fonction de T , pour différentes valeurs de α. Les classificateurs sont appris sur les données MNIST transformées

par des ondelettes de Haar à 4 niveaux. . . 60

4.14 Variation du pourcentage d’erreur sur l’ensemble d’entraînement en fonction de T , pour différentes valeurs de α. Les classificateurs sont appris sur les données

MNIST transformées par des ondelettes de Haar à 4 niveaux. . . 61

4.15 Variation du pourcentage d’erreur sur l’ensemble de test en fonction de T , pour différentes valeurs de α. Les classificateurs sont appris sur les données MNIST

transformées par des ondelettes de Haar à 4 niveaux. . . 61

4.16 Variation du risque quadratique multi-classes en fonction de T , pour différentes valeurs de R1. Les classificateurs sont appris sur les données MNIST

transfor-mées par des ondelettes de Haar à 4 niveaux. . . 63

4.17 Variation du pourcentage d’erreur sur l’ensemble d’entraînement en fonction de T , pour différentes valeurs de R1. Les classificateurs sont appris sur les données

MNIST transformées par des ondelettes de Haar à 4 niveaux. . . 64

4.18 Variation du pourcentage d’erreur sur l’ensemble de test en fonction de T , pour différentes valeurs de R1. Les classificateurs sont appris sur les données MNIST

transformées par des ondelettes de Haar à 4 niveaux. . . 65

4.19 Variation du risque quadratique multi-classes en fonction de T . Les classifica-teurs sont appris sur les données MNIST transformées par des ondelettes de

Haar à 4 niveaux.. . . 65

4.20 Variation du pourcentage d’erreur sur l’ensemble d’entraînement en fonction de T . Les classificateurs sont appris sur les données MNIST transformées par des

ondelettes de Haar à 4 niveaux. . . 66

4.21 Variation du pourcentage d’erreur sur l’ensemble de test en fonction de T . Les classificateurs sont appris sur les données MNIST transformées par des

onde-lettes de Haar à 4 niveaux. . . 67

4.22 Variation du pourcentage d’erreur sur l’ensemble de test en fonction de T . . . . 68

4.23 Matrices de confusions pour les trois algorithmes Adaboost-MH, XGBoost,

(9)

4.24 Exemples d’instances empêchant Adaboost-MH de distinguer entre une image

(10)

Today’s scientists have substituted mathematics for experiments, and they wander off through equation after equation, and eventually build a structure which has no relation to reality. Nikola Tesla

(11)

Remerciements

Je tiens à adresser mes sincères et chaleureux remerciements à mon directeur de recherche Mario Marchand pour la confiance qu’il m’a accordée, sa disponibilité, ses conseils, sa rigueur scientifique et surtout pour m’avoir passionné par les méthodes d’ensemble. Je remercie Mario également de m’avoir offert la chance de bâtir un profil multidisciplinaire en travaillant dans des projets d’entreprises et en animant des travaux dirigés en parallèle avec mes études. J’apprécie énormément les discussions enrichissantes que nous avons eues ensemble et qui ont modifié ma façon d’extraire des analogies entre des concepts et ma façon d’analyser les problèmes. Je remercie également François Laviolette pour son encouragement et pour tous ses efforts pour être disponible et contribuer aux étudiants du GRAAL malgré ses innombrables res-ponsabilités. Même si nos rencontres étaient sporadiques, François s’arrange pour comprendre rapidement le sujet de discussion, et de communiquer ses idées sophistiquées d’une manière lucide et convaincante. J’ai bien aimé également nos discussions aléatoires par rapport à ce qui se passe dans le marché d’emploi et dans le monde des affaires.

Merci à mes collègues et amis au GRAAL qui ont fait du laboratoire un endroit très agréable pour le travail. Merci à Prudencio, Mazid, Pierre-Louis, Jean-Samuel, Jonathan, Frédéric, Nora, Francis et Nicolas d’avoir répondu à mes questions et pour leur ouverture à discuter des concepts qui sont parfois loin de leurs travaux. Merci à Jean-Samuel pour la collaboration que nous avons eue ensemble. J’ai vraiment aimé ta passion pour les mathématiques et la programmation scientifique et ton soucis du détail. J’espère sincèrement pouvoir retravailler ensemble et je te souhaite un excellent parcours et beaucoup de succès.

Merci aux examinateurs de mon mémoire, Brahim Chaib-draa et Richard Khoury. Leurs lec-tures attentives, commentaires, questions et suggestions m’ont permis de bonifier la qualité du document.

Je remercie la Mission universitaire de la Tunisie en Amérique du Nord de m’avoir supporté financièrement pendant ma deuxième année d’études de maîtrise.

Je tiens également à remercier mes parents pour avoir valorisé les études graduées, pour leur grande patience et pour m’avoir encouragé d’entreprendre des études graduées à l’Université Laval. Ce travail est dédié à eux.

(12)

Finalement, je remercie ma femme Hana pour son optimisme, son soutien, sa patience, et pour faire de la maison un endroit propice pour travailler. Finalement, merci à mon tout petit fils de sept mois Youssef d’être toujours joyeux et de distribuer à tout le monde des sourires et des rires inconditionnels. Ta joie est contagieuse et me fait apprendre qu’il est possible d’avoir le plus grand coeur pour la moindre des choses.

(13)

Introduction

L’apprentissage automatique est un sous-domaine de l’intelligence artificielle qui vise à doter les ordinateurs d’une capacité à apprendre à partir de données et par suite, être capable de bien performer sur des tâches sans être explicitement programmé pour les résoudre. La classification binaire fait partie de ces tâches. Il s’agit de donner une réponse «oui» ou «non» à une question. Par exemple, prédire si un courrier électronique est malicieux ou non, ou encore, prédire si une image contient une voiture ou non. Parmi les familles de classificateurs, on s’intéresse aux votes de majorité performants, construits par amplification (ou par boosting ) de classificateurs de faible performance. Il s’agit de combiner, de manière itérative, plusieurs classificateurs de faibles performances afin de produire un classificateur final performant.

La classification binaire peut être vue comme la tâche de prédire si un objet appartient à la catégorie «oui» ou bien à la catégorie «non». Plus généralement, lorsqu’on a plus que deux catégories, on parle du problème de la classification multi-classes. Ce problème peut être scindé en deux sous problèmes : la classification multi-classes à étiquette unique, où un objet appar-tient exclusivement à une seule catégorie, et le problème multi-classes à multi-étiquettes, où un objet peut appartenir à plusieurs catégories, simultanément. La présente recherche s’intéresse au problème de la classification multi-classes, à étiquette unique et à multi-étiquettes. Afin de pouvoir effectuer des prédictions multiples, nous envisageons l’encodage de la sortie.

Dans le cadre de la classification binaire, la théorie relative au boosting est bien établie. Tou-tefois, son extension au problème multi-classes n’est pas triviale. En effet, des décisions telles que le choix de la fonction objective, le modèle du votant, la stratégie de minimisation de la fonction, et le type d’encodage doivent être effectuées afin de permettre un tel apprentissage. L’étude de deux algorithmes performants de boosting nous a permis de dégager deux éléments clés qui permettent un apprentissage efficace multi-classe : un partitionnement disjoint de l’es-pace des entrées qui est partagé entre les composantes de la sortie encodée, et des prédictions à des niveaux de confiances. Chaque stratégie a été utilisée séparément par le passé mais pas simultanément dans un même algorithme d’apprentissage. Ceci est effectué dans le présent travail.

Par le présent travail, on explore la résolution du problème de la classification multi-classes à travers la conception d’un algorithme de boosting. La particularité de cet algorithme est que

(14)

chaque apprenant faible a une sortie encodée, effectue des prédictions à niveaux de confiance, et effectue un partitionnement disjoint de l’espace des entrées, partagé entre les composantes de la sortie encodée. Les performances du classificateur produit seront évaluées sur la tâche de la classification des images de chiffres manuscrits.

Le chapitre 1 introduit les notions de base en apprentissage automatique requises pour la compréhension des chapitres suivants. On y explique la notion d’apprentissage supervisé, de classification, de vote de majorité et on y présente une famille d’algorithmes dits, de type boosting, permettant d’apprendre un vote de majorité. Le chapitre présente également quelques stratégies de boosting pour la classification multi-classes.

Le chapitre 2 présente deux algorithmes de boosting multi-classes et performants, à savoir XGBoost et Adaboost-MH. Chaque algorithme utilise une stratégie unique de la minimisation de la fonction objectif. Cette minimisation est appuyée par un choix adéquat du modèle de l’apprenant faible qui permet à chaque algorithme d’avoir des caractéristiques particulières. À la lumière de ces caractéristiques émerge une possibilité de concevoir un apprenant faible qui combine les points forts de chaque apprenant faible des deux algorithmes.

Le chapitre 3, en s’inspirant des idées principales des algorithmes XGBoost et Adaboost-MH, introduit un algorithme de boosting et un apprenant faible correspondant. Cet algorithme est appelé QuadBoost-MHCR. L’apprenant faible est conçu pour permettre la classification à multi-classes à étiquette unique et multi-étiquettes, la régression, les prédictions avec des niveaux de confiance, et le partitionnement disjoint de l’espace des instances.

Le chapitre 4 illustre les performances des trois algorithmes Adaboost-MH, QuadBoost-MHCR, et XGBoost sur la tâche de la classification des images de chiffres manuscrits. Une comparaison entre ces trois algorithmes a été effectuée afin d’illustrer les images les plus difficiles à classifier.

(15)

Chapitre 1

Concepts de Base

Introduction

L’apprentissage automatique selon (Mitchell et collab., 1997) consiste en l’étude des algo-rithmes qui permettent aux programmes de s’améliorer automatiquement, par expérience. Ceci consiste à examiner des données, appelées observations, pour en tirer des conclusions et des règles de décisions permettant d’effectuer desprédictions. L’objectif principal de cette approche est que ces prédictions ne soient pas exclusives aux observations utilisées pour l’ap-prentissage, mais plutôtgénéralisables sur de nouvelles données de même nature. Les règles et les conclusions déduites forment un programme appelé prédicteur. L’algorithme permet-tant de générer un tel prédicteur est appelé algorithme d’apprentissage.

1.1

Apprentissage automatique supervisé

L’apprentissage supervisé consiste à apprendre un prédicteur, capable de résoudre une tâche, à partir de l’observation des exemples de solutions. Un exemple est un couple formé par une instance, et la sortie correspondante lorsque la tâche est effectuée correctement. La figure

(16)

Algorithme d’apprentissage supervisé ℎ Prédicteur Nouvelle instance Prédiction Données étiquettées

Figure 1.1 – Principe de l’apprentissage supervisé.

Selon le type de la sortie, on distingue deux types d’apprentissages supervisés. — Larégression

— Laclassification

Pour les deux types ci-haut, l’instance est souvent un vecteur à composantes réelles. La sortie est un nombre réel en régression, et discret (un entier ou une valeur booléenne) en classification. Dans ce dernier cas, la sortie est appeléeétiquette, ou classe. Un exemple est donc une paire instance/étiquette où l’étiquette représente la classe à laquelle l’instance appartient. Il est également appelé exemple étiqueté.

Un exemple de problème de régression consiste à prédire la consommation d’une voiture en carburant en fonction de son kilométrage. Ici l’instance est un scalaire représentant le kilo-métrage, la sortie est un scalaire représentant la consommation en carburant. Les exemples d’entraînement peuvent être imaginés comme des observations de la consommation en fonction du kilométrage pour des kilométrages moyens ou faibles. Et on souhaite que les prédictions se généralisent sur des kilométrages inconnus. Un exemple de problème de classification est celui de la classification des diagnostics médicaux. Ici l’instance est le diagnostic médical. L’éti-quette à prédire est une réponse booléenne «oui» ou «non», indiquant si l’instance présente les symptômes d’une maladie particulière ou non.

Lorsque l’ensemble de catégories est formé de deux éléments, on parle d’une classification binaire. La tâche du classificateur peut être interprétée comme une réponse de type «oui» ou «non» à une question. Lorsque l’ensemble de catégories contient plus que deux classes, il s’agit d’une classification multi-classes.

Pour la classification multi-classes, si chaque instance appartient exclusivement à une seule classe, il s’agit de la configuration à étiquette unique (angl. single-label ). La reconnaissance automatique de chiffres manuscrits en est un exemple. Chaque instance est une image

(17)

conte-nant un chiffre écrit à la main. L’ensemble des étiquettes est l’ensemble {0, ..., 9}. La tâche du classificateur consiste à prendre une image en entrée, et reconnaître le chiffre qu’elle décrit. Lorsque l’instance peut appartenir à plusieurs catégories, il s’agit de la configuration multi-étiquettes (anglais : multi-label ). Les problèmes de la classification des documents et de la classification des titres musicaux en sont des exemples. Chaque document peut appartenir simultanément à plusieurs sujets, et chaque pièce musicale peut appartenir simultanément à plusieurs genres.

Le présent travail s’intègre dans le cadre de la classification multi-classes. On s’intéresse par-ticulièrement aux algorithmes permettant de résoudre simultanément des problèmes de clas-sification avec étiquette unique, et multi-étiquettes.

1.2

Risque, risque empirique et généralisation

Soit d un entier supérieur ou égal à1. Notons X ⊂ Rdl’espace des instances, et Y l’espace des sorties. Un prédicteur h est une fonction :

h: X −→ Y

x 7−→yˆ= h(x)

Notons A un algorithme d’apprentissage. On suppose que les exemples sont indépendants et identiquement distribués, en abrégé i.i.d.. L’hypothèse d’indépendance signifie que l’appa-rition d’un exemple n’a aucune influence sur les chances d’appal’appa-rition d’un autre exemple. L’hypothèse «identiquement distribués» signifie que tous les exemples sont générés par la même distribution D.

Les performances d’un prédicteur sont évaluées au sens d’une fonction de perte, notée ` : X × Y −→ R+. Elle permet d’associer un coût positif ou nul à toute prédiction h(x). Le

coût d’une prédiction exacte h(x) = y est habituellement nul. Dans le cas spécifique de la classification, il est courant d’utiliser la perte zéro-un.

`0/1(h(x), y) = 1[h(x) 6= y]

Avec 1 la fonction indicatrice d’erreur de classification. Elle est définie par : ∀h : X → Y, ∀x ∈ X , ∀y ∈ Y, 1[h(x) 6= y] =

(

1 si h(x) 6= y 0 si h(x) = y .

L’objectif de l’algorithme d’apprentissage est de produire un prédicteur h qui fait le minimum d’erreur sur les exemples générés selon D. Ceci se traduit formellement par la minimisation du «vrai» risque suivant :

(18)

En pratique, on ne dispose pas de toutes les observations possibles pour une tâche donnée. On se dispose plutôt d’un ensemble fini d’observations S = {(x, y) ∈ X × Y} ∼ Dm, appelé ensemble d’entraînement, et de taille m assez grande. Comme S est fini, la distribution D est inconnue. Il s’en suit qu’il est impossible d’évaluer le risque R(h). Pour contourner ce problème, on évalue un risque sur S, afin d’avoir une estimation du «vrai» risque R(h). Cette estimation est appelée risque empirique et s’écrit comme suit.

RS(h) def = 1 m X (x,y)∈S `(h(x), y)

Un faible risque empirique sur h ne nous permet pas de conclure si son vrai risque est faible. En effet, h peut être assez complexe de sorte à pouvoir capturer tous les détails de l’ensemble S. Le prédicteur fera en sorte que chaque instance est unique et nécessite des règles de décision particulières et exclusives à elle. La prédiction ira donc échouer pour une nouvelle instance n’appartenant pas à S. On assiste alors à un phénomène desurapprentissage. Il est possible également d’obtenir une mauvaise généralisation lorsque les prédictions sont très simplistes. Dans ce cas, le prédicteur applique des règles de décision «grossières» qui ne tiennent pas en compte certaines particularités importantes se trouvant dans les données d’entraînement. Ceci s’accompagne par un risque empirique élevé. On parle alors d’un sous-apprentissage. Afin d’évaluer la capacité d’un prédicteur à généraliser sur de nouvelles instances, on évalue un risque sur des exemples non présents dans S, mais générées par la même distribution. Ces exemples sont aussi i.i.d. et indépendants de S. Ils constituent l’ensemble de test.

RT(h) def = 1 |T | X (x,y)∈T `(h(x), y)

Où T désigne l’ensemble de test. Le risque sur T est en effet une estimation non biaisée du «vrai» risque. L’objectif final de l’apprentissage supervisé et de produire un prédicteur qui généralise aux instances non observées.

1.3

Contrôle du surapprentissage

1.3.1 Risque régularisé

D’après le dernier paragraphe, l’augmentation de la complexité d’un prédicteur permet de capturer des détails supplémentaires sur les données, et donc de minimiser davantage le risque empirique sur l’ensemble d’entraînement. Il s’ensuit alors que les chances de surapprentissage sont plus élevées avec un prédicteur complexe.

Afin d’éviter un éventuel surapprentissage, on pénalise les prédicteurs de complexité élevée. Pour un prédicteur h, ceci est effectué en ajoutant au risque empirique, un terme de ré-gularisation λΩ(h) qui quantifie cette pénalité. Ω(h) augmente avec l’augmentation de la

(19)

complexité de h. λ est une constante positive, qui quantifie l’importance de la pénalisation de la complexité. Autrement dit, plus λ est élevé, plus les prédicteurs de faible complexité sont favorisés. Le risque obtenu est appelé risque empirique régularisé, et s’écrit comme suit.

RS(h, λ) = 1 m X (x,y)∼S `(h(x), y) + λ.Ω(h)

Ainsi, pour une valeur fixée de λ, la minimisation du risque empirique régularisé revient à chercher un compromis entre une complexité minimale et un risque empirique minimal. Le paramètre λ n’est pas optimisé par l’algorithme d’apprentissage. Il est appelé hyperpara-mètre. En effet, tout paramètre qui n’est pas optimisé par l’algorithme d’apprentissage est appelé ainsi. Sous cette définition, le choix de l’algorithme d’apprentissage et de la famille à laquelle appartient le prédicteur pourra introduire des hyperparamètres. Le degré d’un poly-nôme dans une régression polynomiale, le nombre de niveaux dans un arbre de décision et le nombre de couches dans un réseau de neurones sont des exemples d’hyperparamètres in-troduits par le choix de la famille du prédicteur. Le pas de la descente dans l’algorithme de descente du gradient est un autre exemple d’un hyperparamètre introduit par le choix d’un algorithme d’apprentissage.

Les hyperparamètres sont généralement optimisés par une méthode desélection des hyper-paramètres (Claesen et De Moor, 2015). L’ensemble des valeurs candidates des hyperpara-mètres est fixé avant d’appliquer la stratégie du choix des valeurs optimales. Le paragraphe suivant présente deux exemples de ces stratégies.

1.3.2 Sélection des hyperparamètres

Disposant d’un ensemble de valeurs candidates des hyperparamètres, la sélection des hyper-paramètres consiste à identifier le/un choix optimal parmi ces valeurs. Avec ce choix, l’entraî-nement d’un prédicteur garantira la meilleure généralisation.

Afin d’évaluer la capacité de l’algorithme à généraliser sur de nouveaux exemples, on évalue ses performances sur un ensemble de validation. Cet ensemble est un sous-ensemble de l’ensemble d’entraînement S, qui n’est pas utilisé pour l’entraînement.

Selon la manière de construire et d’utiliser l’ensemble de validation, on distingue deux mé-thodes principales de sélection des hyperparamètres, à savoir, la méthode holdout et la méthode de la validation croisée.

La méthode holdout

L’ensemble d’entraînement S est partitionné en deux sous ensembles disjoints SV et ST. Pour

chaque combinaison des hyperparamètres, l’algorithme d’apprentissage entraîne un prédic-teur sur l’ensemble ST. Le risque empirique sur l’ensemble SV est ensuite évalué. Ensuite, les

(20)

valeurs des hyperparamètres minimisant le risque empirique sur SV sont retenues comme va-leurs optimales. Finalement, on reprend l’apprentissage en utilisant l’ensemble S et les vava-leurs optimales des hyperparamètres. La figure 1.2illustre cette approche.

Lorsque l’algorithme d’apprentissage est itératif, nous pouvons utiliser cette méthode pour définir un critère d’arrêt. On surveille périodiquement (par exemple, à chaque 10 itérations) la variation du risque empirique sur SV. L’itération à laquelle ce risque commence à augmenter marque le début du surapprentissage. Cette méthode est appelée arrêt prématuré. Elle est utilisée dans plusieurs familles d’algorithmes tels que la descente du gradient stochastique (Yao et collab.,2007) et Adaboost (Zhang et collab.,2005a).

Ensemble d’entraînement intitial

Partitionnement disjoint

Ensemble

d’entraînement Ensemblede validation

Figure 1.2 – La méthode holdout.

La validation croisée

De manière analogue à la méthode holdout, le choix des valeurs optimales des hyperpara-mètres est celui qui minimise le risque de validation croisée RCV. Dans la méthode holdout, l’information contenue dans l’ensemble de validation SV n’est pas exploitée dans

l’apprentis-sage. La méthode de la validation croisée offre une alternative à cet inconvénient. L’ensemble S est subdivisé en K partitions disjointes S =SK

k=1Sk. Pour chaque combinaison de valeurs

des hyperparamètres à essayer, l’algorithme d’apprentissage est lancé itérativement K fois, tel que à chaque itération d’indice k, l’apprentissage est effectué sur l’ensemble S \ Sk et le

prédicteur obtenu est évalué sur l’ensemble Sk. Le risque de la validation croisée est le risque de validation moyen sur les ensembles {Sk}K

(21)

1 2 3 4 5

Risque Moyen

Ensemble d’entraînement initial

Partitionnement disjoint Ensemble d’entraînement Ensemble de validation Itération n°: 1 Itération n°: 2 Itération n°: 3 Itération n°: 4 Itération n°: 5

Figure 1.3 – La validation croisée.

1.4

Vote de majorité et boosting pour le cas binaire

Dans cette section, et afin de simplifier les notations, nous allons considérer le cas de la classification binaire.

Un classificateur est ditvote de majorité lorsqu’il est exprimé comme une somme pondérée de plusieurs classificateurs, ditsvotants. Une telle combinaison vise à générer un classificateur plus performant que chaque votant individuel.

Dans le cadre de la classification binaire, un vote de majorité peut s’écrire comme suit.

∀x ∈ X , H(x) = signe(f(T )(x)) = signe(

T

X

t=1

αt h(t)(x)) (1.1)

Avec h(t) un classificateur binaire, et αt le poids qui lui est associé. Les poids les plus élevés

sont associés aux votants qui contribuent le plus à la diminution du risque substitut (voir section 1.4.2). Ce sont généralement des votants à risque substitut faible. La magnitude du poids αt présente donc une indication sur la performance du votant h(t).

(22)

confiance. L’expression du vote de majorité (1.1) s’écrit plus simplement comme suit : ∀x ∈ X , H(x) = signe(f(T )(x)) = signe( T X t=1 h(t)(x)) (1.2)

1.4.1 Algorithmes d’apprentissage de vote de majorité

Les algorithmes permettant d’apprendre des votes de majorité font partie des méthodes d’en-sembles. Ces méthodes visent à produire un prédicteur final à partir d’un ensemble de prédic-teurs, et qui soit plus performant que chaque prédicteur individuel. Le vote de majorité est un cas particulier où la génération du prédicteur final est effectuée à l’aide d’une combinaison linéaire des votants.

En considérant l’expression (1.1), l’apprentissage du vote de majorité requiert l’apprentissage des poids {αt}Tt=1, et des votants {h(t)}Tt=1. Une approche couramment utilisée est le stacking

(Wolpert,1992). Elle consiste, dans un premier temps à apprendre des prédicteurs performants. Ces derniers peuvent appartenir à différentes familles, et sont appris indépendamment les uns des autres. En second temps, les poids de ces votants performants sont appris par régression logistique (Gomes et collab.,2012).Rooney et collab. (2006) ont amélioré cette approche en ajoutant une étape d’élagage basée sur l’analyse de l’efficacité des votants individuels. Il s’agit d’enlever les votants les moins performants.

En général, le Stacking produit un vote de majorité qui est légèrement plus performant que le votant individuel le plus performant. Par contre, aucune amélioration n’est garantie (Džeroski et Ženko, 2004). Cette approche est souvent utilisée dans les compétitions en apprentissage automatique quand une faible augmentation des performances est décisive dans la sélection de l’algorithme gagnant, et quand le coût temporel d’apprentissage n’est pas un critère important. Le boosting (Schapire et Freund, 2012a) est une seconde approche de génération de vote de majorité où les votants font partie de la même famille de prédicteurs, ne sont pas forcément performants, et où l’apprentissage de chaque poids se fait conjointement à l’apprentissage du votant correspondant. En boosting, chaque votant est appelé un votant faible. Il est défini comme un votant de performances légèrement meilleures à celui qui choisit une étiquette de manière aléatoire.

Les avantages principaux du boosting par rapport au stacking sont :

— Des prédicteurs de faible complexité sont acceptables comme votants ;

— Les contraintes sur les performances du votant faible peuvent être satisfaites par des algorithmes d’apprentissage qui sont simples et rapides ;

— L’augmentation itérative des performances du vote de majorité, jusqu’à convergence, est garantie.

(23)

L’apprentissage des votants faibles et des poids qui leurs sont associés est effectué itérative-ment. À chaque itération t, l’algorithme de boosting utilise les données préparées à l’itération précédente t −1 pour appeler l’apprenant faible. L’objectif de cet appel est de produire un votant faible susceptible d’améliorer le vote de majorité actuel f(t−1). Ensuite, le poids associé à ce votant est calculé par l’algorithme du boosting. Finalement, les données pour la prochaine itération sont modifiées en fonction des erreurs effectuées par le vote de majorité actuel f(t). La figure 1.4 illustre ces étapes. Notons que dans la convention de prédictions à niveaux de confiance (1.2), le calcul des poids est «imbriqué» dans les tâches de l’apprenant faible, et c’est plutôt une étape de calcul de niveaux de confiances.

Données d’entraînement

Modification

des données

Génerer un

votant faible

(1)

Modification

des données

Génerer un

votant faible

(2)

Modification

des données

Génerer un

votant faible

(𝑇)

𝑓

(𝑇)

Calcul des poids

Réitérer

jusqu’à

l’iteration 𝑇

Effectuer

T itérations

Figure 1.4 – Principe des algorithmes de boosting, un bloc rouge correspond à une tâche de l’algorithme de boosting, un bloc vert

correspond à une tâche de l’apprenant faible.

(24)

lesquels le vote de majorité f(t) effectue des erreurs de prédictions. Ceci permet d’orienter

l’apprenant faible vers la production d’un votant qui corrige ces erreurs. Pour Adaboost, cette mise à jour consiste à amplifier les poids des exemples mal étiquetés et à réduire les poids des exemples bien étiquetés. Pour L2-Boost, chaque exemple i est ré-étiqueté avec la nouvelle valeur du résidu yi− f(t)(x

i). Les exemples à résidus de valeur absolue importante

correspondent à un écart important entre la vraie étiquette et la prédiction donnée par f(t). L’apprenant faible tentera de produire un votant faible qui réduit ces écarts.

Afin de pouvoir décroître continuellement la fonction objective jusqu’à atteindre un minimum global, on a intérêt à bien choisir le modèle du votant faible, l’algorithme d’apprentissage de ce votant, la stratégie de la pondération des votants ou du calcul des niveaux de confiance, et la stratégie du contrôle du surapprentissage.

Dans le contexte de boosting,Zhang et collab. (2005b) ont introduit la multiplication le poids de chaque votant faible par un scalaire t∈]0, 1], qui décroît vers 0 avec le nombre d’itérations

t afin de permettre l’amélioration des performances du vote de majorité final. Cette technique est appelée epsilon-shrinkage. Rosset et collab. (2004) démontrent que pour Adaboost et logit-boost, epsilon-shrinkage permet de produire un classificateur f(T ) qui maximise la marge minimale mini(yi.f(T )(xi)), avec des poids satisfont la contrainte PTt=1kαtk1 = 1. Chen et

Guestrin (2016), dans leur algorithme XGBoost, utilisent des arbres de régression comme

apprenant faible. À la différence des arbres de décision, les arbres de régression effectuent une prédiction scalaire, ou encore, un niveau de confiance. Chen et Guestrin(2016) ajoutent à la fonction à minimiser un terme de régularisation qui pénalise les niveaux de confiance de valeurs élevées, ainsi que les arbres ayant un grand nombre de feuilles. En plus, afin d’avoir des niveaux de confiances non biaisés, on utilise un sous-ensemble de l’ensemble d’apprentissage qui n’a pas été utilisé pour l’apprentissage des nœuds internes. Par analogie avec la convention1.1, ceci est équivalent à dire que le poids αt, associé à un votant faible, est estimé avec un ensemble formé

par des exemples non vus par l’apprenant faible. Pour le cas d’Adaboost, et dans le contexte de classification multi-classes, Mukherjee et Schapire(2013) soulignent l’importance du choix de la fonction objective. Une fonction qui pénalise sévèrement les erreurs de prédictions va empêcher l’apprenant faible d’explorer de nouvelles règles de décisions. Le votant faible produit est contraint d’être cohérent avec les bonnes prédictions du vote de majorité déjà construit. La fonction objective cesse alors de diminuer.

1.4.2 Quelques algorithmes de boosting

En classification, la fonction de perte utilisée est généralement la perte zéro-un. `0/1(h(x), y) = 1[h(x) 6= y]

Dans le cadre du boosting, cette fonction est souvent remplacée par une fonction de perte alternative `0 supérieure à ` pour tout exemple. Le tableau Tableau 1.1 illustre quelques

(25)

algorithmes de boosting selon la fonction de perte alternative utilisée. Fonction de perte Expression Analytique méthode d’optimisation des poids Algorithme obtenu Exponentielle exp − yf(T )(x) Racine de la dérivée du risque par rapport

au poids αt

Adaboost

(Schapire et Freund,2012a)

Quadratique y − f(T )(x)2

Racine de la dérivée du risque par rapport

au poids αt

L2-boost (Bühlmann et Yu,2003) Logistique log 1 + exp(−yf(T )(x)) Line search

(Méthode de Newton)

Logit-Boost (Friedman et collab.,2000)

Tableau 1.1 – Différents algorithmes de boosting pour la classification binaire selon la fonction de perte alternative utilisée.

1.5

Extensions multi-classes

Les extensions multi-classes des algorithmes de boosting peuvent être regroupées en deux groupes.

— Utilisation d’une famille d’apprenants faibles adaptée au problème de la classification multi-classes.

— Réduction du problème multi-classes à plusieurs problèmes de classification binaires, via un encodage de la sortie.

Notons K ≥ 2 le nombre de classes. Dans le premier cas, le votant faible effectue des pré-dictions dans {1, ..., K}. Dans le second, chaque votant faible est formé par un ou plusieurs prédicteurs. Chaque prédicteur résout un problème de classification binaire. L’ensemble des étiquettes binaires prédites est ensuite transformé par le vote de majorité en une prédiction dans {1, ..., K} par l’intermédiaire d’un encodage de la sortie.

Chaque type d’extension multi-classes impose l’utilisation d’une stratégie adaptée pour l’ap-prentissage des poids et des votants faibles, ainsi que la redéfinition de la notion de la faible apprenabilité. La présente section est consacrée à la présentation des différentes extensions multi-classes de l’algorithme Adaboost.

1.5.1 Utilisation d’un apprenant faible multi-classes

Adaboost-M1

L’extension la plus directe et intuitive de l’algorithme Adaboost est Adaboost-M1 (Freund et collab., 1996). Chaque votant faible effectue une prédiction dans {1, ..., K}. Le calcul des poids de ces votants est similaire à celui pour Adaboost binaire. À chaque itération les poids

(26)

des exemples bien classifiés sont atténués. Ceux des exemples mal classifiés sont conservés. La classe prédite par le vote de majorité est la classe cumulant le maximum de poids.

Adaboost-M1 requière aussi qu’à chaque itération t, le votant faible effectue une erreur de classification inférieure à 12, relativement à la distribution D(t) calculée à l’itération précé-dente. Dans un cas idéal, on souhaite pouvoir combiner des votants faibles de performances légèrement meilleures que celles d’un choix aléatoire. Ceci se traduit par une erreur de classi-fication légèrement inférieure à K−1K . Ainsi, pour un nombre de classes assez grand, exiger que l’apprenant faible retourne un votant faisant une erreur de classification inférieure à 12 est une condition réalisable par un nombre réduit de familles de classificateurs telles que les arbres de décisions profonds, et les réseaux de neurones. Ceci constitue un désavantage majeur de Adaboost-M1.

En plus, dans le cas de la classification binaire, si un votant h donne une erreur de classification légèrement supérieure à 12, alors le classificateur −h donne une erreur légèrement inférieure à

1

2. Il pourra donc être retenu comme un votant faible. Cette propriété ne peut être exploitée

par d’Adaboost-M1. En effet, un classificateur donnant une erreur supérieure à 12 est inutile, et il doit être rejeté par l’apprenant faible.

Adaboost-M2

Une version plus sophistiquée, Adaboost-M2, a été introduite par Freund et collab. (1996) pour contourner les inconvénients de Adaboost-M1. Initialement, un ensemble de données mal-étiquetées est construit : pour chaque exemple d’indice i, on construit K −1 tuples (i, y) avec y 6= yi. Cet ensemble est associé initialement à une distribution uniforme. Le second ajout

par rapport à Adaboost-M1 est que le votant faible effectue des prédictions dans [0, 1]K, où

chaque prédiction d’indice l traduit la confiance du votant que l’instance appartient à la classe l. La troisième modification concerne la fonction de perte à minimiser. Au lieu de minimiser la perte zéro-un,Freund et collab.(1996) introduisent une perte, appelée pseudo-perte compatible avec l’ensemble mal-étiqueté. Contrairement à la perte zéro-un, cette fonction est calculée sur les mauvaises étiquettes d’un exemple donné, respectivement à une distribution. Les auteurs de Freund et collab.(1996) mentionnent que cette modification permet d’orienter l’apprenant faible à bien classifier les exemples, mais aussi à éviter les mauvaises classifications, qui peuvent s’avérer plus difficiles que d’effectuer de bonnes prédictions.

La contrainte de la faible apprenabilité impose que l’erreur commise par le votant faible sur chacune des étiquettes l ∈ {1, ..., K} soit inférieure à 1/2. Ce qui est facilement réalisable comme dans le cas binaire.

(27)

1.5.2 Utilisation d’un encodage de la sortie

L’opération d’encodage de la sortie consiste à transformer chaque étiquette y ∈ Y en un vecteur d’étiquettes y, appelé code. L’opération de retrouver la classe correspondant à un code est appelée décodage. En général, les valeurs des composantes des codes appartiennent à {±1, 0}. Ces valeurs indiquent une réponse du type «oui» ou «non», ou «non pertinent» à une question. La dernière réponse signifie que la question n’est pas pertinente. Dans ce cas, la perte est nulle indépendamment de valeur prédite pour cette composante.

Chaque composante effectue ainsi une dichotomie des exemples en deux groupes. La tâche de l’apprenant faible est de produire un votant qui performe bien sur la prédiction des sorties encodées. Pour ce faire, on distingue deux variantes.

— Chaque composante de la sortie est apprise par un classificateur.

— Les composantes de la sortie partagent le même partitionnement disjoint de l’espace des instances.

Dans le premier cas, le problème de la classification multi-classes est décomposé en plusieurs problèmes indépendants de classification binaire. Dans le second cas, l’espace des instances est partitionné en plusieurs partitions disjointes. Chaque partition est associée à un vecteur de sortie, ou bien à un vecteur de prédictions à des niveaux de confiance.

On distingue trois types d’encodage : l’encodage une classe contre le reste, l’encodage toutes les paires, et l’encodage général.

Encodage une-classe-contre-le-reste

Dans le cas de l’encodage une-classe-contre-le-reste, le code est de longueur K et chaque com-posante d’indice k du code est à valeurs dans {±1}. Elle indique si l’exemple appartient à la classe k ou non, d’où l’appellation une-classe-contre-le-reste. Chaque étiquette y est transfor-mée en un vecteur y à K composantes où toutes les composantes sont de valeur égale à −1 sauf pour la composante d’indice k= y. Parmi les algorithmes exploitant ce type d’encodage, on cite Adaboost-MH et XGBoost. Pour Adaboost-MH dans sa version de base (Schapire et Freund,2012a), l’apprenant faible est formé de K classificateurs binaires, chacun responsable de prédire l’appartenance exclusive à une des classes. Kégl (2013) a proposé une version de Adaboost-MH avec un partitionnement disjoint de l’espace des instances. En effet, pour tout x ∈ X , la sortie vectorielle h(x) est donnée par :

h(x) = v ϕ(x)

ϕ est une fonction indépendante de la classe, qui effectue des prédictions dans {±1}. Elle permet de subdiviser l’espace des instances en plusieurs régions. v est un vecteur à composantes dans {±1}. Chaque composante exprime l’accord ou le désaccord avec la sortie de ϕ. Une troisième version de Adaboost-MH est RealAdaboost-MH (Kégl,2013). Ici la fonction ϕ est à

(28)

sortie réelle et chaque région est associée à un scalaire. Cet algorithme permet la construction de votants à niveaux de confiance.

Pour XGBoost (Chen et Guestrin,2016), de manière similaire à Adaboost-MH, chaque code de la sortie est représenté par un vecteur de taille K et à coefficients dans {0, 1}. Les prédictions des composantes des sorties encodées sont effectuées par K arbres de régression, entraînées séparément sur chacun des K problèmes.

Encodage toutes-les-paires

Le problème de la classification à K-classes est décomposé en K(K −1) classifications binaires. Chaque classification vise à résoudre le problème d’identifier si une instance appartient à une classe parmi deux classes spécifiques.

Encodage général

Dans le cadre le plus général, chaque composante du code peut être vue comme la réponse à une question (Schapire et Freund,2012a) permettant de diviser les exemples en deux groupes. Les exemples au sein du même groupe présentent des similarités entre eux, et des différences avec les exemples du second groupe. À titre d’exemple, dans le cadre de reconnaissance des chiffres manuscrits, la présence d’un trait qui définit un contour fermé permet de différencier les classes {0, 2, 6, 8, 9} des classes {1, 3, 4, 5, 7}. On forme ainsi une dichotomie des exemples en deux groupes. Le code associé à une classe est obtenu en continuant à poser de telles questions jusqu’à pouvoir isoler cette classe. Il est formé par la séquence de réponses à ces questions.

Conclusion

Dans ce chapitre, nous avons présenté des éléments de la théorie de l’apprentissage machine et du boosting dans le cas de la classification binaire et multi-classes. Ce projet s’intègre dans le contexte de la classification multi-classes à étiquette unique avec des méthodes de boosting. Le prochain chapitre s’adresse aux algorithmes de boosting performants, notamment, Adaboost-MH et XGboost.

(29)

Chapitre 2

Algorithmes de boosting performants

Introduction

Comme nous l’avons précisé au chapitre précédant, le passage du problème de la classification binaire au problème de la classification multi-classes nécessite l’adaptation de la sortie via un encodage. Il s’ensuit un changement conséquent du modèle de l’apprenant faible ainsi que le choix d’une stratégie de l’optimisation de la fonction objective. Dans le présent chapitre, nous allons introduire deux algorithmes de boosting performants dans le cas de la classification multi-classes, à savoir, Adaboost-MH et XGBoost. Chaque algorithme sera analysé selon les quatre aspects suivants.

— Type de l’encodage de la sortie ;

— Définition de la fonction objective, majorant le risque empirique multi-classes ; — Méthode de minimisation de la fonction objective ;

— Modèle du votant faible ; — Apprenant faible.

2.1

L’algorithme Adaboost-MH

Dans cette section, nous allons présenter l’algorithme Adaboost-MH proposé parKégl(2013). Soit K ≥ 2 le nombre de classes, X = Rd avec d un entier supérieur ou égal à 1, et Y = {1, ..., K}. Notons S = {(xi, yi), ∀ i ∈ {1, ..., m}, xi∈ X , yi ∈ Y} l’ensemble des exemples.

2.1.1 Encodage de la sortie

Pour l’algorithme Adaboost-MH, les étiquettes sont encodées par un encodage une-classe-contre-le-reste. C’est-à-dire que chaque étiquette y est associée à une représentation vectorielle y où les coefficients yk sont égaux à −1, sauf à la position k = y (voir équation (2.1)). Cet

(30)

Dans le cas de la classification à étiquette unique, un seul coefficient de y sera égal à+1. Dans le cas de la classification multi-étiquettes, l’instance peut appartenir à plusieurs étiquettes. Les coefficients correspondants seront de valeur+1. Sans perte de généralité, nous allons nous concentrer sur le cas multi-classes à étiquette unique.

yk=

(

−1 si k 6= y

+1 si k = y . (2.1)

2.1.2 Vote de majorité et prédictions

Conformément à l’encodage MH choisi, l’algorithme Adaboost-MH construit un classificateur H qui effectue des prédictions dans le même espace des sorties encodées.

H: X −→ {±1}K x 7−→ H(x)

L’expression de chaque composante de la sortie de H s’exprime en fonction d’une fonction f(T ): X → RK, construite à partir de T votants.

∀ x ∈ X , ∀ k ∈ Y, Hk(x) = signe fk(T )(x)

(2.2) L’expression de f(T ) est donnée par :

∀ x ∈ X , f(T )(x) =

T

X

t=1

h(t)(x) avec h(t) : X → RK ∀ t ∈ {1, ..., T } (2.3)

Pour un exemple (x, y) ∈ X × Y, et dans le cadre de la classification à étiquette unique, l’opération d’estimer une étiquette y ∈ Y à partir de fˆ (T ) est régie par l’expression :

ˆ

y= argmax

k

(fkT(x)). (2.4)

2.1.3 Perte de Hamming et risque exponentiel multi-classes

En utilisant un ensemble d’exemples étiquetés S = {(xi, yi), ∀ i ∈ {1, ..., m}, xi ∈ X , yi ∈

{±1}K} , où chaque exemple est généré selon une distribution D, l’objectif de l’algorithme

Adaboost-MH est de produire un classificateur H : X → {±1}K à sortie vectorielle et qui

minimise le «vrai» risque de classification suivant. RD

def

= E

(x,y)∼DL(H(x), y)

Dans le cadre de la classification à étiquette unique ou multi-étiquettes, on utilise la perte de Hamming pondérée Lw, définie comme suit.

Lw(H(x), y) def = K X k=1 wk1[Hk(x) 6= yk] , ∀ (x, y) ∈ X × {±1}K. (2.5)

(31)

w est une distribution de probabilité sur l’ensemble {1, ..., K}. Chaque composante wkexprime

le poids de la pénalité associée à une erreur de prédiction Hk(x) 6= yk. Dans le cadre de

la classification multi-étiquettes, les composantes de y sont de même importance. Le choix wk = 1/K est un choix adéquat. Dans, le cas de la classification à étiquette unique, il est

courant de choisir une distribution dépendante de la classe afin de donner plus d’importance à la composante ykde valeur+1. En effet, se tromper sur la valeur de cette composante est plus

grave que se tromper sur les valeurs des autres composantes. En notant `(y) = y ∈ {1, ..., K} l’indice tel que y`(y) = +1, il est fréquent d’effectuer le choix 2.6 de la distribution w(y) dépendante de y. wk(y) = ( 1 2 si k= y 1 2(K−1) si k 6= y . (2.6)

Avec ce choix, et en supposant que le nombre d’exemples dans chaque classe est le même, on crée K problèmes de classification binaire balancés. C’est-à-dire que, pour chaque composante k de la sortie, la somme des poids des exemples à étiquettes positives est égale à celle des exemples à étiquettes négatives.

Le risque empirique 0/1 de Hamming s’exprime alors comme suit.

RHamS (H)def= 1 m m X i=1 K X k=1 wk(yi) 1[Hk(xi) 6= yi,k] (2.7)

Pour tout exemple (x, y) ∈ X × {±1}K, et pour tout k ∈ {1, ..., K}, nous avons que

1[Hk(x) 6= yk] = 1[f (T )

k (x).yk<0]

≤ exp − yk.fk(T )(x)

Il s’ensuit que le risque empirique multi-classes de Hamming est majoré par le risque expo-nentiel RExpS suivant.

RExpS (f(T )) = 1 m m X i=1 K X k=1 wk(yi)exp − yi,k.fk(T )(xi) 

La minimisation du risque0/1 de Hamming sera effectuée à travers la minimisation du risque exponentiel de Hamming RSExp.

2.1.4 L’algorithme de boosting

D’après (Kégl,2013), le risque RExpS (f(T )) peut être factorisé comme suit.

RExpS (f(T )) =

T

Y

t=1

(32)

Avec, Z(h(t), w(t)) = 1 m m X i=1 K X k=1 w(t)k (yi) exp(−h(t)k (xi) yi,k) et w(t)k (yi) = w(t−1)k (yi) exp(−h(t−1)k (xi) yi,k) Z(h(t−1), w(t−1))

Ainsi, de manière analogue à Adaboost dans le cas binaire, le risque exponentiel peut être minimisé en minimisant le terme Z(h(t), W(t)) à chaque itération t. L’algorithme Adaboost-MH en découle.

Algorithm 1: Adaboost-MH

Input: Le nombre T de votants faibles.

Input: Une distribution w sur {1, ..., K}, possiblement dépendante de la classe. Input: S = {(xi, yi), ∀ i ∈ {1, ..., m}, xi ∈ X , yi∈ {±1}K} Initialisation : w(1) = w ; for t= 1 to T do h(t) ← WL(S, w(t)); Mise à jour : ∀k ∈ {1, ..., K} , ∀ i ∈ {1, ..., m} w(t+1)k (xi) = w(t)k (x). exp(−h(t)k (x) yi,k) Pm i0=1 PK k0=1wk0(xi0).exp − h(t) k0 (xi0) yi0,k0

Output: Un prédicteur H(T ) à valeurs dans {±1}K, et une fonction f(T ) à valeurs dans

RK telle que H(T )= signe(f(T )) avec :

f(T ) =

T

X

t=1

h(t)(x), ∀x ∈ Rd.

À chaque itération t, l’algorithme invoque l’apprenant faible pour générer un votant qui, idéa-lement, minimise Z(h(t), w(t)). Pour un exemple x, w(y) est mise à jour de sorte à augmenter

les poids wk(x) correspondants à une marge h(t)k (x) yknégative, et à diminuer les poids associés

à une marge positive. Ceci est équivalent à augmenter l’importance des erreurs de prédiction effectuées par h(t).

2.1.5 Modèle de l’apprenant faible

Dans la version originale d’Adaboost-MH (Schapire et Freund,2012a), l’apprenant faible est composé par K prédicteurs. Chaque prédicteur d’indice k est entraîné indépendamment des

(33)

autres, et vise à minimiser le terme : 1 m m X i=1 wk(t)(yi) exp(−h(t)k (xi) yi,k)

Dans cette version, chaque prédicteur effectue un partitionnement de l’espace des instances qui peut être différent des partitionnements obtenus par les autres prédicteurs. Kégl (2013) propose deux apprenants faibles, permettant d’utiliser un partitionnement partagé entre les prédicteurs h(t)k . En l’occurrence, ces apprenants sont :

— Souche de décision factorisée.

— Arbre de décision MH basés sur des souches de décision factorisées. Souche de décision factorisée

La souche de décision factorisée est le produit d’une fonction ϕ : X → {±1} qui dépend uniquement des instances, d’un vecteur v ∈ {±1}K qui exprime l’accord ou le désaccord avec

les valeurs de ϕ et d’un scalaire α qui exprime le degré de confiance en la prédiction vϕ. La sortie de l’hypothèse faible s’exprime donc comme suit.

∀x ∈ X , h(x) = α v ϕ(x) (2.8)

La factorisation permet de définir une séparation partagée entre les différentes classifications binaires. L’introduction du vecteur de votes v permet de réutiliser les prédictions de ϕ pour produire un votant faible. En effet, si ϕ effectue un risque empirique supérieur à 12, alors −ϕ effectue un risque empirique inférieur à 12. Ainsi, pour tout x ∈ X , chaque composante vk

corrige les prédictions données par ϕ de sorte que les performances de chaque composante du votant faible devient meilleure que celles d’un prédicteur qui prédit une étiquette aléatoire. En utilisant l’expression (2.8) de la souche de décision factorisée, Z(h, w) devient :

Z(h, w) = exp(α) + exp(−α) 2 − exp(α) − exp(−α) 2 K X k=1 vk.(µk+− µk−) (2.9) Avec :   

µk+ =Pmi=1wi,k(yi) 1[ϕ(xi) = yi,k)]

µk− =

Pm

i=1wi,l(yi) 1[ϕ(xi) 6= yi,k)]

Notons, γk la quantité vk.(µk+− µk−) =

Pm

i=1wk(y) vk ϕ(xi) yi,k, pour tout k ∈ {1, ..., K}.

Notons γ =PK

k=1γk. Dans ce qui suit, γ sera appeléeedge, γk sera appeléper-class-edge et

le vecteur γ = (γ1, γ2, ..., γK ) sera appelé multiclass-edge. Sous cette notation, l’expression 2.9 devient.

Z(h, w) = exp(α) + exp(−α)

2 −

exp(α) − exp(−α)

(34)

Ainsi, la valeur optimale de α qui minimise Z(h, w) est : α= 1

2log( 1 + γ

1 − γ) (2.10)

En utilisant cette valeur de α, la valeur optimale de Z(h, w) est : ˆ

Z(h, W) =p1 − γ2

Ainsi, ˆZ est minimale lorsque γ est maximale. Comme γ=PK

k=1vk.(µk+− µk−), ceci revient

à dire que chaque composante vk est de même signe que µk+− µk−.¸

∀ k ∈ {1, ..., K}, vk = signe(µk+− µk−) (2.11)

La tâche de l’apprenant faible consiste alors à produire un prédicteur h qui maximise le edge γ. Ceci pourra être effectué en trois étapes clés. La première consiste à chercher une fonction ϕ: X −→ {±1} qui maximise la somme des valeurs absolues des per-class-edges. L’introduction de la valeur absolue permet d’enlever la dépendance en vk.

ˆ ϕ= argmax ϕ X k=1 |vk m X i=1 wi,k(yi)yi,kϕ(xi)| = argmax ϕ X k=1 | m X i=1 wi,k(yi)yi,kϕ(xi)|

Si les instances sont triées selon toutes les composantes, il suffit de parcourir une seule fois tous les seuils possibles afin de retrouver le meilleur seuil θ∗. À chaque itération, l’évaluation de la quantité Pm

i=1wi,k(yi)yi,kϕ(xi) peut être déduite par addition ou soustraction d’un

terme2wi,k(yi)yi,k selon le signe du seul exemple qui change de région lorsque θ varie. Alors,

la recherche du meilleur seuil s’effectue efficacement en O(m.d). La deuxième étape consiste à déduire le vecteur v optimal selon l’équation (2.11) et de calculer le edge correspondant. Finalement, la valeur optimale de α est estimée selon l’équation (2.10).

(35)

L’algorithme2 de l’apprentissage d’une souche de décision factorisée en découle. Algorithm 2: Minimisation de Z avec une souche de décision factorisée

Input: Une distribution w sur {1, ..., K}, possiblement dépendante de la classe Input: S = {(xi, yi), ∀ i ∈ {1, ..., m}, xi ∈ X , yi∈ {±1}K} Initialisation : γ∗ = 0; for k= 1 to K do γk= Pm i=1wk(yi) yi,k Initialisation : α= N il ; j∗ = N il ; θ∗= N il ; v∗ = (0, 0, ..., 0) de taille K; for j = 1 to d do Calculer θ ←argmax a Pm

i=1wi,k(yi)yi,k 1[xi,j > a] − 1[xi,j < a]

 ; γ ←0; for k= 1 to K do µ+= Pm

i=1wi,k(yi)yi,k1[xi,j > θ];

µ−=Pmi=1wi,k(yi)yi,k1[xi,j < θ];

vk = signe(µ+− µ−); Mise-à-jour γ ← γ+ vk(µ+− µ−) if γ > γ∗ then Mise à jour : γ∗= γ ; v∗ ← v ; θ= θ ; j= j ; Calculer α= 1 2log( 1+γ∗ 1−γ∗);

Output: Une fonction h à valeurs dans RK, définie par :

∀x ∈ X , h(x) = α.v∗.signe(xj∗− θ∗)

Arbre de Hamming

Kégl(2013) utilise la souche de décision factorisée afin de construire un arbre de décision qui effectue un partitionnement disjoint de X partagé entre les différents problèmes de classifi-cation binaires. Chaque nœud interne de l’arbre est muni d’une fonction indépendante de la classe ϕ, permettant de prédire si l’instance doit être acheminée à son fils de droite ou à son fils de gauche. Chaque feuille de l’arbre effectue une prédiction dans {±}K. Finalement, cette prédiction est multipliée par un scalaire α. Cette modélisation est illustrée par la figure 2.1.

(36)

+1 −1 +1 −1 1 2 1 2 2 +1 −1

Figure 2.1 – Arbre de Hamming, à gauche : arbre de Hamming avec un seul nœud interne, à droite : arbre de Hamming avec deux nœuds internes

Remarquons que le scalaire α, qui représente un degré de confiance en les prédictions effectuées par vjϕj, est commun à toutes les feuilles de l’arbre. Ainsi, pour tout x ∈ X , et pour tout k ∈

{1, ..., K}, les prédictions hk(x) de l’arbre auront la même valeur absolue. Notons également

que pour les feuilles issues du même nœud interne j, un seul vecteur vj ∈ {±1}K est utilisé

pour effectuer des prédictions.

2.2

L’algorithme XGBoost

Dans cette section, nous allons présenter l’algorithme XGBoost proposé parChen et Guestrin

(2016). Le nom XGBoost est l’abréviation de «eXtreme Gradient Boosting». Cet algorithme constitue une continuité de GBM (Gradient Boosting Machines). Ce dernier traite le problème de la construction du vote de majorité comme une descente du gradient, dans l’espace des fonctions de X →RK. À chaque itération, l’apprenant faible retourne un votant faible qui est corrélé avec le gradient négatif de la fonction objective, calculé par rapport aux prédictions données par la fonction à valeurs réelles f(T )(x) pour tout x ∈ X . Le poids du votant est analogue à un poids de descente du gradient. Dans GBM, il est optimisé par ‘line-search”, comme étant le poids qui minimise la fonction objective à la même itération (Schapire et Freund,2012b).

XGBoost simplifie l’étape du calcul du poids optimal de la descente du gradient en considérant le développement de Taylor à l’ordre 2 de la fonction objective. Dans ce qui suit, nous allons voir comment cette approximation est minimisée, ainsi que le choix de la famille des votants faibles.

(37)

2.2.1 Encodage de la sortie, vote de majorité et modèle de l’apprenant faible

XGBoost utilise un encodage une-classe-contre-le-reste. À la différence d’Adaboost-MH, pour un exemple (x, y) les composantes de la sortie y sont à valeurs dans {0, 1}.

yk=

(

1 si k = y

0 si k 6= y . (2.12)

De manière similaire à Adaboost-MH, XGBoost construit en T itérations une fonction f(T )qui effectue des prédictions dansRK. Ces prédictions sont ensuite transformées en une prédiction dans Y par la relation :

ˆ

y= argmax

k

(fkT(x)).

Chaque votant faible effectue des prédictions à niveaux de confiance. L’expression de la fonction f(T ) est donnée par :

∀ x ∈ X , f(T )(x) =

T

X

t=1

h(t)(x) avec h(t) : X → RK ∀ t ∈ {1, ..., T }

L’apprenant faible est formé par K arbres de régression entraînés indépendamment les uns des autres. Un arbre de régression est formé par des nœuds internes qui indiquent si une instance doit être acheminée à un fils de droite ou à un fils de gauche, et par des feuilles qui effectuent des prédictions scalaires. Le scalaire associé à une feuille d’indice j du prédicteur hk sera noté ck,j. Le nombre maximum de feuilles sera noté N . La figure2.2illustre un exemple d’un votant

(38)

= 1 = 2 = 3

= 0.3, 0.5 , 0

0.1 0.6 − 1 0.5 0.3 0.4 0.1 0

Figure 2.2 – Prédiction avec le votant faible utilisé dans XGBoost pour N = 3 et K = 3, les flèches vertes indiquent le chemin suivi par l’instance

x.

Mathématiquement, chaque arbre de régression est modélisé par une fonction q : X → {1, ..., N } et un vecteur c ∈ RN formé par les scalaires associés à chaque feuille. Pour toute

instance x ∈ X , la valeur q(x) indique l’indice de la feuille à laquelle x doit être acheminée. Sous cette notation, les prédictions effectuées par un arbre de régression h sont données par :

∀ x ∈ X , h(x) = cq(x).

2.2.2 Fonction objective et algorithme

XGBoost prend en paramètre une fonction de perte ` deux fois différentiable, et construit un vote de majorité f(T ) qui minimise le risque empirique RS` associé à cette perte. À chaque itération t, sachant que fk(t) = fk(t−1)+ h(t)k , R`S est approximé par son développement de Taylor à l’ordre 2 autour des anciennes prédictions.

∀k ∈ Y , R`S(f(t), k) ' 1 m m X i=1 `(fk(t−1)(xi), yi,k) + a (t) i,k h (t) k (xi) + 1 2 b (t) i,k [h (t)(x i)]2

Le terme a(t)i,k désigne la dérivée ∂`(f

(t−1)

k (xi),yi,k)

∂fk(t−1)(xi)

calculée à l’itération t, b(t)i,k désigne la dérivée seconde ∂

2`(f(t−1)

k (xi),yi,k)

∂fk(t−1)(xi)2

calculée à la même itération.

Notons, pour k ∈ Y, Ik,j= {i : qk(xi) = j} l’ensemble des indices des instances acheminées à

la feuille j. En ignorant le termePm

i=1 `(f

(t−1)

(39)

réécrire la fonction objective ˜R` S comme suit. ∀k ∈ {1, ..., K}, ˜R`S(f(t), k) ' 1 m m X i=1 [a(t)i,k h(t)k (xi) + 1 2b (t) i,k [h (t) k (xi)] 2] (2.13)

Cette fonction constitue la fonction objective à minimiser par l’apprenant faible à chaque itération de XGBoost. De plus, afin de contrôler le sur-apprentissage et la complexité du votant faible, on ajoute à ˜R`

S un terme de régularisation Ω(h(t)). La fonction objective à

minimiser par l’apprenant faible devient : ∀k ∈ {1, ..., K}, F (f(t), k) ' 1 m m X i=1 [a(t)i,k h(t)k (xi) + 1 2b (t) i,k [h (t) k (xi)] 2] + Ω(h(t) k ) (2.14)

L’algorithmeXGBoosten découle. Algorithm 3: XGBoost

Input: Le nombre T de votants faibles.

Input: S = {(xi, yi), ∀i ∈ {1, ..., m}, xi∈ X , yi ∈ {0, 1}K}

Input: Une fonction de perte `

Input: Un apprenant faible WL qui prend en entrée un ensemble

{(xi, ai, bi), ∀i ∈ {1, ..., m}} et retourne un votant faible h qui minimise (2.14)

Initialization : f(0)= 0; for t= 1 to T do

for i= 1 to m do Calculer ai et bi

Construire l’ensemble S0 = {(xi, ai, bi), ∀i ∈ {1, ..., m}, xi∈ X };

Invoquer l’apprenant faible : h(t) ← WL(S0); Mise à jour : f(t) = f(t−1)+ h(t);

Output: f(T )

2.2.3 Contrôle du sur-apprentissage

Le termeΩ(hk) est utilisé pour contrôler la profondeur des arbres de régression et l’amplitude

des poids associés aux feuilles de chaque arbre. Pour tout arbre de régression h , à N feuilles, et muni d’un vecteur c de niveaux de confiances associés aux feuilles, l’expression de Ω est donnée par :

Ω(h) = γN + 1 2λkck

2

2 avec γ ≥0 et λ ≥ 0. (2.15)

Le terme γN empêche l’apprenant faible de converger vers des arbres de grande taille. Le terme 12λkck22 l’empêche les niveaux de confiance d’avoir des valeurs élevées. Afin d’atténuer encore la contribution des votants faibles dans la fonction f(T ) , la règle de mise à jour de f(t) pour une itération t est modifiée comme suit.

Figure

Figure 1.1 – Principe de l’apprentissage supervisé.
Figure 1.3 – La validation croisée.
Figure 1.4 – Principe des algorithmes de boosting, un bloc rouge correspond à une tâche de l’algorithme de boosting, un bloc vert
Tableau 1.1 – Différents algorithmes de boosting pour la classification binaire selon la fonction de perte alternative utilisée.
+7

Références

Documents relatifs

Vous avez été les victimes d’une violence, aveugle et arbitraire, mais dont l’objet était de détruire notre cohésion nationale, notre façon de vivre, notre façon de rire,

Nous aurons donc là aussi des propositions très concrètes pour revaloriser la rémunération des apprentis, pour simplifier le dispositif d’aide existante pour les entreprises, en

Je voudrais, sur ce point, indiquer que la première série d’échanges bilatéraux que nous avons conduite m’a permis de constater chez l’ensemble des responsables

Atif Mian et Amir Sufi, dans leur livre House of debt (2014) réfutent cette interprétation de la Récession, qu’ils qualifient de banking view : selon eux, c’est avant tout

Ces outils logiciels sont faciles à intégrer dans les technologies vocales existantes et fournissent aux développeurs des outils open source, validés et qui protègent la vie

Céder à une telle panique bancaire serait en effet parfaitement rationnel du point de vue des déposants : s’ils anticipent la dépréciation de la nouvelle monnaie (ce qui est un

Ce mercredi 27 février, dans le contexte de l’épisode de pollution, Michel Lalande, préfet de la région Hauts-de-France, préfet du Nord avait pris de mesures de restriction de

On va trouver tous les contours faits au stylo pour ensuite comparer chaque image avec nos images témoins et écrire la détection sur notre image en couleur. 1 # trouver les contours