Der Unterschied der Kernel in SVM?


26

Kann mir bitte jemand den Unterschied zwischen den Kerneln in SVM erklären:

  1. Linear
  2. Polynom
  3. Gaußscher (RBF)
  4. Sigmoid

Denn wie wir wissen, wird der Kernel verwendet, um unseren Eingaberaum in einen hochdimensionalen Merkmalsraum abzubilden. Und in diesem Merkmalsraum finden wir die linear trennbare Grenze.

Wann und warum werden sie verwendet (unter welchen Bedingungen)?

Antworten:


4

Der lineare Kernel ist das, was Sie erwarten würden, ein lineares Modell. Ich glaube, der Polynomkern ist ähnlich, aber die Grenze hat eine definierte, aber willkürliche Reihenfolge

(zB Reihenfolge 3: ).a=b1+b2X+b3X2+b4X3

RBF verwendet normale Kurven um die Datenpunkte und summiert diese, sodass die Entscheidungsgrenze durch eine Art von Topologiebedingung definiert werden kann, z. B. Kurven, bei denen die Summe über einem Wert von 0,5 liegt. (siehe dieses Bild )

Ich bin mir nicht sicher, was der Sigmoid-Kernel ist, es sei denn, er ähnelt dem logistischen Regressionsmodell, bei dem eine logistische Funktion zum Definieren von Kurven verwendet wird, bei denen der logistische Wert größer als ein bestimmter Wert ist (Modellierungswahrscheinlichkeit), z. B. 0,5 wie bei der normalen Fall.


Also können wir die linear trennbare Hyperebene (Grenze) erhalten, wenn wir den linearen Kernel verwenden? und wenn wir Polynom oder RBF-Kernel verwenden, könnte die (für Polynom) Hyperlane ein Kreis von gruppierten Klassen (für RBF) und Kurve sein? ist das richtig?? scikit-learn.org/stable/modules/svm.html
user3378327

Jeder der Kerne arbeitet für hochdimensionale Versionen ihrer jeweiligen Grenzen. Beantwortet das deine Frage? Sie sind für keinen mir bekannten Kernel auf drei Dimensionen beschränkt.
John Yetter

Ich möchte es nur klarstellen. Die Grenze mit linearem Kernel ist also linear? Für RBF ist wie ein Kreis der gruppierten Klasse? und für Polynom kann es Kurve basierend auf dem Grad des Polynoms sein?
User3378327

Ich würde nicht sagen, dass RBF ein Kreis gruppierter Klassen ist. Meines Wissens wendet es eine Funktion an, die auf einer Normalverteilung an jedem Datenpunkt basiert, und summiert diese Funktionen. Dann wird eine Grenze durch die Kurve gebildet, die einen bestimmten Wert für diese Funktion darstellt. Wenn jemand, der zu einer SVM-Bibliothek beigetragen hat, eingreifen könnte, könnte dies helfen. Ich denke, dass Ihr Verständnis der beiden anderen Kernel korrekt ist.
John Yetter

U sagte, dass der Linier-Kernel das ist, was ich mit dem Kernel erwartet hatte (um eine linear trennbare Klasse zu erhalten). und mit dem SVM-Klassifikator nannten wir es LINIER SVM. Aber wie wäre es, wenn wir die linear trennbaren Daten ohne Kernel in SVM erhalten könnten? Wie nennen wir es? Immer noch Linier SVM oder Non Linier SVM?
user3378327

11

Sich auf Grundkenntnisse des Lesers über Kernel verlassen.

K(X,Y)=XTY

K(X,Y)=(γXTY+r)d,γ>0

K(X,Y)=exp(XY2/2σ2)exp(γXY2),γ>0

Sigmoidkern: , ähnlich der Sigmoidfunktion in der logistischen Regression.K(X,Y)=tanh(γXTY+r)

Hier sind , und Kernparameter.rdγ


3
Die Informationen in Ihrer Antwort sind zwar korrekt, aber ich glaube nicht, dass sie die hier aufgeworfene Frage beantworten. Dies ist eher darauf ausgerichtet, was der praktische Unterschied zwischen ihnen ist, dh wann die eine oder die andere zu verwenden ist.
Firebug

1
Erstaunlicherweise sind diese einfachen Definitionen schwer zu bekommen. Sie sollten als Erstes vorgestellt werden, wenn es um Unterschiede bei den Kerneln geht, doch es gibt weit verbreitete Fehler, sie anzugeben.
Cammil

Gibt es eine offizielle Quelle für diese? (Ich habe sie getestet und sie scheinen korrekt zu sein, aber ich möchte sie zitieren können.)
Christian Eriksson

6

Diese Frage kann aus theoretischer und praktischer Sicht beantwortet werden. Aus dem theoretischen No-Free-Lunch-Theorem geht hervor, dass es keine Garantie dafür gibt, dass ein Kernel besser funktioniert als der andere. Das ist a priori, Sie wissen nie, noch können Sie herausfinden, welcher Kernel besser funktioniert.

Aus praktischer Sicht konsultieren Sie die folgende Seite:

Wie wähle ich den Kernel für SVM aus?


1

Während darüber nachgedacht wird, wofür ein Kernel "gut" ist oder wann er verwendet werden sollte, gibt es keine festen Regeln.

Wenn Ihr Klassifikator / Regressor mit einem bestimmten Kernel eine gute Leistung erbringt, sollten Sie gegebenenfalls zu einem anderen wechseln.

Informationen zur Leistung Ihres Kernels, insbesondere wenn es sich um ein Klassifizierungsmodell handelt, erhalten Sie möglicherweise anhand einiger Visualisierungsbeispiele, z. B. https://gist.github.com/WittmannF/60680723ed8dd0cb993051a7448f7805

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.