Théorème de Mercer et Kernel Trick

Octobre 2023

Soit K:[0,1]2RK : [0,1]^2 \to \mathbb{R} une fonction continue symétrique. Dans cette précédente note on a montré comment construire un processus stochastique gaussien de fonction de covariance KK, c'est-à-dire une fonction aléatoire B:[0,1]RB : [0,1] \to \mathbb{R} dont toutes les marginales sont des gaussiennes centrées et telle que E[BsBt]=K(s,t)\mathbb{E}[B_s B_t] = K(s,t). On a utilisé un théorème général, dit de Mercer, qui explique que KK se diagonalise dans une base orthonormale.

Dans cette note on démontre le théorème de Mercer, moyennant des résultats de base en analyse fonctionnelle.

Opérateurs intégraux

Pour toute fonction fL2f\in L^2 on pose

(Kf)(x)=01K(x,y)f(y)dy. (K \star f)(x) = \int_0^1 K(x,y)f(y){\rm d}y.

et on notera AKA_K l'opérateur fKff \mapsto K \star f ; dans le jargon de l'analyse fonctionnelle, AKA_K s'appelle opérateur intégral de noyau KK.

Si KK est une fonction L2L^2, alors AKA_K est un opérateur linéaire borné symétrique, et même compact si KK est continu. Le théorème de décomposition des opérateurs bornés sur des espaces de Hilbert dit qu'il existe une base orthonormale (en)(e_n) de L2L^2 et des réels λn\lambda_n tels que

AKf=λnen,fen. A_K f = \sum \lambda_n \langle e_n, f\rangle e_n.

La convergence de cette somme est au sens L2L^2 et les ene_n sont des fonctions L2L^2, donc on ne peut pas donner de sens direct à en(x)e_n(x). Cependant, si l'on pouvait évaluer (2) en n'importe quel point on aurait

K(x,y)=δx,AKδy=λnδx,enδy,en=λnen(x)en(y). K(x,y) = \langle \delta_x, A_K \delta_y\rangle = \sum \lambda_n \langle \delta_x, e_n\rangle \langle \delta_y, e_n\rangle = \sum \lambda_n e_n(x)e_n(y).

Le théorème de Mercer dit essentiellement que c'est vrai lorsque KK est un noyau positif.

On dit qu'une fonction K: [0,1]2RK : [0,1]^2 \to \mathbb{R} est un noyau positif si elle est symétrique, continue, et si pour tous x1,,xn[0,1]x_1, \dotsc, x_n \in [0,1] la matrice (K(xi,xj))1i,jn(K(x_i, x_j))_{1 \leqslant i,j\leqslant n} est définie positive.

Théorème de Mercer (1909).

Si KK est un noyau positif, il existe une base orthonormale (en)(e_n) de L2L^2 composée de fonctions continues, et des nombres positifs λn\lambda_n tels que λn<\sum \lambda_n <\infty et K(x,y)=n=0λnen(x)en(y) K(x,y) = \sum_{n=0}^\infty \lambda_n e_n(x)e_n(y) où cette série converge uniformément sur [0,1]2[0,1]^2.

Les φn,λn\varphi_n, \lambda_n se trouvent en résolvant les équations aux valeurs propres

λnen(x)=01K(x,y)en(y)dy. \lambda_n e_n(x) = \int_0^1 K(x,y)e_n(y){\rm d}y.

Le théorème est dû à James Mercer (1883 - 1932), mathématicien britannique.

On verra une démonstration très détaillée dans le livre de Barry Simon, partie 4 théorème 3.11.9. Cependant l'idée est élémentaire si l'on connaît un peu de théorie spectrale des opérateurs.

Démonstration

1. Si un noyau KK est positif alors l'opérateur associé AKA_K est positif au sens des opérateurs, c'est-à-dire que f,AKf0\langle f, A_K f\rangle \geqslant 0 pour toute fonction ff. Pour le voir il suffit de prendre une suite de UiU_i iid uniformes sur [0,1][0,1], une version de la loi des grands nombres dit que

01n2i,jf(Ui)f(Uj)K(Ui,Uj)E[f(U)f(U)K(U,U)]=f(x)f(y)K(x,y)dxdy=f,AKf0 \leqslant \frac{1}{n^2} \sum_{i,j} f(U_i)f(U_j)K(U_i, U_j)\to \mathbb{E}[f(U)f(U')K(U,U')] = \int f(x)f(y)K(x,y)dxdy = \langle f, A_K f\rangle

U,UU,U' sont iid uniformes sur [0,1][0,1].

2. Pour toute fonction fL2f \in L^2, le théorème de convergence dominée et la continuité de ff entraînement que KfK\star f est continue. On en déduit que si Ken=λnenK\star e_n = \lambda_n e_n, alors comme KenK\star e_n est continue ene_n l'est aussi, donc en(x)e_n(x) a un sens pour tout xx. De plus le point précédent implique que λn=en,AKen0\lambda_n = \langle e_n, A_K e_n\rangle \geqslant 0 donc les valeurs propres sont positives ou nulles.

3. Par l'inégalité de Cauchy-Schwarz, pour tous x,yx,y on a

i=nmλiei(x)ei(y)i=nmλiei(x)2×i=nmλiei(y)2. \left| \sum_{i=n}^m \lambda_i e_i(x)e_i(y)\right| \leqslant \left| \sum_{i=n}^m \lambda_i e_i(x)^2 \right|\times \left| \sum_{i=n}^m \lambda_i e_i(y)^2\right|.

4. La série λnen2\sum \lambda_n e_n^2 est uniformément convergente sur [0,1][0,1]. C'est le coeur de la démonstration.

Démonstration. La suite de fonctions Fn(x)=i=0nλiei(x)2F_n(x) = \sum_{i=0}^n \lambda_i e_i(x)^2 est une suite croissante de fonctions continues sur un compact (la croissance vient de la positivité des valeurs propres). Le théorème de Dini dit que si la série converge ponctuellement pour tout xx, alors elle converge uniformément en xx : il suffit donc de vérifier la convergence ponctuelle. Pour cela on fixe xx et on va approcher δx\delta_x par une fonction L2L^2, typiquement

ψϵ(y)=1yx<ϵ2ϵ. \psi_\epsilon(y) = \frac{\mathbf{1}_{|y-x|<\epsilon}}{2\epsilon}.

Lorsque ϵ0\epsilon \to 0, une application du théorème de convergence dominée et de la continuité de KK et des ene_n entraîne que

  • ψϵ,KψϵK(x,x)\langle \psi_\epsilon, K \star \psi_\epsilon \rangle \to K(x,x),

  • ψϵ,enen(x)\langle \psi_\epsilon, e_n \rangle \to e_n(x).

De plus (2) implique

ψϵ,Kψϵ=i=0λiψϵ,ei2i=0nλiψϵ,ei2. \langle \psi_\epsilon, K \star \psi_\epsilon \rangle = \sum_{i=0}^\infty \lambda_i \langle \psi_\epsilon, e_i\rangle^2 \geqslant \sum_{i=0}^n \lambda_i \langle \psi_\epsilon, e_i\rangle^2.

On passe à la limite ϵ0\epsilon \to 0 et on trouve que K(x,x)Fn(x)K(x,x) \geqslant F_n(x), donc la suite (Fn(x))(F_n(x)) est croissante bornée et elle converge presque sûrement.

5. On a montré que le membre de droite de (7) converge uniformément à la fois en xx et en yy, donc la limite

λnen(x)en(y) \sum \lambda_n e_n(x)e_n(y)

est une fonction continue sur [0,1]2[0,1]^2, disons HH. Il suffit maintenant de vérifier qu'elle coïncide avec KK.

Démonstration. On fixe xx. La fonction yK(x,y)y\mapsto K(x,y) est dans L2L^2 donc on peut la décomposer dans la base des ene_n,

K(x,)=en()K(x,),en=en()λnen(x)=H(x,)K(x,\cdot) = \sum e_n(\cdot) \langle K(x,\cdot ), e_n\rangle = \sum e_n(\cdot ) \lambda_n e_n(x) = H(x,\cdot)

où la convergence est au sens L2L^2. Pour tout xx on a donc l'égalité K(x,)=H(x,)K(x,\cdot) = H(x,\cdot) dans L2L^2, donc presque partout, donc partout car ces fonctions sont continues.

Kernel trick

Le théorème de Mercer est vrai avec la même démonstration pour tout noyau KK défini sur X2X^2XX est un espace métrique compact. La définition de la positivité reste la même. Maintenant, si l'on note Φ\Phi l'application

Φ(x)=(en(x))n \Phi(x) = (e_n(x))_n

alors on voit que Φ\Phi envoie (isométriquement !) l'espace XX vers l'espace H=2(N)\mathscr{H} = \ell^2(\mathbb{N}) muni du produit scalaire

u,v=λnunvn \langle u, v\rangle = \sum \lambda_n u_n v_n

et on a l'identité

K(x,y)=Φ(x),Φ(y). K(x,y) = \langle \Phi(x), \Phi(y)\rangle.

En pratique, de nombreux algorithmes de traitement de données procèdent de la façon suivante : 

Plutôt que d'avoir à calculer les features xix'_i, qui peuvent avoir une dimension gigantesque, le théorème de Mercer dit que pour accéder à la matrice de Gram il suffit de calculer les K(xi,xj)K(x_i, x_j). Le calcul des features n'est pas nécessaire. La fonction Φ\Phi n'a même pas à être connue.