Trennen alle Algorithmen für maschinelles Lernen Daten linear?


22

Ich bin ein Enthusiast des Programmierens und des maschinellen Lernens. Vor ein paar Monaten habe ich angefangen, maschinelles Lernen zu lernen. Wie viele andere, die keinen quantitativen wissenschaftlichen Hintergrund haben, habe ich mich auch mit ML befasst, indem ich an den Algorithmen und Datensätzen des weit verbreiteten ML-Pakets (Caret R) herumgebastelt habe.

Vor einiger Zeit habe ich einen Blog gelesen, in dem der Autor über die Verwendung der linearen Regression in ML spricht. Wenn ich mich richtig erinnere, sprach er darüber, wie das gesamte maschinelle Lernen letztendlich eine Art "lineare Regression" verwendet (nicht sicher, ob er genau diesen Begriff verwendet hat), selbst für lineare oder nichtlineare Probleme. Diesmal habe ich nicht verstanden, was er damit meinte.

Mein Verständnis der Verwendung von maschinellem Lernen für nichtlineare Daten besteht darin, einen nichtlinearen Algorithmus zum Trennen der Daten zu verwenden.

Das war mein Denken

Nehmen wir an, wir klassifizieren lineare Daten, indem wir die lineare Gleichung und für nicht lineare Daten verwenden wir die nicht lineare Gleichung say y = s i n ( x ).y=mx+cy=sin(x)

Bildbeschreibung hier eingeben

Dieses Bild wird vom sikit genommen, Website der Stützvektormaschine zu lernen. In SVM haben wir verschiedene Kernel für ML-Zwecke verwendet. Mein erster Gedanke war also, dass der lineare Kernel die Daten mithilfe einer linearen Funktion trennt und der RBF-Kernel eine nicht lineare Funktion verwendet, um die Daten zu trennen.

Aber dann habe ich diesen Blog gesehen, in dem der Autor über neuronale Netze spricht.

Um das nichtlineare Problem in der linken Teilkurve zu klassifizieren, transformiert das neuronale Netzwerk die Daten so, dass wir am Ende eine einfache lineare Trennung zu den transformierten Daten in der rechten Teilkurve verwenden können

Bildbeschreibung hier eingeben

Meine Frage ist, ob am Ende alle Algorithmen für maschinelles Lernen eine lineare Trennung zur Klassifizierung verwenden (linearer / nichtlinearer Datensatz).



3
Sünde(x)s=Sünde(x)y=θ0+θ1s

Ich mag auch die Antwort von mbq in diesem Thread. Hilf mir, die Support-Vektor-Maschinen zu verstehen .
Andy W

Antworten:


26

Die Antwort lautet Nein. User20160 hat eine perfekte Antwort. Ich werde 3 Beispiele mit Visualisierung hinzufügen, um die Idee zu veranschaulichen. Beachten Sie, dass diese Diagramme möglicherweise nicht hilfreich sind, um festzustellen, ob die "endgültige Entscheidung" in linearer Form vorliegt, aber Sie ein wenig über Baum, Boosting und KNN informieren.

Wir werden mit Entscheidungsbäumen beginnen. Bei vielen Teilungen handelt es sich um eine nichtlineare Entscheidungsgrenze. Und wir können nicht glauben, dass alle vorherigen Splits "Feature-Transformationen" sind und dass am Ende eine endgültige Entscheidungslinie steht.

Ein weiteres Beispiel ist das Boosting-Modell, bei dem viele "schwache Klassifikatoren" aggregiert werden und die endgültige Entscheidungsgrenze nicht linear ist. Sie können sich vorstellen, dass es ein komplizierter Code / Algorithmus ist, um die endgültige Vorhersage zu treffen.

Denken Sie abschließend an K Nearest Neighbours (KNN). Es ist auch keine lineare Entscheidungsfunktion in der Endschicht. Darüber hinaus gibt es in KNN keine "Feature-Transformationen".

Hier sind drei Visualisierungen im 2D-Raum (Tree, Boosting und KNN von oben nach unten). Die Grundwahrheit ist, dass 2 Spiralen zwei Klassen darstellen, und die linke Teilkurve die Vorhersagen aus dem Modell und die rechte Teilkurve die Entscheidungsgrenzen aus dem Modell sind.

Baumentscheidungsgrenze

Entscheidungsgrenze erhöhen

KNN Entscheidungsgrenze


BEARBEITEN: @ ssdecontrol Antwort in diesem Beitrag gibt eine andere Perspektive.

Es kommt darauf an, wie wir die "Transformation" definieren .

Jede Funktion, die die Daten in zwei Teile aufteilt, kann in ein lineares Modell dieser Form mit einem Schnittpunkt und einer einzigen Eingabe umgewandelt werden (ein Indikator für die "Seite" der Partition, auf der sich der Datenpunkt befindet). Es ist wichtig, den Unterschied zwischen einer Entscheidungsfunktion und einer Entscheidungsgrenze zu beachten.


Ich will nicht kritisieren, aber das Boosten scheint ein bisschen rau zu sein, oder? Ist es nicht möglich, mit verschiedenen Parametern ein gleichmäßigeres Ergebnis zu erzielen? Tut mir leid, dass ich pingelig bin, denn ich finde die ganze Erklärung sehr gut.
YCR

@YCR Ich denke, das ist der Punkt, an dem man eine grobe Entscheidungsgrenze hat. Die Rauheit wird durch die Aggregation vieler schwacher Klassifikatoren verursacht (in diesem Beispiel handelt es sich um Bäume). Aber ich stimme Ihnen zu, dass das zweite Beispiel kein gutes Modell ist, und es ist überpassend :)
Haitao Du

1
(+1) Tolle Visualisierung (Ich benutze auch spiralsviel in meinen Experimenten). Ein Vorschlag: Zeichnen Sie die Entscheidungsgrenzen als imageund fügen Sie möglicherweise Wahrscheinlichkeiten hinzu (wenn Sie probabilistische Ausgaben verwenden) contour.
Firebug

@Firebug toller Vorschlag! Diese Diagramme werden in einem Raster erstellt und geben nur die endgültige Bezeichnung an. Die Kontur ist viel besser.
Haitao Du

Schau dir meine Antwort hier an: stats.stackexchange.com/a/218578/60613
Firebug

21

Einige Algorithmen verwenden eine Hyperebene (dh eine lineare Funktion), um die Daten zu trennen. Ein prominentes Beispiel ist die logistische Regression. Andere verwenden eine Hyperebene, um die Daten nach einer nichtlinearen Transformation zu trennen (z. B. neuronale Netze und unterstützen Vektormaschinen mit nichtlinearen Kerneln). In diesem Fall ist die Entscheidungsgrenze im ursprünglichen Datenraum nichtlinear, im Merkmalsraum, in den die Daten abgebildet werden, jedoch linear. Im Fall von SVMs definiert die Kernelformulierung diese Zuordnung implizit. Andere Algorithmen verwenden mehrere aufteilende Hyperebenen in lokalen Regionen des Datenraums (z. B. Entscheidungsbäume). In diesem Fall ist die Entscheidungsgrenze stückweise linear (aber insgesamt nicht linear).

Andere Algorithmen haben jedoch nichtlineare Entscheidungsgrenzen und sind nicht in Form von Hyperebenen formuliert. Ein prominentes Beispiel ist die Klassifizierung der nächsten Nachbarn. Ensemble-Klassifikatoren (z. B. durch Boosten oder Absacken anderer Klassifikatoren) sind im Allgemeinen nichtlinear.


Das neuronale Netz ist kein gutes Beispiel für eine Modellklasse, die nach einer nichtlinearen Transformation Hyperebenen verwendet. Die Ausgabeebene kann (in vielen Fällen) eine Sigma-Aktivierung sein, vorausgesetzt, Sie nehmen vorherige Ebenen als nichtlineare Transformation in einen Merkmalsraum an.
Cagdas Ozgenc

1
@CagdasOzgenc Betrachten wir den Fall der binären Klassifizierung und eines Netzwerks mit Sigmoid-Ausgabe, wie Sie vorschlagen. Dies entspricht einer logistischen Regression bei den Aktivierungen der vorherigen Ebene (die Verwendung von Softmax-Ausgaben entspricht einer multinomialen logistischen Regression). Die Entscheidungsgrenze ist also eine Hyperebene im Merkmalsraum. Das Bild in der Originalfrage zeigt ein schönes Beispiel dafür.
user20160

Ich verstehe, dass wenn f (Ax) = 0 und f eins zu eins ist, Sie einfach f ^ -1 von (Ax) = f ^ -1 (0) => Ax = 0 (oder eine Konstante c) machen können. Im Fall von Sigmoid erhalten Sie also eine lineare Entscheidungsgrenze. Grundsätzlich sprechen wir über Fälle, in denen f nicht invertierbar ist?
Cagdas Ozgenc

Ist f die Aktivierungsfunktion des Ausgangsneurons und x die Ausgabe der vorherigen Schicht? Ich verstehe nicht, was Sie fragen.
user20160

x ist ein Vektor, der von Neuronen der vorherigen Schicht kommt, und f ist die Ausgabeaktivierungsfunktion.
Cagdas Ozgenc
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.