Sollte ich den Kernel-Trick wann immer möglich für nichtlineare Daten verwenden?

13

Kürzlich habe ich die Verwendung des Kernel-Tricks kennengelernt, der Daten in höherdimensionale Räume abbildet, um die Daten in diesen Dimensionen zu linearisieren. Gibt es Fälle, in denen ich diese Technik meiden sollte? Geht es nur darum, die richtige Kernelfunktion zu finden?

Für lineare Daten ist dies natürlich nicht hilfreich, aber für nicht lineare Daten scheint dies immer nützlich zu sein. Die Verwendung linearer Klassifikatoren ist in Bezug auf Trainingszeit und Skalierbarkeit viel einfacher als die Verwendung nichtlinearer Klassifikatoren.

JDong
quelle

Antworten:

8

Für lineare Daten ist dies natürlich nicht hilfreich, aber für nicht lineare Daten scheint dies immer nützlich zu sein. Die Verwendung linearer Klassifikatoren ist in Bezug auf Trainingszeit und Skalierbarkeit viel einfacher als die Verwendung nichtlinearer Klassifikatoren.

@BartoszKP hat bereits erklärt, warum der Kernel-Trick nützlich ist. Um Ihre Frage vollständig zu beantworten, möchte ich jedoch darauf hinweisen, dass die Kernelisierung nicht die einzige Option ist , mit nicht linear trennbaren Daten umzugehen.

Es gibt mindestens drei gute, übliche Alternativen zur Delinearisierung des Modells:

  • Neutale netzwerkbasierte Methoden, bei denen Sie eine (oder mehrere) Ebenen von Verarbeitungseinheiten hinzufügen, um Ihre Daten in den linear trennbaren Fall umzuwandeln. Im einfachsten Fall handelt es sich um eine Sigmoid-basierte Schicht, die dem Prozess Nichtlinearität verleiht. Einmal zufällig initialisiert, werden sie während der gradientenbasierten Optimierung der oberen Ebene (die das lineare Problem tatsächlich löst) aktualisiert.
  • Insbesondere können hier Tiefenlerntechniken verwendet werden, um Daten für eine weitere lineare Klassifizierung vorzubereiten. Es ist der vorherigen Idee sehr ähnlich, aber hier trainieren Sie zuerst Ihre Verarbeitungsebenen, um einen guten Ausgangspunkt für die weitere Feinabstimmung auf der Grundlage des Trainings eines linearen Modells zu finden.
  • Zufällige Projektionen - Sie können (nicht lineare) Projektionen aus einem vordefinierten Raum abtasten und darauf den linearen Klassifikator trainieren. Diese Idee wird beim sogenannten extremen maschinellen Lernen stark ausgenutzt , wo sehr effiziente lineare Löser verwendet werden, um einen einfachen Klassifikator auf zufällige Projektionen auszubilden und eine sehr gute Leistung zu erzielen (bei nicht linearen Problemen sowohl bei der Klassifikation als auch bei der Regression, siehe beispielsweise extremes Lernen Maschinen ).

Zusammenfassend lässt sich sagen, dass Kernelisierung eine großartige Delinearisierungstechnik ist, und Sie können sie verwenden, wenn das Problem nicht linear ist, dies aber nicht blind sein sollte, "wenn dann". Dies ist nur eine von mindestens wenigen interessanten Methoden, die je nach Problem und Anforderungen zu unterschiedlichen Ergebnissen führen können. Insbesondere ELM tendiert dazu, sehr ähnliche Lösungen zu finden wie kernelisierte SVM, während gleichzeitig die Größenreihen schneller trainiert werden können (so dass es viel besser skaliert als kernelisierte SVMs).

Lejlot
quelle
10

Der Preis, den Sie für den Kernel-Trick im Allgemeinen für lineare Methoden zahlen, hat schlechtere Verallgemeinerungsgrenzen. Für ein lineares Modell ist seine VC-Dimension auch linear in Bezug auf die Anzahl der Dimensionen (z. B. ist die VC-Dimension für ein Perceptron d + 1).

Wenn Sie nun eine komplexe nichtlineare Transformation in einen hochdimensionalen Raum durchführen, ist die VC-Dimension Ihres Hypothesensatzes erheblich größer, da sie nun in Bezug auf die Anzahl der Dimensionen im neuen hochdimensionalen Raum linear ist. Und damit steigt die Verallgemeinerung.

Support Vector Machines nutzen den Kernel-Trick auf die effizienteste Art und Weise, indem sie zwei Dinge tun:

BartoszKP
quelle
1
"ist auch linear in Bezug auf die Anzahl der Gewichte" in Bezug auf die Raumabmessung, nicht die Anzahl der Gewichte. Sie können einen linearen Klassifikator mit beliebig vielen Gewichten parametrisieren lassen, die VC-Dimension beträgt jedoch weiterhin d + 1 (wobei d die Raumdimensionalität ist). "Die VC-Dimension für SVM-Modelle hängt mit der Anzahl der Unterstützungsvektoren zusammen." Wie genau ist die VC-Dimension mit der Anzahl der SV verknüpft? Mir ist die Grenze des harten Randes bekannt, aber im Fall des weichen Randes gibt es keine solche Beziehung. Selbst in Radamachers Komplexitätsgrenzen finden Sie die Anzahl der SVs nicht als Variable.
Lejlot
Auch "damit es unerheblich ist, wie" groß "der Kernel-Zielraum ist, verliert man nichts in Bezug auf die Verallgemeinerung" ist meines Wissens völlig falsch. Hochdimensionale Räume führen selbst bei stark regulierten Modellen wie SVM zu einem Verlust an Generalisierungsmöglichkeiten.
Lejlot
1
@lejlot Danke, korrigiert die ersten beiden Fehler. Ich brauche etwas Zeit, um mich auf Ihre letzten beiden Bemerkungen zu beziehen - ich werde versuchen, die Antwort zu verbessern und einige Quellen anzugeben, nachdem ich meine Informationen
nochmals
1
Es ist jetzt fast richtig, aber was ist der Grund für die Annahme, dass die Größe des Kernel-Space irrelevant ist? Nehmen Sie einen beliebigen Datensatz, führen Sie eine SVM mit RBF-Kernel und C-> inf aus, und Sie werden schlecht überanpassen. Es ist nicht so einfach. Die Anzahl der Dimensionen im Merkmalsraum ist relevant , kann jedoch mit C (als Obergrenze der Lagrange-Multiplikatoren) gesteuert werden. Insbesondere - Die VC-Dimension für SVM mit RBF ist unendlich und generalisierungsgebunden (Vapniks) ist nutzlos (Radamacher könnte funktionieren, aber das ist eine ganz andere Geschichte).
Lejlot
1
@lejlot Ich habe eine andere Referenz angegeben - sie geben explizit eine Grenze für den Soft-Margin-Fall an und es ist nicht abhängig von der Anzahl der Dimensionen.
BartoszKP
6

Ich werde versuchen, Ihre Frage nicht technisch zu beantworten.

In der Tat sollte linear bevorzugt werden und sollte die erste Wahl sein, aus den von Ihnen genannten Gründen, Trainingszeit, Skalierbarkeit sowie einfacher Interpretation des endgültigen Modells, Wahl der Arbeit an primären oder dualen Modellen, größere Toleranz gegenüber Überanpassung usw.

Wenn das lineare Modell keine zufriedenstellende Leistung erbringt, können Sie nichtlineare Lösungen ausprobieren. Einige zu berücksichtigende Kompromisse sind:

  • die Wahl des Kernels. Dies ist nicht offensichtlich, normalerweise müssen Sie verschiedene Optionen testen
  • es besteht die gefahr der überanpassung des trainingssets. Eigentlich ist es ziemlich einfach zu überziehen, wenn Sie wollen. Um eine Überanpassung zu vermeiden, benötigen Sie einen stärkeren Bewertungsrahmen (Sie müssen die Varianz / Stabilität der Leistung anhand nicht sichtbarer Daten messen) und Sie benötigen genügend Daten, um eine ordnungsgemäße Modellauswahl durchführen zu können
  • Sie arbeiten an Dual und können daher das endgültige Modell nicht interpretieren, dh Sie können nicht behaupten, dass Merkmal X wichtiger ist als Merkmal Y usw.
  • Die Trainingszeit erhöht sich mit dem Datenvolumen (weniger mit der Anzahl der Funktionen, da es sich um ein Dual handelt).
iliasfl
quelle
Dies ist ein interessanter Einblick in das "Arbeiten mit Dual", der dazu führt, dass keine wichtigen Funktionen in Anspruch genommen werden können. Hätten Sie einen Hinweis auf weiterführende Erklärungen?
Javadba