Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Les méthodes du noyau (Kernel methods)

L’équipe IVIA.AFRICA

Motivations et Rappels

Motivations

La plupart du temps, en apprentissage automatique, les difficultés que nous rencontrons ne se situent pas dans l’exécution ou l’implémentation des modèles et algorithmes de prédictions, mais dans l’adaptation de ces derniers aux données soumises à notre analyse.

Les données sont généralement classifiées en deux catégories à savoir:

Données linéairement séparables

Figure 1:Données linéairement séparables

Données non-linéairement séparables

Figure 2:Données non-linéairement séparables

À cet effet, il est souvent plus facile de résoudre les problèmes aux données linéairement séparables que ceux qui ne le sont pas, ceci en utilisant les techniques et méthodes présentées dans les chapitres 3 et 4. Cependant, il se trouve que dans la majeur partie des problèmes réels et du vécu quotidien, les données souvent manipulées sont rarement linéairement séparables, car elles sont plus compliquées, ce qui rend plus complexes l’analyse et les prédictions via les modèles basiques de l’apprentissage automatique. D’où l’intérêt de ce chapitre sur les méthodes du noyau.

Le but de ce chapitre est d’étendre les notions vues dans les chapitres précédents et les techniques de l’apprentissage de la statistique linéaire, à un monde réel, plus complexe, mieux structuré et en dimension plus élevée. Nous allons nous appuyer sur les méthodes mathématiques liées aux outils de modélisation pratique et algorithmes ou modèles de prédiction déjà bien connus en apprentissage automatique.

Rappels

Espace de Hilbert

Il y a au moins deux raisons profondes qui expliquent l’importance et l’omniprésence des espaces de Hilbert dans les mathématiques.

Premièrement, ils apparaissent comme généralisation naturelle des espaces euclidiens de dimension finie (par exemple, le plan R2\mathbb{R}^{2} ou l’espace Rn (n3)\mathbb{R}^{n}\ (n \geqslant 3)). Ils bénéficient des propriétés familières telles que le produit scalaire, l’orthogonalité, les projections (orthogonales), le théorème de Pythagore, etc.

Crucialement, on demande que les espaces de Hilbert abstraits soient complets pour la topologie qui dérive de leur norme. Cette condition de complétude est importante, et on la requiert afin que les constructions géométriques et les passages à la limite se passent aussi bien en dimension infinie qu’en dimension finie, et aussi, afin qu’il existe des bases orthonormées, de cardinal infini, le long desquelles on puisse décomposer chaque vecteur.

Définitions

Soit EE un espace vectoriel normé sur K=R\mathbb{K}=\mathbb{R} ou C\mathbb{C}.

La suite (Un)n\displaystyle (U_{n})_{n} est dite de Cauchy\textbf{Cauchy} si et seulement si,

ϵ0\displaystyle \forall \epsilon \ge 0, n0N\displaystyle \exists n_0 \in \mathbb{N}, nn0\displaystyle \forall n \ge n_0, Un+pUnϵ\displaystyle || U_{n+p} - U_n || \le \epsilon, pN.\displaystyle \forall p \in \mathbb{N}.

De façon équivalente:

ϵ0\displaystyle \forall \epsilon \ge 0, n0N\displaystyle \exists n_0 \in \mathbb{N}, n,mn0\displaystyle \forall n, m \ge n_0, UnUmϵ.\displaystyle || U_n - U_m || \le \epsilon.

Remarque: La suite (Un)n(U_{n})_{n} de EE est dite de Cauchy si et seulement si:

ϵn=SuppNUn+pUn0.\displaystyle \epsilon_{n} = \operatorname{Sup}_{p \in \mathbb{N}} || U_{n+p} - U_n || \rightarrow 0.

Propriétés:

Un espace vectoriel normé est dit complet\textbf{complet} si et seulement si toute suite de Cauchy de EE est convergente. Un espace vectoriel normé complet est dit un Banach\textbf{Banach}. Un ensemble FEF \subset E est dite complet si toute suite de Cauchy d’éléments de FF converge dans FF.

Définition: (Espace de Hilbert)

Un espace de Hilbert est un espace vectoriel réel ou complexe muni d’un produit scalaire et qui est complet\textbf{complet} pour la norme associée.

Quelques propriétés et caractéristiques des espaces de Hilbert

Deˊfinition: (Espace topologique)\textbf{Définition: (Espace topologique)}

Sur un ensemble EE, on peut définir une topologie TT comme un ensemble de parties de EE vérifiant les propriétés suivantes:

Alors par définition, un sous-ensemble UU de EE est un ouvert\textbf{ouvert} de EE pour la topologie TT si et seulement si UU appartient à TT (il en résulte que la topologie TT peut être définie comme l’ensemble des ouverts de EE selon TT).

Définition: (Espace fermé)

Dans un espace topologique EE, un fermeˊ\textbf{fermé} est un sous-ensemble de EE dont le complémentaire est un ouvert.

Définition: (Produit hermitien)

Un produit hermitien sur un C\mathbb{C}-espace vectoriel HH est une application:

(u,v)H×Hu,vC\displaystyle (\mathbf{u},\mathbf{v}) \in H\times H \mapsto \langle \mathbf{u},\mathbf{v}\rangle \in \mathbb{C}

Proposition:

Un sous-espace fermé d’un espace de Hibert est un espace de Hilbert (pour la restriction du produit hermitien).

Géométrie dans un espace de Hilbert:

Théorème:

Une application linéaire entre deux espaces de Hilbert, EE, FF est continue si et seulement si il existe une constante CC telle que pour tout xx de EE on a:

u(x)FCxE\displaystyle || u(x) ||_F \le C ||x||_E.

Si FF est un sous-espace quelconque de HH, on pose:

F={xH,yF,x,y=0}\displaystyle F^{\perp} = \{ x \in H, \forall y \in F, \langle x,y\rangle = 0 \}.

Theˊoreˋme de deˊcomposition:\textbf{Théorème de décomposition:}

Si FF est un sous-espace fermeˊfermé, alors

H=FF\displaystyle H = F \bigoplus F^{\perp}.

Theˊoreˋme de repreˊsentions de Riez:\textbf{Théorème de représentions de Riez:}

Soit uu une forme continue sur un espace de Hilbert. Il existe un unique vecteur auEa_u \in E tel que:

xE,u(x)=au,x\displaystyle \forall x \in E, u(x) = \langle a_u,x\rangle.

Preuve:\textbf{Preuve:}

On peut supposer u0u \neq 0. On choisit bub_u un vecteur unitaire orthogonal à F=ker(u)\displaystyle F = ker(u). (bub_u existe car H=FFH = F \oplus F^{\perp} et FHF \neq H).

On a alors u(xu(x)buu(bu))=0\displaystyle u(x - u(x)\frac{b_u}{u(b_u)}) = 0, donc H=ker(u)Cbu\displaystyle H = ker(u) \oplus \mathbb{C}b_u. On vérifie alors que u(x)=u(bu)bu,x\displaystyle u(x) = \langle u(b_u)b_u,x\rangle, pour xker(u)x \in ker(u) puis xCbu\displaystyle x \in \mathbb{C}b_u. C’est donc vrai pour tout xx, et la proposition est vérifié avec:

au=u(bu)bu.\displaystyle a_u = u(b_u)b_u.

Noyaux et espaces de Hilbert à noyau reproduisant (RKHS)

Pour cette partie, nous représentons les données d’entrée x1,...,xnXx_1, ...,x_n \in \mathbb{X} par une matrice carrée définie par kij=k(xi,xj)\displaystyle k_{ij} = k(x_i,x_j), où X\mathbb{X} est un espace pris arbitrairement, kRn×n\displaystyle k \in \mathbb{R}^{n \times n} une matrice de noyau et kk une fonction symétrique définie par
k:X×XR\displaystyle k: \mathbb{X} \times \mathbb{X} \rightarrow \mathbb{R} et x,yX\forall \mathbf{x}, \mathbf{y} \in \mathbb{X}, k(x,y)=k(y,x).k(\mathbf{x},\mathbf{y}) = k(\mathbf{y},\mathbf{x}).

Une notion assez importante à révéler ici est la condition de positiviteˊ\textbf{condition de positivité} qui est donnée par:

x1,...,xnX\displaystyle \forall x_1, ..., x_n \in \mathbb{X}, la matrice de noyau kk est définie positive, c’est-à-dire,

αRn\displaystyle \forall \boldsymbol{\alpha} \in \mathbb{R}^n, αTkα=i,j=1nαiαjk(xi,xj)0.\displaystyle \boldsymbol{\alpha}^{T} k \boldsymbol{\alpha} = \sum_{i,j = 1}^{n} \alpha_i \alpha_j k(x_i,x_j) \ge 0.

Les conditions de positivité et symétricité sont très importantes pour définir un kernel kk valide.

Exemple: X=Rd\displaystyle \mathbb{X} = \mathbb{R}^d, k(x,y)=xTyk(\mathbf{x},\mathbf{y}) = \mathbf{x}^{T}\mathbf{y}. Pour tout x\mathbf{x} et y\mathbf{y} X\in \mathbb{X}, nous avons k(x,y)=k(y,x)k(\mathbf{x},\mathbf{y})=k(\mathbf{y},\mathbf{x}), ceci implique que kk est symétrique. De plus, αRn\forall \boldsymbol{\alpha} \in \mathbb{R}^{n}, αTkα=i,j=1nαik(xi,xj)αj=i,j=1nαixi,αjxj0\boldsymbol{\alpha}^{T}k \boldsymbol{\alpha} = \sum_{i,j=1}^{n} \alpha_{i}k(x_{i}, x_{j}) \alpha_{j} =\sum_{i,j=1}^{n}\langle \alpha_{i}x_{i},\alpha_{j}x_{j} \rangle \geq 0. Donc, puisque kk est positif et symétrique, alors c’est un kernel valide.

Theˊoreˋme: (Aronszajn, 1950)\textbf{Théorème: (Aronszajn, 1950)}

Un noyau kk est défini positif si et seulement s’il existe un espace de Hilbert F\mathbb{F} et un ‘feature map’ Φ:XF\displaystyle \Phi: \mathbb{X} \rightarrow \mathbb{F} tels que:

k(x,y)=Φ(x),Φ(y)F\displaystyle k(\mathbf{x},\mathbf{y}) = \langle \Phi(\mathbf{x}),\Phi(\mathbf{y})\rangle_{\mathbb{F}}

Opérations sur les noyaux définis positifs (d.p)

Noyau polynomial en dimension p>1

Le noyau polynomial en dimension p>1p>1, est donné par l’expression suivante:

k(x,y)=(1+xTy)d\displaystyle k(\mathbf{x},\mathbf{y}) = (1 + \mathbf{x}^{T}\mathbf{y})^d

Il y a deux possibilités d’expandre cette expression et ceci peut se faire de la façon suivante:

Noyaux invariants par translation

Les noyaux invariants par translation sont de la forme :

k(x,y)=q(xy),qL2(Rp)continue.k(\mathbf{x},\mathbf{y}) = q(\mathbf{x}-\mathbf{y}), q \in L^2(\mathbb{R}^p)\quad \text{continue}.

Proposition:

kk est défini positif si et seulement si la transformée de Fourier Q(w)\mathbf{Q}(w) de qq est positive ou nulle pour tout wRp.w \in \mathbb{R}^p.

Exemple: Noyau Gaussien: k(x,y)=eαxy2.\displaystyle k(\mathbf{x},\mathbf{y}) = e^{-\alpha||\mathbf{x}-\mathbf{y}||^2}.

Avant de continuer plus loin, faisons le point sur tout ce que nous avons vu jusqu’ici:

Deˊfinition d’un RKHS\textbf{Définition d'un RKHS}

Soit X\mathcal{X} un ensemble quelconque et F\mathcal{F} un sous-espace de l’espace des fonctions de X\mathcal{X} dans R\mathbb{R}, qui est muni d’un produit scalaire Hilbertien.

F\mathcal{F} est un RKHS avec noyau reproduisant k:X×XR\displaystyle k: \mathcal{X} \times \mathcal{X} \rightarrow \mathbb{R} si et seulement si:

Proprieˊteˊs des RKHS\textbf{Propriétés des RKHS}

Construction du RKHS pour un noyau d.p.

Dans cette section nous donnons les étapes pour la construction du noyau sur un RKHS:

Noyaux de Mercer

Faisons un point de ce que nous avons vu jusqu’ici:

Resume

Le Noyau: définitions et propriétés

Méthodes à noyaux générales

Astuce du noyau (Kernel Trick) et théorème du représentant

Ridge regression (Régression de Ridge), Kernel ridge regression

Ridge regression

L’algorithme le plus élémentaire qui peut être kernelisé est probablement le Ridge regression. Ici, l’idée est de trouver une fonction linéaire qui modélise les dépendances entre les covariables {xi}\{x_i\} et les variables de réponse {yi}\{y_i\}, toutes deux continues. La manière classique de le faire est de minimiser le coût quadratique:

C(W)=12i(yiWTxi)2.C(\mathbf{W}) = \frac{1}{2} \sum_i (y_i - \mathbf{W}^Tx_i)^2.

Cependant, si nous allons travailler dans l’espace des fonctionnalités (‘features space’), où nous remplaçons xiΦ(xi)x_i \longrightarrow \Phi(x_i), il existe un danger évident que nous sur-ajustions (overfitting). Par conséquent, nous devons régulariser.

Un moyen simple mais efficace de régulariser est de pénaliser la norme de W\mathbf{W}. Ceci est parfois appelé «perte de poids» (‘weight decay’). Il reste à déterminer comment choisir λ\lambda. L’algorithme le plus utilisé consiste à utiliser des estimations de validation croisée (‘cross-validation’) ou de non-participation (‘leave-one-out estimates’). La fonction de coût total devient donc,

C(w)=12i(yiwTxi)2+12λw2C(w) = \frac{1}{2} \sum_i (y_i - w^Tx_i)^2 + \frac{1}{2}\lambda ||w||^2

qui doit être minimisé. Prendre des dérivées et les assimiler à zéro donne,

i(yiwTxi)xi=λw    w=(λI+ixixiT)1(jyjxj).\sum_i (y_i - w^Tx_i)x_i = \lambda w ~~ \Longrightarrow ~~ w = (\lambda I + \sum_i x_ix^{T}_{i})^{-1} (\sum_j y_jx_j).

Kernel ridge regression

Nous remplaçons maintenant tous les cas de données par leur vecteur de caractéristiques: xiΦi=Φ(xi)x_i \longrightarrow \Phi_i = \Phi(x_i). Dans ce cas, le nombre de dimensions peut être bien supérieur, voire infiniment supérieur, au nombre de cas de données. Il y a une astuce qui nous permet d’effectuer l’inverse ci-dessus dans le plus petit espace des deux possibilités, soit la dimension de l’espace des fonctionnalités, soit le nombre de cas de données. L’astuce est donnée par l’identité suivante:

(P1+BTR1B)1BTR1=PBT(BPBT+R)1.(P^{-1} + B^{T}R^{-1}B)^{-1}B^{T}R^{-1} = PB^{T}(BPB^{T} + R)^{-1}.

Notez maintenant que si BB n’est pas carrée, l’inverse est effectué dans des espaces de dimensionnalité différente. Pour appliquer cela à notre cas, nous définissons Φ=Φai\Phi = \Phi_{ai} et y=yiy = y_i. La solution est alors donnée par:

w=(λId+ΦΦT)1Φy=Φ(ΦTΦ+λIn)1y.w = (\lambda \mathbf{I}_d + \Phi \Phi^{T})^{-1}\Phi y = \Phi(\Phi^{T}\Phi + \lambda \mathbf{I}_n)^{-1}y.

Cette équation peut être réécrite comme suit:

w=iαiΦ(xi),w = \sum_i \alpha_i \Phi(x_i),

avec α=(ΦTΦ+λIn)1y.\alpha = (\Phi^{T} \Phi + \lambda \mathbf{I}_n)^{-1}y.

C’est une équation qui sera un thème récurrent et qui peut être interprétée comme: La solution ww doit se situer dans l’étendue des cas de données, même si la dimensionnalité de l’espace d’entités est beaucoup plus grande que le nombre de cas de données. Intuitivement, cet algorithme est linéaire dans l’espace des fonctionnalités (‘features space’).

Nous devons enfin montrer que nous n’avons jamais réellement besoin d’accéder aux vecteurs de caractéristiques, qui pourraient être infiniment longs (ce qui serait plutôt peu pratique). Ce dont nous avons besoin en pratique, c’est de la valeur prédite pour un nouveau point de test, x. Ceci est calculé en le projetant sur la solution ww,

y=wTΦ(x)=yT(ΦTΦ+λIn)1ΦTΦ(x)=yT(K+λIn)1κ(x)y = w^T \Phi(x) = y^T(\Phi^T\Phi + \lambda \mathbf{I}_n)^{-1} \Phi^T\Phi(x) = y^T(K + \lambda \mathbf{I}_n)^{-1}\kappa(x)

K(xi,xj)=Φ(xi)TΦ(xj) et κ(x)=K(xi,x).K(x_i, x_j) = \Phi(x_i)^T\Phi(x_j)\ et\ \kappa(x) = K(x_i,x).

Le message important ici est bien sûr que nous n’avons besoin que d’accéder au noyau KK.

Nous pouvons maintenant ajouter un biais à toute l’histoire en ajoutant une autre caractéristique constante à Φ:Φ0=1\Phi: \Phi_0 = 1. La valeur de w0w_0 représente alors le biais puisque,

wTΦ=awaΦai+w0.w^{T}\Phi = \sum_a w_a\Phi_ai + w_0.

En récapitulatif, reformulons tout ceci sous un problème d’optimisation:

Méthodes à noyaux et optimisation convexe

Rappels d’optimisation convexe

Un problème d’optimisation de manière générale consiste à minimiser (ou maximiser) une fonction objectif ff qui est soit soumise à des contraintes d’égalités et/ou des contraintes d’inégalités. Dans le cas où nous avons une fonction objectif convexe, des contraintes d’inégalités convexes et contraintes d’égalité affines, nous sommes en présence d’un problème d’optimisation convexe.

Le problème général est défini par:

minx    f(x)soumis aˋ    hi(x)=0,i=1,...,m         et/ou    gj(x)0,j=1,...,p.\begin{align} \nonumber \text{$\min_{\mathbf{x}}$ ~~~} & f(\mathbf{x}) \\ \text{soumis \`a ~~~} & h_i(\mathbf{x}) = 0, \forall i = 1, ...,m\\ \nonumber \text{~~~~~~~~ et/ou ~~~} & g_j(\mathbf{x}) \le 0, \forall j = 1, ..., p. \end{align}

Avec gj,hig_j, h_i des fonctions quelconques, et f ],+[{,+}\displaystyle f^{\ast} \in \ ]-\infty, +\infty[ \cup \{-\infty, +\infty\} le minimum global.

Pour résoudre le problème d’optimisation (10), nous calculons sa dérivée et l’égalons à zèro. Cependant, lorsque les contraintes (d’égalité et d’inégalité ) sont nombreuses, il dévient complexe de le résoudre via cette technique d’égalisation de la dérivée a zéro. C’est la raison pour laquelle il est préférable d’utiliser la méthode de Lagrange afin de résoudre ce type problème dans un sens plus général. A cet effet, appliquons cette méthode au problème d’optimisation (10) énoncé plus haut.

En effet, le Lagrangien du problème (10) est donné par:

L(x,λ,μ)=f(x)+iλihi(x)+jμjgj(x)\displaystyle \mathcal{L}(\mathbf{x},\lambda,\mu) = f(\mathbf{x}) + \sum_i\lambda_ih_i(\mathbf{x}) + \sum_j\mu_jg_j(\mathbf{x})

avec λRm\displaystyle \lambda \in \mathbb{R}^{m}, μR+p\mu \in \mathbb{R}^{p}_{+} les coefficients du Lagrangien.

La fonction duale associée est la suivante:

q(λ,μ)=infxXL(x,λ,μ)=infxX(f(x)+iλihi(x)+jμjgj(x))\displaystyle q(\lambda,\mu) = \inf_{\mathbf{x} \in \mathcal{X}}\mathcal{L}(\mathbf{x},\lambda,\mu) = \inf_{\mathbf{x} \in \mathcal{X}}\left(f(\mathbf{x}) + \sum_i\lambda_ih_i(\mathbf{x}) + \sum_j\mu_jg_j(\mathbf{x})\right)

On a donc le problème dual (toujours concave):

maxλRm,μR+pq(λ,μ)\displaystyle \max_{\lambda \in \mathbb{R}^{m}, \mu \in \mathbb{R}^{p}_{+}}q(\lambda,\mu)

Dualiteˊ\textbf{Dualité}

Exemples de noyaux

Dans cette section, nous allons présenter quelques exemples de méthodes à noyau fréquemment utilisées en apprentissage automatique.

Noyau linéaire

Le noyau linéaire est le plus simple et son équation est la suivante:

k(x,y)=xTy\displaystyle k(\mathbf{x},\mathbf{y}) = \mathbf{x^T}\mathbf{y}

Noyau polynomial

Ce noyau est beaucoup utilisé dans le traitement d’image et il est donné par l’équation suivante:

k(x,y)=(xTy+1)d\displaystyle k(\mathbf{x},\mathbf{y}) = (\mathbf{x^T}\mathbf{y} + 1)^d

Dans le cas où d=1d=1, nous retrouvons un Noyau linéaire (1+xTy1+\mathbf{x^T}\mathbf{y})

Noyau de Laplace RBF

C’est un noyau à usage général; utilisé lorsqu’il n’y a aucune connaissance préalable sur les données. La formule est:

k(x,y)=exp(xy1σ)k(\mathbf{x},\mathbf{y}) = \exp\left(-\frac{|| \mathbf{x} - \mathbf{y} ||_{\ell_1}}{\sigma} \right)

Noyau Gaussien

C’est un noyau à usage général; utilisé lorsqu’il n’y a aucune connaissance préalable sur les données. La formule est la suivante:

k(x,y)=exp(xy22σ2)\displaystyle k(\mathbf{x},\mathbf{y}) = \exp \left(-\frac{|| \mathbf{x} - \mathbf{y} ||^2}{2\sigma^2}\right)

Noyau hyperbolique tangent (Noyau Sigmoid)

Il est généralement utilisé dans les réseaux de neurones. Son expression est la suivante:

k(x,y)=tanh(κx.y+c)\displaystyle k(\mathbf{x},\mathbf{y}) = \tanh(\kappa \mathbf{x}.\mathbf{y} + c),

pour certaines (pas toutes) valeurs de κ>0\kappa > 0, et c>0c > 0.

Travaux pratiques/méthodes à noyau

Tutoriel: première session

Tutoriel: deuxième session

💬 Commentaires et Discussions