Régularisation du collecteur à l'aide du graphe laplacien dans SVM

8

J'essaie d'implémenter la régularisation du manifold dans les machines à vecteurs de support (SVM) dans Matlab. Je suis les instructions du document de Belkin et al. (2006), il y a l'équation:

f=argminfHki=1lV(xi,yi,f)+γAfA2+γIfI2

où V est une fonction de perte et γA est le poids de la norme de la fonction dans la RHKS (ou norme ambiante), la force une condition de lissage sur les solutions possibles, et γI est le poids de la norme de la fonction dans le collecteur de faible dimension (ou norme intrinsèque), qui applique un lissage le long du M. échantillonné. Le régularisateur ambiant rend le problème bien posé, et sa présence peut être vraiment utile d'un point de vue pratique lorsque l'hypothèse du collecteur se maintient à un degré moindre .

Il a été montré dans Belkin et al. (2006) que f admet une expansion en termes de n points de S, f(x)=i=1nαik(xi,x) La fonction de décision qui fait la distinction entre la classe +1 et -1 est y(x)=sign(f(x)) .

Le problème ici est que j'essaie de former SVM à l'aide de LIBSVM dans MATLAB mais je ne veux pas modifier le code d'origine, j'ai donc trouvé la version précalculée de LIBSVM qui, au lieu de prendre les données d'entrée et les groupes de sortie comme paramètres , obtient la matrice Kernal calculée et les groupes de sortie et entraîne le modèle SVM. J'essaie de le nourrir avec la matrice de noyau régularisée (Gram Matrix) et je laisse le reste.

J'ai essayé de trouver la formule qui régularise le Kernal et je suis arrivé à ceci: Définir comme la matrice d'identité avec la même dimension que la matrice du noyau,IK

G=2γAI+2γILKI

Gram=KG

Dans laquelle est la matrice du graphe laplacien, est la matrice du noyau et est la matrice d'identité. Et est calculée en utilisant la multiplication interne de deux matrices et .LKIGramKG

Y a-t-il quelqu'un qui peut m'aider à comprendre comment cela est calculé?

Moh
la source
1
@Sveltely Nothing
Moh

Réponses:

6

Bien que je ne l'ai pas testé , en lisant l'article, le problème d'optimisation, à la fois pour SVM et LapSVM , est donné comme suit :

β=maxβRli=1lβi12βTQβ
sous réserve de:
i=1lβiyi=00βi1l, with i=1,,l

Pour SVM :

QSVM=Y(K2γ)YαSVM=Yβ2γ

Alors que pour LapSVM, nous avons les éléments suivants (parenthèses ajoutées pour rendre la relation plus claire):

QLapSVM=Y(JK(2γAI+2γI(l+u)2LK)1JT)YαLapSVM=(2γAI+2γI(l+u)2LK)1JTYβ

Nous pouvons définir si:

QSVM*QLapSVM

{γSVM*=1/2KSVM*=JKLapSVM(2γAI+2γI(l+u)2LKLapSVM)1JT

Dernier:

αLapSVM=KLapSVM(2γAI+2γI(l+u)2LKLapSVM)1JTαSVM*

Je peux confirmer que cela fonctionne. Voir cet exemple avec un noyau gaussien et comment la classe virginicacommence à se glisser dans les données non étiquetées lorsque par rapport à , qui est le SVM standard.γI=2500γI=0

entrez la description de l'image ici

entrez la description de l'image ici

Pyromane
la source