SVM, variable Interaktion und Trainingsdaten passen

12

Ich habe 2 allgemeine / theoretischere Fragen.

1) Ich bin gespannt, wie SVMs mit variablen Interaktionen umgehen, wenn sie Vorhersagemodelle erstellen. Wenn ich z. B. zwei Funktionen f1 und f2 habe und das Ziel von f1, f2 und f1 * f2 (oder einer Funktion h (f1, f2)) abhängt, passt SVM (nicht nur auf OOS, sondern sogar auf Trainingsdaten) verbessern, wenn man f1, f2 und h (f1, f2) in die Features einbezieht, anstatt nur f1 und f2 einzubeziehen? Befasst sich der SVM-Algorithmus mit Feature-Interaktionen? Es scheint so, als würde es mit dem SVM versuchen, Hyperebenen im höherdimensionalen Raum zu erzeugen, aber ich bin mir nicht sicher, ob ich das fragen wollte.

2) Passt eine SVM bei der Anpassung der Trainingsdaten immer trivial zu den Trainingsdaten, wenn genügend Funktionen vorhanden sind und die optimalen Parameter gefunden werden (über die Brute-Force-Suche oder was auch immer)? Ich bin mir nicht sicher, ob ich das richtig formuliert habe, aber im Grunde genommen, ob ein SVM immer zu 100% zu den Trainingsdaten passt, wenn es genügend Varianz / Rauschen in den Features gibt? Wenn die SVM hingegen nicht zu 100% zu den Trainingsdaten passt, bedeutet dies, dass einige Informationen (oder andere Funktionen), die sich auf die Zielvariable auswirken, nicht in den Daten erfasst werden?

Vielen Dank

Kleine Klarstellung. Ich beziehe mich speziell auf Kernel-SVMs

tomas
quelle

Antworten:

8

Wie von highBandwidth vorgeschlagen, hängt es davon ab, ob Sie eine lineare oder eine nichtlineare SVM verwenden (da ein Kernel nicht verwendet wird, ist er eher ein linearer Klassifikator mit maximaler Marge als eine SVM).

Ein linearer Klassifizierer mit maximaler Marge unterscheidet sich nicht von anderen linearen Klassifizierern darin, dass die Bereitstellung dieser Interaktionsterme die Leistung wahrscheinlich verbessert, wenn der Datenerzeugungsprozess bedeutet, dass Interaktionen zwischen den Attributen bestehen. Der lineare Klassifikator für die maximale Margin ähnelt eher der Ridge-Regression, mit einem geringfügigen Unterschied im Strafausdruck, der darauf abzielt, eine Überanpassung zu vermeiden (bei geeigneten Werten für den Regularisierungsparameter). In den meisten Fällen liefern die Ridge-Regression und der Klassifikator für die maximale Margin eine ähnliche Leistung.

Wenn Sie der Meinung sind, dass Interaktionsterme wahrscheinlich wichtig sind, können Sie sie mit dem Polynomkern K ( x , x ) = ( x x + in den Merkmalsraum einer SVM einfügen , der ergibt In einem Merkmalsraum, in dem jede Achse ein Monom der Ordnung d oder weniger darstellt, beeinflusst der Parameter c die relative Gewichtung von Monomen unterschiedlicher Ordnung. Eine SVM mit einem Polynomkern entspricht also der Anpassung eines Polynommodells an den Attributraum, in dem diese Interaktionen implizit enthalten sind.K(x,x)=(xx+c)ddc

Mit genügend Funktionen, jeder linearer Klassifizierer kann trivialerweise die Daten passen. IIRC und Punkte in "allgemeiner Position" in einem n - 1nn1Der dimensionale Raum kann durch eine Hyperebene (vgl. VC-Dimension) zerschmettert (beliebig getrennt) werden. Dies führt im Allgemeinen zu einer starken Überanpassung und sollte daher vermieden werden. Der Punkt der maximalen Margin-Klassifizierung besteht darin, diese Überanpassung zu begrenzen, indem ein Strafausdruck hinzugefügt wird, der bedeutet, dass die größtmögliche Trennung erreicht wird (was die größte Abweichung von einem Trainingsbeispiel erfordern würde, um eine Fehlklassifizierung zu erzeugen). Dies bedeutet, dass Sie die Daten in einen sehr hochdimensionalen Raum (wo ein lineares Modell sehr leistungsfähig ist) umwandeln können, ohne zu viel Überanpassung zu verursachen.

Beachten Sie, dass einige Kernel zu einem unendlich dimensionalen Merkmalsraum führen, in dem eine "triviale" Klassifizierung für jedes endliche Trainingsmuster in der allgemeinen Position garantiert möglich ist. Beispielsweise ist der radiale Basisfunktionskern , wobei der Merkmalsraum die positive Orthante einer unendlich dimensionalen Hypersphäre ist. Solche Kernel machen die SVM zu einem universellen Approximator, der im Wesentlichen jede Entscheidungsgrenze darstellen kann.K(x,x)=expγxx2

Dies ist jedoch nur ein Teil der Geschichte. In der Praxis verwenden wir im Allgemeinen eine SVM mit weichen Margen, bei der die Margenbeschränkung verletzt werden darf, und es gibt einen Regularisierungsparameter, der den Kompromiss zwischen der Maximierung der Marge steuert (ein Strafbegriff, ähnlich dem in Ridge-Regression) und die Größe der Slack-Variablen (die dem Verlust der Trainingsstichprobe entspricht). Wir vermeiden dann eine Überanpassung, indem wir den Regularsation-Parameter optimieren, z. B. indem wir den Kreuzvalidierungsfehler (oder einen an den Auslassfehler gebundenen Fehler) minimieren, genau wie wir es im Fall der Ridge-Regression tun würden.

Während die SVM den Trainingssatz trivial klassifizieren kann , wird dies im Allgemeinen nur dann der Fall sein, wenn die Regularisierungs- und Kernelparameter falsch gewählt sind. Der Schlüssel, um mit jedem Kernelmodell gute Ergebnisse zu erzielen, liegt in der Auswahl eines geeigneten Kernels und der anschließenden Optimierung der Kernel- und Regularisierungsparameter, um eine Über- oder Unteranpassung der Daten zu vermeiden.

Dikran Beuteltier
quelle
Danke Dikran. Das war sehr detailliert und hilfreich. Ich denke, ich verstehe die Antworten auf die Fragen. Ein kurzes Follow-up. Wie wählt man den passenden Kernel für SVMs aus? Wäre es ähnlich wie bei Regularisierung / Kernel-Parametern (z. B. durch Kreuzvalidierung)? Oder gibt es eine theoretische Grundlage für die Wahl? Wenn der rbf-Kernel die SVM zu einem universellen Approximator macht, würde ich vermuten, dass die Kernelauswahl ein weiterer Parameter ist, den man einstellen muss, aber nicht sicher ist. Wie Sie wahrscheinlich sehen können, bin ich ziemlich neu darin.
tomas
Die Auswahl eines Kernels ist häufig eine gute Methode, um Expertenwissen über das Problem in den Klassifikator einzubauen. Beispielsweise für ein handschriftliches Zeichenerkennungssystem möchten Sie wahrscheinlich einen Kernel verwenden, der für kleine Rotationen und Übersetzungen des Bildes nicht geeignet ist. Die automatische Auswahl eines Kernels kann durch Kreuzvalidierung (wie ich es tun würde) oder durch Einschränkung des Auslassungsfehlers (der für SVMs effizient durchgeführt werden kann) erreicht werden. Wenn die Datenmenge jedoch klein ist, kann die Auswahl eines Kernels über die Kreuzvalidierung aufgrund einer Überanpassung des Kreuzvalidierungsfehlers schwierig sein.
Dikran Beuteltier
Für viele Anwendungen sind lineare oder RBF-Kernel eine gute Standardauswahl, und es ist oft relativ wenig zu erreichen, wenn ein größerer Bereich von Kerneln untersucht wird (da kein Expertenwissen über das Problem vorhanden ist).
Dikran Beuteltier
1

sign(i=1Kβi(x)β0)βi,i{1,2,...K}KK(x1,x2)=i=1Kβi(x1)βi(x2)

grosse Bandbreite
quelle