Was entscheidet über die Wahl der Funktion (Softmax vs Sigmoid) in einem Logistic-Klassifikator?
Angenommen, es gibt 4 Leistungsklassen. Jede der obigen Funktionen gibt die Wahrscheinlichkeiten jeder Klasse als die richtige Ausgabe an. Also welche für einen Klassifikator?
Antworten:
Die Sigmoid-Funktion wird für die logistische Regression mit zwei Klassen verwendet, während die Softmax-Funktion für die logistische Regression mit mehreren Klassen verwendet wird (auch bekannt als MaxEnt, multinomiale logistische Regression, Softmax-Regression, Maximum Entropy Classifier).
In der logistischen Regression mit zwei Klassen lauten die vorhergesagten Wahrscheinlichkeiten unter Verwendung der Sigmoid-Funktion wie folgt:
In der logistischen Mehrklassen-Regression mit Klassen lauten die vorhergesagten Wahrscheinlichkeiten unter Verwendung der Softmax-Funktion wie folgt:K
Man kann beobachten, dass die Softmax-Funktion eine Erweiterung der Sigmoid-Funktion auf den Mehrfachklassenfall ist, wie nachstehend erläutert wird. Betrachten wir die logistische Regression mehrerer Klassen mit Klassen:K=2
mit . Wir sehen, dass wir mit der Sigmoid-Funktion die gleichen Wahrscheinlichkeiten wie bei der zweiklassigen logistischen Regression erhalten. Wikipedia erweitert diesbezüglich etwas.β=−(β0−β1)
quelle
Sie sind in der Tat äquivalent in dem Sinne, dass das eine in das andere umgewandelt werden kann.
Angenommen, Ihre Daten werden durch einen Vektor beliebiger Dimension dargestellt, und Sie haben einen Binärklassifikator dafür erstellt, wobei Sie eine affine Transformation gefolgt von einem Softmax verwenden:x
Lassen Sie uns es in einen äquivalenten binären Klassifikator umwandeln, der ein Sigmoid anstelle des Softmax verwendet. Zunächst müssen wir entscheiden, mit welcher Wahrscheinlichkeit das Sigma ausgegeben werden soll (dies kann für die Klasse oder ). Diese Wahl ist absolut willkürlich und deshalb wähle ich die Klasse . Dann hat mein Klassifikator die Form:C0 C1 C0
Die Klassifikatoren sind äquivalent, wenn die Wahrscheinlichkeiten gleich sind, also müssen wir auferlegen:
Ersetzen von , und durch ihre Ausdrücke in Form von und und Durchführen einiger einfacher Durch algebraische Manipulation können Sie überprüfen, ob die obige Gleichheit genau dann wenn und gegeben sind durch:z0 z1 z′ w0,w1,w′,b0,b1,b′ x w′ b′
quelle
Mir ist aufgefallen, dass Menschen bei der Suche nach der Verwendung von Sigmoid vs Softmax in neuronalen Netzen häufig auf diese Frage hingewiesen werden. Wenn Sie eine dieser Personen sind, die einen Klassifikator für neuronale Netze erstellen, können Sie hier entscheiden, ob Sie Sigmoid oder Softmax auf die Rohausgabewerte Ihres Netzes anwenden möchten:
Verweis: Eine ausführlichere Erläuterung der Verwendung von Sigmoid vs. Softmax im neuronalen Netzwerkdesign, einschließlich Beispielberechnungen, finden Sie in diesem Artikel: "Klassifizierung: Sigmoid vs. Softmax".
quelle
Hinzufügen zu allen vorherigen Antworten - Ich möchte die Tatsache erwähnen, dass jedes Mehrklassen-Klassifizierungsproblem mit der "one-vs-all" -Methode auf mehrere binäre Klassifizierungsprobleme reduziert werden kann, dh mit C-Sigmoiden (wenn C die Anzahl von ist) Klassen) und Interpretieren jedes Sigmoid, um die Wahrscheinlichkeit zu sein, in dieser bestimmten Klasse zu sein oder nicht, und die maximale Wahrscheinlichkeit zu nehmen.
So können Sie beispielsweise im MNIST-Ziffernbeispiel entweder einen Softmax oder zehn Sigmoids verwenden. Genau das macht Andrew Ng in seinem Coursera ML-Kurs. Sie können hier nachlesen , wie Andrew Ng 10 Sigmoide für die Klassifizierung mehrerer Klassen verwendet hat (von mir von Matlab an Python angepasst), und hier ist meine Softmax-Anpassung in Python.
Beachten Sie auch, dass die Funktionen zwar äquivalent sind (für die Klassifizierung mehrerer Klassen), sich jedoch in ihrer Implementierung geringfügig unterscheiden (insbesondere in Bezug auf ihre Ableitungen und die Darstellung von y).
Ein großer Vorteil der Verwendung mehrerer Binärklassifikationen (z. B. Sigmoids) gegenüber einer einzelnen Multiklassenklassifikation (z. B. Softmax) besteht darin, dass Ihr Softmax zu groß ist (z. B. wenn Sie eine One-Hot-Word-Einbettung mit einer Wörterbuchgröße von 10 KB oder mehr verwenden) ) - es kann ineffizient sein, es zu trainieren. Sie können stattdessen einen kleinen Teil Ihres Trainingssets nehmen und damit nur einen kleinen Teil Ihrer Sigmoiden trainieren. Dies ist die Hauptidee hinter Negative Sampling .
quelle