28  Bornes pour les classes de fonctions infinies

Une borne sur l’erreur de généralisation permet de garantir les performances d’un modèle à partir de son comportement sur la base d’apprentissage.

La première borne de ce type est inutile pour un nombre de modèles possibles |\mathcal{F}| infini, ce qui est gênant car

Pour pouvoir garantir les performances dans de tels cas, nous allons utiliser d’autres manières de mesurer la complexité de \mathcal{F}, plus fines que simplement compter le nombre de classifieurs.

28.1 Fonction de croissance

L’astuce est la suivante : même avec une infinité de fonctions, le nombre de manières de classer (étiqueter) des exemples est fini.

Ainsi, au lieu de compter le nombre de classifieurs N=|\mathcal{F}|, nous compterons le nombre de classifications différentes que peuvent générer ces classifieurs.

Définissons tout d’abord la projection d’une classe de fonctions \mathcal{F} sur un jeu de données S=(\boldsymbol{x}_1,\dots,\boldsymbol{x}_m) : \mathcal{F}_S = \left\{ (f(\boldsymbol{x}_1), \dots, f(\boldsymbol{x}_m) )\ |\ f\in\mathcal{F}\right\} \subseteq \{-1,+1\}^m qui correspond à l’ensemble de tous les étiquetages possibles de S fournis par les fonctions f\in\mathcal{F}.

Il est évident que le nombre d’éléments dans cet ensemble est borné par le nombre maximum de classifications binaires de m points : |\mathcal{F}_S| \leq 2^m

Si |\mathcal{F}_S| = 2^m, \mathcal{F} peut réaliser n’importe quelle classification de S : on dit alors que S est « pulvérisé » par \mathcal{F} ou que \mathcal{F} « pulvérise » S.

La fonction de croissance d’une classe de fonctions \mathcal{F} est le nombre maximum de manières d’étiqueter un ensemble de m points de \mathcal{X} par \mathcal{F} : \Pi_{\mathcal{F}}(m) = \max_{S\in \mathcal{X}^m } |\mathcal{F}_S| et il est clair que \Pi_{\mathcal{F}}(m) \leq 2^m

Remarquons que la fonction de croissance donne une mesure au pire cas de la complexité (ou la capacité) de \mathcal{F} : son calcul dépend du pire jeu de m points qui conduit au plus grand nombre de classifications.

Ainsi, si \Pi_{\mathcal{F}}(m) = 2^m, alors \mathcal{F} pulvérise au moins un ensemble S de taille m, mais pas nécessairement tous les ensembles de m.

28.1.1 Borne sur l’erreur de généralisation

Théorème 28.1 Pour tout \delta > 0, avec une probabilité d’au moins 1-\delta, \forall f\in\mathcal{F},\quad R(f) \leq R_{emp}(f) + 2\sqrt{2\frac{\ln \Pi_{\mathcal{F}}(2m) + \ln\frac{2}{\delta}}{m}}

Cette borne dépend de la fonction de croissance de \mathcal{F} de telle sorte que le nombre de classifications possibles remplace le nombre de classifieurs par rapport à la borne pour les classes finies.

Pour permettre un apprentissage correct par minimisation du risque empirique (ERM), cette borne suggère donc qu’il est nécessaire d’avoir \lim_{m\rightarrow +\infty} \frac{\ln \Pi_{\mathcal{F}}(2m)}{m} = 0 Cette condition permet de s’assurer que le risque empirique tend bien vers l’erreur de généralisation lorsque le nombre d’exemples m tend vers l’infini.

On peut remarquer que cette condition n’est pas vérifiée si \mathcal{F} peut pulvériser des jeux de données de taille arbitraire. En effet, tant que \Pi_{\mathcal{F}}(2m) = 2^{2m}, \lim_{m\rightarrow +\infty} \frac{\ln \Pi_{\mathcal{F}}(2m)}{m} = 2\log 2 et l’écart entre les deux risques ne peut pas converger vers zéro.

L’interprétation est la suivante : si \mathcal{F} peut générer n’importe quelle classification de 2m points, alors il est possible de choisir un classifieur f\in\mathcal{F} qui donne des prédictions parfaites sur les données d’apprentissage, tout en étant capable de générer n’importe quelle classification d’un autre jeu de m points (comme une base de test par exemple).

Dit autrement : on ne peut pas garantir les performances en généralisation d’un classifieur capable de faire n’importe quoi.

28.1.2 Symétrisation

Pour démontrer le Théorème 28.1, il faut passer par l’introduction d’un échantillon fantôme S^\prime = \left((X_i^\prime,Y_i^\prime)\right)_{1\leq i\leq m} contenant des copies indépendantes de (X,Y) au même titre que l’échantillon d’apprentissage S=\left((X_i,Y_i)\right)_{1\leq i\leq m}, et sur lequel on calcule R_{emp}^\prime(f) = \frac{1}{m} \sum_{i=1}^m \mathbf{1}(f(X_i^\prime) \neq Y_i^\prime) de la même manière que R_{emp}(f).

Attention : ces X_i^\prime, Y_i^\prime ne servent qu’à la démonstration et ne correspondent à aucune donnée réelle que l’on mettrait de côté.

À partir de ces données fantômes, nous pouvons appliquer la symétrisation.

Lemme 28.1 (Symétrisation) Pour m\epsilon^2 \geq 2, P \left\{ \sup_{f\in\mathcal{F}} (R(f) - R_{emp}(f) ) \geq \epsilon \right\} \leq 2 P \left\{ \sup_{f\in\mathcal{F}} (R_{emp}'(f) - R_{emp}(f))\geq \frac{\epsilon}{2} \right\} = 2 \boldsymbol{P}_{\epsilon}

Preuve ici.

L’intérêt de la symétrisation est de pouvoir se passer d’étudier les fonctions f sur un ensemble infini de points \boldsymbol{x}\in\mathcal{X} :

  • le terme \boldsymbol{P}_{\epsilon} de droite ne fait intervenir que des risques empiriques, et donc uniquement les valeurs de f sur les échantillons S et S^\prime ;
  • il ne dépend donc que de la projection \mathcal{F}_{SS^\prime} avec SS^\prime = (\boldsymbol{X}_1,\dots,\boldsymbol{X}_m, \boldsymbol{X}_1^\prime, \dots, \boldsymbol{X}_m^\prime) la concaténation des deux échantillons.

28.1.3 Reste de la preuve du Théorème 28.1

Introduisons des variables aléatoires \sigma_i uniforme dans \{-1,+1\} (telles que P(\sigma_i=1)=P(\sigma_i=-1) = 1/2) et indépendantes de toutes les autres variables. Alors, D_i(f) = \mathbf{1}(f(\boldsymbol{X}_i')\neq Y_i') - \mathbf{1}(f(\boldsymbol{X}_i)\neq Y_i) \quad \text{est distribuée comme } \quad \sigma_i D_i(f) ce qui signifie que les variables aléatoires D_i(f) et \sigma_i D_i(f) ont la même loi de probabilité.

Premièrement, D_i(f) \in \{-1,0,+1\} est symétrique : \begin{align*} P(D_i(f) = 1) &=P(f(\boldsymbol{X}_i')\neq Y_i', f(\boldsymbol{X}_i)=Y_i) \\ &= P(f(\boldsymbol{X}_i')\neq Y_i') P( f(\boldsymbol{X}_i)=Y_i) \qquad car\ (\boldsymbol{X}_i',Y_i')\ \text{ind\'ep.}\ (\boldsymbol{X}_i,Y_i)\\ &= P(f(\boldsymbol{X}_i)\neq Y_i) P( f(\boldsymbol{X}_i')=Y_i')\qquad car\ (\boldsymbol{X}_i',Y_i')\ id.\ distrib.\ (\boldsymbol{X}_i,Y_i)\\ &=P(f(\boldsymbol{X}_i)\neq Y_i, f(\boldsymbol{X}_i')=Y_i') \\ &= P(D_i(f)=-1) \end{align*} et donc P(\sigma_i D_i(f) = 1) = \begin{cases} P(D_i(f) = 1) ,&\text{si } \sigma_i=1\\ P(D_i(f) = -1) ,&\text{si } \sigma_i=-1\\ \end{cases} = P(D_i(f) = 1) et de même P(\sigma_i D_i(f) = -1) = P(D_i(f) = -1), et bien sûr P(\sigma_i D_i(f) = 0) = P(D_i(f) =0)

Il est donc possible de remplacer D_i(f) par \sigma_i D_i(f) sans changer la probabilité : \begin{align*} \boldsymbol{P}_{\epsilon} &= P \left\{ \sup_{f\in\mathcal{F}}\frac{1}{m}\sum_{i=1}^m D_i(f)\geq \frac{\epsilon}{2} \right\} = P \left\{ \sup_{f\in\mathcal{F}}\frac{1}{m}\sum_{i=1}^m \sigma_i D_i(f)\geq \frac{\epsilon}{2} \right\} \end{align*} En utilisant l’espérance de l’indicatrice et le théorème de l’espérance totale, on a de manière générale P(A) = \mathbb{E}\mathbf{1}(A) = \mathbb{E}_B\mathbb{E}[ \mathbf{1}(A) | B ] = \mathbb{E}_B P\{ A | B\}, et donc \boldsymbol{P}_{\epsilon} = \mathbb{E}_{SS'} P \left\{\left. \sup_{f\in\mathcal{F}} \frac{1}{m}\sum_{i=1}^m \sigma_i D_i(f)\geq \frac{\epsilon}{2}\ \right| SS' \right\} Définissons le vecteur des classifications produites par f : \boldsymbol{f}=(f(\boldsymbol{X}_1),\dots f(\boldsymbol{X}_m), f(\boldsymbol{X}_1'),\dots, f(\boldsymbol{X}_m') )\in\mathcal{F}_{SS'}\subset\{-1,+1\}^{2m} qui permet de supprimer la dépendance de D_i(f) à f en dehors des points \boldsymbol{X}_i et \boldsymbol{X}_i' : D_i(f) = D_i(\boldsymbol{f}) =\mathbf{1}(\boldsymbol{f}_{m+i}\neq Y_i')- \mathbf{1}(\boldsymbol{f}_i\neq Y_i) et donc de transformer \sup_{f\in\mathcal{F}} en \exists \boldsymbol{f}\in\mathcal{F}_{SS'} pour avoir \boldsymbol{P}_{\epsilon} = \mathbb{E}_{SS'} P \left\{\left. \exists \boldsymbol{f}\in\mathcal{F}_{SS'} , \frac{1}{m}\sum_{i=1}^m \sigma_i D_i(\boldsymbol{f})\geq \frac{\epsilon}{2} \right| SS' \right\} Ainsi, en appliquant la borne de l’union (Équation B.1), nous obtenons \begin{align*} \boldsymbol{P}_{\epsilon} &\leq \mathbb{E}_{SS'} \sum_{\boldsymbol{f}\in\mathcal{F}_{SS'}}P \left\{\left. \frac{1}{m}\sum_{i=1}^m \sigma_i D_i(\boldsymbol{f})\geq \frac{\epsilon}{2} \right| SS' \right\} \\ &\leq \mathbb{E}_{SS'} \sum_{\boldsymbol{f}\in\mathcal{F}_{SS'}} \exp\left(\frac{-2m (\epsilon/2)^2}{ 2^2}\right) \end{align*} où la dernière ligne vient de l’application de l’inégalité de Hoeffding avec Z_i = \sigma_i D_i(\boldsymbol{f}) \in [-1,1] et \mathbb{E}[Z_i | SS'] = D_i(\boldsymbol{f}) \mathbb{E}\sigma_i = 01.

Ensuite, le terme dans la somme ne dépend plus de \boldsymbol{f} et nous obtenons \begin{align*} \boldsymbol{P}_{\epsilon} \leq \mathbb{E}_{S S'}|\mathcal{F}_{SS^\prime}| \exp\left(\frac{-m\epsilon^2}{8}\right) \leq \Pi_{\mathcal{F}}(2m) \exp\left(\frac{-m\epsilon^2}{8}\right) \end{align*} car \mathbb{E}_{S S'}|\mathcal{F}_{SS^\prime}| \leq \max_{S S' \in\mathcal{X}^{2m}}|\mathcal{F}_{SS^\prime}| = \Pi_{\mathcal{F}}(2m)

Pour finir, il suffit de poser \delta =\Pi_{\mathcal{F}}(2m) \exp\left(\frac{-m\epsilon^2}{8}\right) et de résoudre cette équation par rapport à \epsilon pour obtenir le Théorème 28.1.

28.2 Dimension de Vapnik-Chervonenkis

La fonction de croissance permet de mesurer la complexité des classes de fonctions infinies, mais elle n’est pas simple à manipuler. En particulier, c’est une fonction du nombre de points m, et sa valeur doit donc être calculée/estimée pour tout m.

La dimension de Vapnik-Chervonenkis ou VC dimension permet de résumer le comportement de la fonction de croissance avec un seul nombre, plus simple à estimer. Elle est définie ainsi :

La VC dimension d’une classe de fonctions \mathcal{F}, notée d_{VC}, est le plus grand nombre de points m pulvérisables par \mathcal{F}, c’est-à-dire tel que \Pi_{\mathcal{F}}(m) = 2^m

28.2.1 Borne à base de VC dimension

Le lien entre la fonction de croissance et la VC dimension est donné par le Lemme suivant qui indique que la fonction de croissance augmente exponentiellement avec m jusque m=d_{VC}, puis seulement polynomialement pour m>d_{VC}.

Lemme 28.2 (de Sauer–Shelah) Pour tout m > d_{VC}, \Pi_{\mathcal{F}}(m) \leq \sum_{k=0}^{d_{VC}} \binom{m}{k} \leq \left(\frac{\mathrm{e} m}{d_{VC}} \right)^{d_{VC}} \mathrm{e}=\exp(1) et les coefficients du binômes sont donnés par \begin{pmatrix}n\\k\end{pmatrix} = \begin{cases} \frac{n!}{k! (n-k)!}, &\text{si } 0\leq k \leq n \\ \\ 0, &\text{sinon}. \end{cases}

La preuve de la première inégalité se fait par une double induction sur la VC dimension d’une part et la taille de la base d’apprentissage m d’autre part selon le schéma suivant :

  1. cas de base pour m=0 et tout d_{VC}\geq 0 ;
  2. cas de base pour d_{VC}=0 et tout m\geq 1 ;
  3. induction du cas m, d_{VC} à partir de la validité pour m-1 points et toute VC-dimension < d_{VC}.

La seconde inégalité utilise simplement des calculs sur les coefficients du binôme.

Cas de base pour m=0 : sans aucun point, il n’y a aucune manière de les classer et on a \Pi_{\mathcal{F}}(0)=0, ce qui est bien inférieur à \sum_{k=0}^{d_{VC}} \begin{pmatrix}m\\k\end{pmatrix} pour toute d_{VC}.

Cas de base pour d_{VC}=0 : aucun point ne peut être pulvérisé par \mathcal{F} et la prédiciton f(\boldsymbol{x}) est donc constante pour tout f\in\mathcal{F} quel que soit \boldsymbol{x}\in\mathcal{X}. Donc, pour tout m, il n’y a qu’une seule classification possible et \Pi_{\mathcal{F}}(0)=1 qui est bien inférieur ou égal à la borne \sum_{k=0}^{0} \begin{pmatrix}m\\k\end{pmatrix} = \begin{pmatrix}m\\0\end{pmatrix}=1.

Induction : si le Lemme est valide pour m-1 points et toute VC-dimension < d_{VC}, alors pour tout F'\subset F\subset \mathcal{F}, \Pi_{F'}(m-1) \leq \Pi_{\mathcal{F}}(m-1) \leq \sum_{k=0}^{d_{VC}} \binom{m-1}{k} et si d_{VC}(F\setminus F') \leq d_{VC} - 1, \Pi_{F\setminus F'}(m-1) \leq \sum_{k=0}^{d_{VC}(F\setminus F')} \binom{m-1}{k} \leq \sum_{k=0}^{d_{VC} - 1} \binom{m-1}{k} = \sum_{k=1}^{d_{VC}} \binom{m-1}{k-1} Dans ce cas, \Pi_{F'}(m-1) + \Pi_{F\setminus F'}(m-1) \leq 1 + \sum_{k=1}^{d_{VC}} \binom{m-1}{k} + \binom{m-1}{k-1} = 1 + \sum_{k=1}^{d_{VC}} \binom{m}{k} = \sum_{k=0}^{d_{VC}} \binom{m}{k} car \binom{m}{k} = \binom{m-1}{k} + \binom{m-1}{k-1} (cette identité caractérise le comptage du nombre de manières de choisir k éléments parmi m en deux étapes. Dans la prmeière étape, on laisse de côté le premier élément et on compte le nombre de manières de choisir k éléments parmi m-1. Dans la seconde étape, on choisit le premier élément et on compte le nombre de manières de choisir les k-1 restant parmi n-1. Le nombre total de choisir k éléments parmi m, \binom{m}{k} est la somme des deux comptes.)

Choisissons un ensemble de points S=\{\boldsymbol{x}_1,\dots,\boldsymbol{x}_m\} tel que les \Pi_{\mathcal{F}}(m) classifications de ces points soient toutes obtenues avec des classifieurs f\in\mathcal{F} différents (cela implique aussi que S est choisi de telle sorte qu’un nombre maximal de classifications différentes soient obtenues). Notons F\subset\mathcal{F} l’ensemble de ces classifieurs. Définissons S'=S\setminus \{\boldsymbol{x}_1\} et F'\subset F le plus petit sous-ensemble de F qui peut classer S' du plus grand nombre de manières possibles (ainsi, F' ne peut pas contenir deux classifieurs qui produisent la même classification de S').

Pour chaque classification de S', deux classifieurs de F produisent cette classification et diffèrent sur \boldsymbol{x}_1, sachant que l’un est dans F' et l’autre dans F\setminus F'. Considérons la partition de F : F=F'\cup(F\setminus F') avec la relation |F| = |F'| + |F\setminus F'|.

Puisque F a été construit avec une seule fonction pour chaque classification de S, |F|= \Pi_{\mathcal{F}}(m) et |F'| et |F\setminus F'| représentent aussi le nombre de classifications de S' produites par F' et F\setminus F'. Ainsi : |F'| \leq \Pi_{F'}(m-1) \qquad \text{et}\qquad |F\setminus F'| \leq \Pi_{F\setminus F'}(m-1) Nous allons maintenant nous intéresser à la VC dimension de ces ensembles. Puisque F'\subset F\subset \mathcal{F}, alors leur VC-dimension respecte d_{VC}(F') \leq d_{VC}(F) \leq d_{VC}(\mathcal{F}) S’il existe un ensemble de points T\subset S' pulvérisé par F\setminus F', alors F' pulvérise aussi T car F' a été choisi pour produire la plus grand nombre de classifications de S' et donc aussi de ses sous-ensembles.

Ainsi, pour chaque classification de T, il existe f\in F\setminus F' et f'\in F' qui produisent cette classification. Mais puisque F ne contient qu’une fonction pour chaque classification de S, cela implique que f et f' doivent être en désaccord sur S\setminus T. Et puisque F' produit le plus grand nombre de classifications de S', quelle que soit la classification de S' donnée par f, il existe un f'\in F' qui la produit aussi. Le désaccord entre f et f' doit donc être observé sur S\setminus S' = \{\boldsymbol{x}_1\} et f(\boldsymbol{x}_1)\neq f'(\boldsymbol{x}_1). Puisque toutes les paires f et f' construites ainsi appartiennet à F, l’ensemble de points T\cup\{\boldsymbol{x}_1\} est donc pulvérisé par F (car toutes les classifications de \boldsymbol{x}_1 sont possibles en plus de celles de T).

D’un autre côté, F\setminus F' ne peut pas pulvériser T\cup\{\boldsymbol{x}_1\} et donc d_{VC}(F\setminus F')\leq d_{VC}(F) - 1 \leq d_{VC}(\mathcal{F}) - 1.

Au final, \Pi_{\mathcal{F}}(m) = |F| = |F'| + |F\setminus F'| \leq \Pi_{F'}(m-1) + \Pi_{F\setminus F'}(m-1) \leq \sum_{k=0}^{d_{VC}} \binom{m}{k}

Borne polynomiale : pour obtenir la dernière borne polynomiale, nous utilisons, pour m>d_{VC}, \sum_{k=0}^{d_{VC}} \binom{m}{k} \leq \left( \frac{em}{d_{VC}} \right)^{d_{VC}} que l’on peut prouver ainsi.

Pour d<n, n/d>1 et pour k\leq d, (n/d)^{d-k} \geq 1. Ainsi, \begin{align*} \sum_{k=0}^{d_{VC}} \binom{m}{k} &\leq \sum_{k=0}^{d_{VC}} \binom{m}{k} \left(\frac{m}{d_{VC}}\right)^{d_{VC}-k} \\ &=\left(\frac{m}{d_{VC}}\right)^{d_{VC}} \sum_{k=0}^{d_{VC}} \binom{m}{k} \left(\frac{d_{VC}}{m}\right)^{k}\\ &\leq \left(\frac{m}{d_{VC}}\right)^{d_{VC}} \sum_{k=0}^{m} \binom{m}{k} \left(\frac{d_{VC}}{m}\right)^{k}\\ &= \left(\frac{m}{d_{VC}}\right)^{d_{VC}} \left(1 + \frac{d_{VC}}{m}\right)^{m}\\ &\leq \left(\frac{m}{d_{VC}}\right)^{d_{VC}} \left(e^{d_{VC}/m}\right)^{m}\\ &= \left(\frac{m}{d_{VC}}\right)^{d_{VC}} e^{d_{VC}}\\ &= \left(\frac{m}{e d_{VC}}\right)^{d_{VC}} \end{align*}

La croissance polynomiale donnée par le Lemme 28.2 permet de garantir que la borne du Théorème 28.1 converge bien vers le risque empirique en O\left(\sqrt{\frac{\ln m}{m}}\right) :

Théorème 28.2 (Borne de Vapnik-Chervonenkis) Pour tout m > d_{VC}/2 et \delta > 0, avec une probabilité d’au moins 1-\delta, \forall f\in\mathcal{F},\quad R(f) \leq R_{emp}(f) %+ 2\sqrt{\frac{2}{m}\left(d_{VC} \ln \frac{2 e m}{d_{VC}} + \ln\frac{2}{\delta}\right)} + 2\sqrt{2\frac{ d_{VC} \ln \frac{2 \mathrm{e} m}{d_{VC}} + \ln\frac{2}{\delta}}{m}}

Ce théorème permet en particulier de garantir les performances en généralisation des classifieurs linéaires pour lesquelles la VC dimension peut être calculée exactement.

28.2.2 VC dimension des classifieurs linéaires

Pour l’ensemble des classifieurs linéaires de \mathcal{X}=\mathbb{R}^d : \mathcal{F}= \{f \in \mathcal{Y}^\mathcal{X}| f(x) = \text{signe}( w^T x + b),\ w\in \mathbb{R}^d,\ b\in \mathbb{R}\} la VC dimension vaut d_{VC} = d+1

28.2.3 VC dimension infinie

La VC dimension peut être infinie si l’ensemble des classifieurs \mathcal{F} pulvérise un nombre arbitraire de points. Dans ce cas, le Théorème 28.2 devient trivial/inutile et il est nécessaire de considérer d’autres mesures de capacité comme la complexité de Rademacher.

VC dimension infinie du classifieur du plus proche voisin

Pour la méthode des K-plus proches voisins avec K=1 : d_{VC} = +\infty.

En effet, avec K=1, le classifieur Kppv donne toujours des prédictions parfaites sur la base d’apprentissage, car chaque point de cette base est lui-même son plus proche voisin.

Ainsi, pour produire une certaine classification de m points avec cet algorithme, il suffit de lui fournir une base d’apprentissage avec ces m points et la classification voulue, quel que soit m.

VC dimension infinie des SVM à noyau gaussien

Pour les SVM à noyau gaussien (Équation 19.1), d_{VC} = +\infty.

En effet, le noyau gaussien projette implicitement les données dans un espace de dimension infinie, où une classification linéaire est appliquée. La VC dimension est donc celle d’un classifieur linéaire en dimension infinie.

Les performances en généralisation des classifieurs à marge comme les SVM s’expliquent donc plutôt en passant par d’autres mesures de capacité comme la complexité de Rademacher.

La VC dimension des classifieurs linéaires pourrait laisser supposer que la VC dimension est directement liée au nombre de paramètres. Mais l’exemple des classifieurs sinusoïdaux montre que c’est loin d’être le cas.

VC dimension infinie des classifieurs sinusoïdaux

Pour les classifieurs « sinusoïdaux » de \mathcal{X}=[0,2\pi] qui ne possèdent qu’un seul paramètre \omega : \mathcal{F}= \{f | f(x) = \text{signe}\left( sin(\omega x) \right),\ \omega \geq 0\} d_{VC} = +\infty

La VC dimension est une mesure de capacité au pire cas, ce qui signifie que nous pouvons choisir la position des m points : x_i=2\pi 10^{-i} Pour chaque classification \boldsymbol{y}\in\{-1,1\}^m nous fixons la pulsation du sinus à \omega = \frac{1}{2}\left( 1 + \sum_{i=1}^m \frac{1-y_i}{2} 10^i \right).

Les étiquettes négatives sont correctement prédites :

On peut réécrire le paramètre comme \omega = \frac{1}{2}\left(1 + \sum_{\{i\ :\ y_i=-1\}} 10^i \right) où, pour tout point x_j =2\pi 10^{-j} dans notre jeu de données tel que y_j=-1, le terme 10^{j} apparaît dans la somme. Cela donne \begin{align*} \omega x_j &= \pi 10^{-j}\left(1 + \sum_{\{i\ :\ y_i=-1\}} 10^i \right)\\ & = \pi 10^{-j}\left(1 + 10^j + \sum_{\{i\ :\ y_i=-1,\ i\neq j\}} 10^i \right)\\ &= \pi \left( 10^{-j} + 1 + \sum_{\{i\ :\ y_i=-1,\ i\neq j\}} 10^{i-j} \right)\\ &= \pi \left( 10^{-j} + 1 + \sum_{\{i \ :\ y_i=-1,\ i > j\}} 10^{i-j} + \sum_{\{i\ :\ y_i=-1,\ i < j\}} 10^{i-j} \right) \end{align*} Pour tout i>j, les termes 10^{i-j} sont des puissances positives de 10 et donc des nombres pairs qui peuvent s’écrire 2k_i pour un certain k_i \in \mathbb{N}. Ainsi, \sum_{\{i \ :\ y_i=-1,\ i > j\}} 10^{i-j} = \sum_{\{i \ :\ y_i=-1,\ i > j\}} 2 k_i = 2 k pour un certain k\in \mathbb{N}, ce qui donne \omega x_j = \pi \left( 10^{-j} + 1 + \sum_{\{i \ :\ y_i=-1,\ i < j\}} 10^{i-j} \right) + 2k\pi . Pour le reste de la somme, on a \sum_{\{i\ :\ y_i=-1,\ i < j\}} 10^{i-j} < \sum_{i=1}^{+\infty} 10^{-i} = \sum_{i=0}^{+\infty} 10^{-i} - 1 La série géométrique S_m = \sum_{i=0}^{m-1} 10^{-i}, de premier terme 1 et de raison 0.1, converge vers \sum_{i=0}^{+\infty} 10^{-i} = \frac{1}{1-0.1}, ce qui donne \sum_{\{i\ :\ y_i=-1,\ i < j\}} 10^{i-j} < \frac{1}{1-0.1} -1 = \frac{1}{9}. Définissons \epsilon = 10^{-j} + \sum_{\{i\ :\ y_i=-1,\ i < j\}} 10^{i-j} et réécrivons \omega x_j comme \omega x_j = \pi \left( 1 + \epsilon \right) + 2k\pi . Etant donné que 10^{-j} \leq 0.1, et le résultat précédent, on a donc 0< \epsilon < 1/9 + 1/10 = 1, et ainsi \pi < \pi(1+\epsilon) < 2\pi \quad \Rightarrow\quad \sin(\omega x_j) < 0. Donc le classifieur prédit correctement toutes les étiquettes négatives y_j = -1 = \text{signe}(\sin(\omega x_j) ) = f(x_j).

Les étiquettes positives sont correctement prédites :

Les mêmes étapes peuvent être reproduites avec les étiquettes positives y_j=+1, à la seule différence que le terme 10^j n’apparaît plus dans la somme qui définit \omega. Cela donne \begin{align*} \omega x_j &= \pi 10^{-j} \left( 1 + \sum_{\{i \ :\ y_i=-1,\ i \neq j\}} 10^{i} \right)\\ &= \pi \left( 10^{-j} + \sum_{\{i \ :\ y_i=-1,\ i > j\}} 10^{i-j} + \sum_{\{i \ :\ y_i=-1,\ i < j\}} 10^{i-j} \right)\\ & = \pi\epsilon + 2k\pi \end{align*} avec 0 < \pi \epsilon < \pi\quad \Rightarrow\quad \sin(\omega x_j) > 0. Ainsi, toute sles étiquettes positives sont aussi bien retrouvées par le classifieur f utilisant notre choix de \omega.

Puisque que toute la preuve ne dépend pas de \boldsymbol{y}, nous avons prouvé que \mathcal{F} pulvérise le jeu de points (peut produire n’importe quelle classification). De plus, tout cela est valide pour tout m et la VC dimension est donc infinie.

En d’autres termes, il est toujours possible d’obtenir n’importe quel slalome autour de m points avec un sinus en choisissant correctement la position des points et la fréquence du sinus.

Code
def f(x):
    return np.sign(omega * x)

def omega(y):
    tentoi = 10
    w = 1.0
    for i in range(len(y)):
        w += tentoi * (1-y[i])/2 
        tentoi *= 10
    w /= 2
    return w
def generateBinaryLabels ( num_labeling, m):
    # Generate one (the num_labeling's) of the 2^m binary labelings 
    y = np.zeros(m)
    
    div = 1
    y[0] =  1 + num_labeling % 2
    for i in range(1, m):
        div *= 2
        y[i] = 1 +  int(np.floor( num_labeling / div ) % 2)
    return 2*(y-1)-1
        
def generatePoints(m):
    x = 2 * np.pi * 0.1;
    X=np.zeros(m)
    for i in range(m):
        X[i] = x
        x *= 0.1
    return X

        
for m in range(1,4):
    X = generatePoints(m)
    for k in range(2**m):
        y = generateBinaryLabels(k, m)
        w = omega(y)
        Nsamples = max(10 *  w, 200)
        plt.figure()
        x = np.arange(0,1,1/ Nsamples)
        plt.plot(x,np.sin(w*x))
        plt.plot(X[y==1],np.zeros(np.sum(y==1)), "ob")
        plt.plot(X[y!=1],np.zeros(np.sum(y!=1)), "or")
        plt.grid()
        plt.axis([0,1, -1.1, 1.1])
        t=plt.title(str(m) + " points, classification #" + str(k))


  1. \mathbb{E}\sigma_i = +1 P(\sigma_i=+1) - 1 P(\sigma_i=-1) = 0.5 - 0.5 = 0↩︎