Blame
|
1 | # 2. Concepts généraux |
||||||
|
2 | |||||||
|
3 | L'introduction a fixé la notation et nommé les paradigmes d'apprentissage. Avant d'ajuster le moindre modèle particulier, ce module couvre ce qu'apprendre veut dire. Faire coller un modèle aux données qu'il a vues est facile, le faire performer sur des données qu'il n'a jamais vues est tout l'enjeu. La régression polynomiale sert d'exemple fil rouge, et le module se termine par la raison pour laquelle l'intuition géométrique s'effondre en grande dimension. |
||||||
|
4 | |||||||
| 5 | **Objectifs** |
|||||||
|
6 | - Opposer apprentissage supervisé et non supervisé par ce que chacun optimise. |
||||||
| 7 | - Définir une fonction de perte et agréger les pertes par exemple en un coût à minimiser. |
|||||||
| 8 | - Ajuster une régression polynomiale et lire son degré comme un bouton de capacité. |
|||||||
| 9 | - Distinguer performance d'entraînement et généralisation, et diagnostiquer sous-apprentissage et surapprentissage. |
|||||||
| 10 | - Contrôler la capacité de façon continue avec une pénalité de régularisation. |
|||||||
| 11 | - Sélectionner les hyperparamètres par validation et validation croisée sans contaminer l'ensemble de test. |
|||||||
| 12 | - Énoncer la malédiction de la dimensionnalité et ses conséquences pour l'apprentissage. |
|||||||
|
13 | |||||||
|
14 | ## 2.1 Apprentissage supervisé et non supervisé |
||||||
|
15 | |||||||
|
16 | L'[Introduction](/fr/Machine%20Learning/01%20Introduction) a nommé les paradigmes par leur signal de retour. Formellement, l'apprentissage supervisé part de paires étiquetées $\{(x^{(i)}, y^{(i)})\}_{i=1}^{m}$ et cherche dans une famille d'hypothèses le $h_\theta$ dont les prédictions collent le mieux aux cibles, la proximité étant mesurée par une fonction de perte. L'apprentissage non supervisé ne dispose que des entrées $x^{(i)}$, ses objectifs se construisent donc à partir des entrées seules : des groupes compacts, des directions informatives, des régions de forte densité. |
||||||
| 17 | ||||||||
| 18 | Tout ce module est énoncé pour le cas supervisé, qui occupe le reste du cours. Les questions qu'il traite (ce modèle généralise-t-il bien, quelle complexité lui donner, comment départager des candidats) se posent à l'identique dans le cadre non supervisé. |
|||||||
| 19 | ||||||||
| 20 | ## 2.2 Minimiser une perte : la régression polynomiale |
|||||||
| 21 | ||||||||
| 22 | ### 2.2.1 Fonction de perte |
|||||||
|
23 | |||||||
| 24 | Une fonction de perte $L(z, y)$ est définie comme une pénalité scalaire comparant un score brut $z$ du modèle (ou une probabilité prédite $\phi$) à la cible $y$. Plus elle est petite, mieux c'est. Chaque famille de modèles se caractérise par sa perte. |
|||||||
| 25 | ||||||||
| 26 | | Perte | Formule $L(z,y)$ | Utilisée par | |
|||||||
| 27 | | --- | --- | --- | |
|||||||
| 28 | | Erreur quadratique | $\tfrac{1}{2}(y-z)^2$ | Régression linéaire | |
|||||||
| 29 | | Logistique | $\log\!\left(1+\exp(-yz)\right)$ | Régression logistique | |
|||||||
| 30 | | Charnière | $\max(0,\,1-yz)$ | SVM | |
|||||||
| 31 | | Entropie croisée | $-\left[\,y\log\phi+(1-y)\log(1-\phi)\,\right]$ | Réseaux de neurones | |
|||||||
| 32 | ||||||||
| 33 | *Remarque :* $z$ désigne un score brut tel que $\theta^T x$, tandis que $\phi \in (0,1)$ désigne une probabilité prédite. La ligne d'entropie croisée prend une probabilité $\phi$, non un score brut. |
|||||||
| 34 | ||||||||
|
35 |  |
||||||
| 36 | ||||||||
| 37 | *Pertes basées sur la marge, chacune un substitut convexe de la perte 0-1 qui pénalise les marges faibles ou négatives.* |
|||||||
| 38 | ||||||||
| 39 | ### 2.2.2 Fonction de coût |
|||||||
|
40 | |||||||
| 41 | Le coût $J(\theta)$ est défini comme la somme des pertes par exemple sur tout l'ensemble d'entraînement de $m$ exemples : |
|||||||
| 42 | ||||||||
| 43 | $$\boxed{\,J(\theta)=\sum_{i=1}^{m} L\!\left(h_\theta(x^{(i)}),\,y^{(i)}\right)\,}$$ |
|||||||
| 44 | ||||||||
|
45 | Entraîner un modèle, c'est choisir $\theta$ qui minimise $J(\theta)$. Les algorithmes qui effectuent cette minimisation (formes fermées, descente de gradient) arrivent avec les modules de modèles. Ce module pose une autre question : que prouve réellement une petite valeur de $J(\theta)$ ? |
||||||
|
46 | |||||||
| 47 | *Remarque :* le facteur $\tfrac{1}{2}$ de l'erreur quadratique est une convention qui s'annule avec l'exposant lors de la dérivation, laissant un gradient propre. |
|||||||
| 48 | ||||||||
|
49 | ### 2.2.3 L'exemple fil rouge : la régression polynomiale |
||||||
|
50 | |||||||
|
51 | Pour rendre tout cela concret, prenons une entrée unique $x$ et ajustons un polynôme de degré $d$ sous la perte quadratique : |
||||||
|
52 | |||||||
|
53 | $$\boxed{ h_\theta(x) = \theta^T \phi(x) = \sum_{j=0}^{d} \theta_j\, x^{j}, \qquad \phi(x) = (1, x, x^2, \dots, x^d) }$$ |
||||||
|
54 | |||||||
|
55 | Le modèle reste linéaire en $\theta$, les moindres carrés s'appliquent donc tels quels (la forme fermée est dérivée dans [Régression linéaire](/fr/Machine%20Learning/04%20Linear%20regression)). Le degré $d$ n'est pas ajusté avec $\theta$ : il est fixé avant l'ajustement et décide de la flexibilité permise à la courbe. Un tel bouton, choisi plutôt qu'appris, s'appelle un hyperparamètre, et $d$ est notre premier. |
||||||
|
56 | |||||||
|
57 |  |
||||||
|
58 | |||||||
|
59 | *Le même échantillon bruité ajusté de trois façons. Le degré 1 est trop rigide pour suivre la tendance, le degré 3 la capture, et le degré 9 se faufile par chaque point d'entraînement.* |
||||||
|
60 | |||||||
|
61 | ## 2.3 Performance d'entraînement et généralisation |
||||||
|
62 | |||||||
|
63 | ### 2.3.1 Erreur de généralisation |
||||||
|
64 | |||||||
|
65 | La quantité qui nous intéresse est l'erreur de généralisation, la perte espérée sur un nouveau tirage de la même population : |
||||||
|
66 | |||||||
|
67 | $$\boxed{ R(h) = \mathbb{E}_{(x, y)}\left[ L\!\left(h(x), y\right) \right] }$$ |
||||||
|
68 | |||||||
|
69 | On ne peut pas l'observer, il faut donc l'estimer. L'estimation tentante est l'erreur d'entraînement, la perte moyenne sur les données ayant servi à ajuster $h$. Elle est biaisée vers le bas : le modèle s'est déjà adapté à cet échantillon précis, il se juge donc trop favorablement. |
||||||
|
70 | |||||||
|
71 | $$\boxed{ \hat{R}_{\text{train}}(h) = \frac{1}{m}\sum_{i=1}^{m} L\!\left(h(x^{(i)}), y^{(i)}\right) \;\le\; R(h) \ \text{(en espérance)} }$$ |
||||||
|
72 | |||||||
|
73 | ### 2.3.2 Sous-apprentissage et surapprentissage |
||||||
|
74 | |||||||
|
75 | Revenons aux polynômes. L'ajustement de degré 1 sous-apprend : il n'a pas la capacité de représenter la tendance, il est donc mauvais sur les points d'entraînement comme sur les nouveaux. L'ajustement de degré 9 surapprend : il a de la capacité à revendre, pousse l'erreur d'entraînement à zéro en épousant le bruit, et le paie sur des données fraîches. Il a la plus petite erreur d'entraînement des trois ajustements et c'est aussi le pire modèle. Le bon modèle se situe entre les deux. |
||||||
|
76 | |||||||
|
77 |  |
||||||
|
78 | |||||||
|
79 | *Quand le degré croît, l'erreur d'entraînement décroît de façon monotone tandis que l'erreur de validation descend, atteint un creux, puis remonte. Le bon degré est au fond du U.* |
||||||
|
80 | |||||||
|
81 | C'est le compromis biais-variance. Un modèle rigide est biaisé : il se trompe systématiquement, quel que soit l'échantillon d'entraînement. Un modèle flexible a une forte variance : son ajustement change à chaque nouveau tirage du bruit. Augmenter la capacité échange du biais contre de la variance, et la généralisation est la meilleure là où les deux s'équilibrent. |
||||||
|
82 | |||||||
|
83 | *Remarque :* l'erreur d'entraînement n'est pas une preuve de qualité. Passé le point d'équilibre, c'est une preuve de mémorisation, et seule la performance sur des données jamais vues fait la différence. |
||||||
|
84 | |||||||
|
85 | ## 2.4 Régularisation |
||||||
|
86 | |||||||
|
87 | Choisir le degré est un réglage grossier : la capacité saute d'entier en entier. Un contrôle plus fin garde une famille flexible mais rend la complexité coûteuse dans le coût lui-même, en ajoutant une pénalité $\Omega(\theta)$ mise à l'échelle par une intensité $\lambda \ge 0$ : |
||||||
|
88 | |||||||
|
89 | $$\boxed{\,J_\lambda(\theta)=\sum_{i=1}^{m} L\!\left(h_\theta(x^{(i)}),\,y^{(i)}\right) + \lambda\,\Omega(\theta)\,}$$ |
||||||
|
90 | |||||||
|
91 | Le choix classique est la norme au carré $\Omega(\theta) = \lVert \theta \rVert_2^2$, la pénalité ridge. L'ajustement de degré 9 ne se faufile par chaque point qu'à l'aide de coefficients énormes qui se compensent entre les points d'entraînement. La pénalité rend ces coefficients coûteux, le minimiseur échange donc un peu d'erreur d'entraînement contre une courbe bien plus lisse. À $\lambda = 0$ le surapprentissage revient, quand $\lambda \to \infty$ la courbe s'aplatit vers le sous-apprentissage : $\lambda$ parcourt le même cadran biais-variance que le degré, mais continûment. |
||||||
|
92 | |||||||
|
93 | *Remarque :* la régularisation ne décide pas de la bonne complexité à votre place, elle convertit un choix discret ($d$) en un choix continu ($\lambda$) plus facile à régler. $\lambda$ est un hyperparamètre comme le degré, choisi par la machinerie de validation de la section suivante. D'où vient la pénalité (un a priori sur $\theta$, via le maximum a posteriori) et ce qu'apporte la variante L1 sont les sujets de [Formulation probabiliste](/fr/Machine%20Learning/03%20Probabilistic%20formulation) et de la [Régression linéaire](/fr/Machine%20Learning/04%20Linear%20regression). |
||||||
|
94 | |||||||
|
95 | ## 2.5 Hyperparamètres, validation et validation croisée |
||||||
|
96 | |||||||
|
97 | ### 2.5.1 Ensembles d'entraînement, de validation et de test |
||||||
|
98 | |||||||
|
99 | Les hyperparamètres ne peuvent pas être choisis sur l'erreur d'entraînement, qui ne récompense que davantage de capacité. La parade consiste à garder des données que le modèle n'a jamais vues pendant l'ajustement. La séparation standard a trois rôles disjoints : |
||||||
|
100 | |||||||
|
101 | | Ensemble | Sert à | Consulté | |
||||||
| 102 | | --- | --- | --- | |
|||||||
| 103 | | Entraînement | ajuster les paramètres du modèle | à chaque ajustement | |
|||||||
| 104 | | Validation | choisir le modèle et ses hyperparamètres | plusieurs fois | |
|||||||
| 105 | | Test | fournir une estimation finale honnête | une seule fois | |
|||||||
|
106 | |||||||
|
107 | *Remarque :* l'ensemble de test est sacré. Chaque fois qu'un choix est guidé par la performance de test, celui-ci devient discrètement partie de l'entraînement et son estimation devient optimiste. |
||||||
|
108 | |||||||
|
109 | ### 2.5.2 Validation croisée |
||||||
|
110 | |||||||
|
111 | Les jeux de données sont souvent petits, et une unique séparation entraînement/validation gaspille des données tout en donnant une estimation bruitée. La validation croisée à $K$ blocs réutilise les données : on partitionne en $K$ blocs, et pour chaque bloc on entraîne sur les $K-1$ autres et on valide sur le bloc mis de côté. L'erreur de validation croisée moyenne les $K$ tours : |
||||||
|
112 | |||||||
|
113 | $$\boxed{ \text{VC}_K = \frac{1}{K}\sum_{k=1}^{K} \frac{1}{|F_k|}\sum_{i \in F_k} L\!\left(h^{(-k)}(x^{(i)}), y^{(i)}\right) }$$ |
||||||
|
114 | |||||||
|
115 | où $h^{(-k)}$ est entraîné sur tous les blocs sauf $F_k$. Prendre $K = m$ donne la validation croisée « un contre tous ». Les choix courants sont $K = 5$ ou $K = 10$, un compromis entre calcul et variance de l'estimation. |
||||||
|
116 | |||||||
|
117 |  |
||||||
|
118 | |||||||
|
119 | *Chaque tour met un bloc de côté pour la validation et entraîne sur le reste, et le score rapporté est la moyenne sur les blocs.* |
||||||
|
120 | |||||||
|
121 | ### 2.5.3 Sélection du modèle et des hyperparamètres |
||||||
|
122 | |||||||
|
123 | La validation croisée est notre outil de réglage. On ajuste chaque candidat (une famille de modèles, une profondeur d'arbre, le degré polynomial $d$, ou la pénalité $\lambda$) et on garde celui dont l'erreur de validation est la plus faible. Ce n'est qu'ensuite, une fois le choix figé, que l'on consulte l'ensemble de test pour rapporter un chiffre final. |
||||||
|
124 | |||||||
|
125 | *Remarque :* choisir le gagnant sur l'ensemble de test gonfle l'estimation. Avec assez de candidats, l'un paraîtra bon par pur hasard, c'est la malédiction du vainqueur, donc sélection et évaluation finale doivent utiliser des données différentes. |
||||||
|
126 | |||||||
|
127 | ## 2.6 Pièges courants de la validation |
||||||
|
128 | |||||||
|
129 | Une validation honnête est plus difficile qu'il n'y paraît, et les données réelles brisent souvent les hypothèses habituelles de trois façons. |
||||||
|
130 | |||||||
|
131 | - **Fuite de données.** De l'information sur la cible se glisse dans les variables. Standardiser avec des statistiques calculées sur tout l'échantillon, ou inclure une variable réalisée après le résultat, laisse le modèle entrevoir la réponse. Tout prétraitement doit être ajusté sur les seuls blocs d'entraînement. |
||||||
| 132 | - **Biais d'anticipation.** Utiliser une information qui n'était pas encore disponible au moment de la prédiction, ce qui survient dès que les données sont ordonnées dans le temps, produit des backtests irreproductibles en conditions réelles. |
|||||||
| 133 | - **Dépendance.** De nombreux jeux de données sont autocorrélés (séries temporelles) ou groupés (plusieurs observations partageant une même unité). Les mélanger en blocs aléatoires met des voisins quasi identiques de part et d'autre, et l'estimation devient bien trop optimiste. |
|||||||
|
134 | |||||||
|
135 | Pour les séries temporelles, on utilise un schéma à origine glissante (par blocs) de sorte que le modèle ne soit testé que sur des données postérieures à sa fenêtre d'entraînement. Pour les données groupées, on met de côté des unités entières (validation croisée groupée) afin qu'aucune unité n'apparaisse des deux côtés. |
||||||
|
136 | |||||||
|
137 |  |
||||||
| 138 | ||||||||
| 139 | *Dans un schéma à origine glissante, la fenêtre d'entraînement s'étend dans le temps et le modèle est validé sur le bloc suivant, jamais sur des données mélangées.* |
|||||||
| 140 | ||||||||
| 141 | *Remarque :* la question honnête derrière toute séparation est toujours la même. Cela aurait-il été connaissable à l'époque, à partir des données dont le modèle disposait réellement ? |
|||||||
| 142 | ||||||||
| 143 | ## 2.7 La malédiction de la dimensionnalité |
|||||||
| 144 | ||||||||
| 145 | Tout ce qui précède suppose que l'échantillon représente la population au voisinage des points qui comptent. En grande dimension, cette hypothèse se dégrade, et vite. Supposons que les entrées remplissent l'hypercube unité $[0,1]^d$ et que l'on veuille un voisinage autour d'un point qui capture une fraction $r$ des données. Un sous-cube contenant une fraction $r$ du volume doit avoir une arête de longueur : |
|||||||
| 146 | ||||||||
| 147 | $$\boxed{ e_d(r) = r^{1/d} }$$ |
|||||||
| 148 | ||||||||
| 149 | En dimension un, capturer 1 % du volume demande 1 % de l'axe. En dimension $d = 10$ il faut $0{,}01^{1/10} \approx 0{,}63$, soit 63 % de l'étendue de chaque variable, et en dimension $d = 100$, 95 %. Un voisinage qui voit une part raisonnable des données cesse d'être local, et les méthodes qui s'appuient sur les exemples proches perdent pied. Remplir l'espace directement est tout aussi désespéré : couvrir chaque axe avec seulement 10 cases produit déjà $10^d$ cellules, la taille d'échantillon nécessaire pour les peupler croît donc exponentiellement avec $d$. |
|||||||
| 150 | ||||||||
| 151 |  |
|||||||
| 152 | ||||||||
| 153 | *L'arête nécessaire pour capturer une fraction fixe du volume file vers 1 quand la dimension croît : en grande dimension, un voisinage « local » couvre l'essentiel de chaque axe.* |
|||||||
| 154 | ||||||||
| 155 | Deux autres symptômes découlent de la même géométrie. La quasi-totalité du volume d'un cube en grande dimension se trouve près de son bord, un point typique n'a donc aucun intérieur autour de lui. Et les distances se concentrent : le voisin le plus proche et le plus lointain finissent presque à égale distance, la distance elle-même devient donc peu informative. |
|||||||
|
156 | |||||||
|
157 | *Remarque :* c'est pourquoi l'apprentissage en grande dimension s'appuie sur de la structure plutôt que sur la proximité brute : modèles linéaires, régularisation tirant vers des ajustements simples, et variables ou plongements qui compressent les entrées. Les données réelles se concentrent en général près d'une structure de dimension bien plus faible, et c'est ce qui rend l'apprentissage possible. |
||||||
|
158 | |||||||
|
159 | *Les concepts sont en place : ajuster minimise une perte, généraliser est le but, la validation le mesure, et la régularisation avec le réglage des hyperparamètres le contrôle. Le module suivant construit le langage probabiliste (règle de Bayes, entropie, vraisemblance) derrière les premiers modèles concrets.* |
||||||
|
160 | |||||||
| 161 | --- |
|||||||
|
162 | Suivant : [Formulation probabiliste](/fr/Machine%20Learning/03%20Probabilistic%20formulation) · [Vue d'ensemble du cours](/fr/Machine%20Learning) |
||||||
