Vielfältige Regularisierung unter Verwendung eines Laplace-Graphen in SVM

8

Ich versuche, die Manifold-Regularisierung in Support Vector Machines (SVMs) in Matlab zu implementieren. Ich folge den Anweisungen in der Arbeit von Belkin et al. (2006), da ist die Gleichung drin:

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

wobei V eine Verlustfunktion ist und das Gewicht der Norm der Funktion in der RHKS (oder Umgebungsnorm) ist, erzwingt dies eine für die möglichen Lösungen, und ist das Gewicht der Norm der Funktion in die niedrigdimensionale Mannigfaltigkeit (oder intrinsische Norm), die entlang des abgetasteten M reibungslos wirkt. Der Umgebungs-Regularisierer macht das Problem gut gestellt, und seine Anwesenheit kann aus praktischer Sicht wirklich hilfreich sein, wenn die Annahme der Mannigfaltigkeit in geringerem Maße gilt .γAγI

Es wurde in Belkin et al. (2006), dass eine Erweiterung in Bezug auf Punkte von S zulässt , Die Entscheidungsfunktion, die unterscheidet zwischen Klasse +1 und -1 ist .fnf(x)=i=1nαik(xi,x)y(x)=sign(f(x))

Das Problem hierbei ist, dass ich versuche, SVM mit LIBSVM in MATLAB zu trainieren, aber den ursprünglichen Code nicht ändern möchte. Daher habe ich die vorberechnete Version von LIBSVM gefunden, die anstelle von Eingabedaten und Ausgabegruppen Parameter verwendet , berechnet die Kernal-Matrix und die Ausgabegruppen und trainiert das SVM-Modell. Ich versuche, es mit der regulierten Kernel-Matrix (Gram Matrix) zu füttern und lasse es den Rest erledigen.

Ich habe versucht, die Formel zu finden, die den Kernal reguliert, und dazu gekommen: als Identitätsmatrix mit derselben Dimension wie die Kernelmatrix zu definieren,K.IK

G=2γAI+2γILKI

Gram=KG

In welcher die Laplace-Graph-Matrix ist, ist die Kernel-Matrix und ist die Identitätsmatrix. Und wird unter Verwendung der inneren Multiplikation zweier Matrizen und berechnet .K.LKIGramKG

Gibt es jemanden, der mir helfen kann, herauszufinden, wie dies berechnet wird?

Moh
quelle
1
@Sveltely Nothing
Moh

Antworten:

6

Während ich es beim Testen des Artikels nicht getestet habe , wird das Optimierungsproblem sowohl für SVM als auch für LapSVM wie folgt angegeben:

β=maxβRli=1lβi12βTQβ
vorbehaltlich:
i=1lβiyi=00βi1l, with i=1,,l

Für SVM :

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

Während für LapSVM wir Folgendes haben (Klammern hinzugefügt, um die Beziehung klarer zu machen):

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

Wir können wenn:

QSVM*QLapSVM

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

Letzte:

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

Ich kann bestätigen, dass es funktioniert. Sehen Sie sich dieses Beispiel mit einem Gaußschen Kernel an und wie sich die Klasse virginicain die unbeschrifteten Daten wenn verglichen mit , der Standard-SVM.γI=2500γI=0

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Firebug
quelle