Softmax entmystifizieren
Ein üblicher Ansatz für die Mehrklassenklassifizierung besteht darin, für jede Klasse einen separaten binären Klassifikator zu verwenden.
Jeder Klassifikator ist dafür verantwortlich, seine eigene zugeordnete Klasse zu erkennen.
Betrachten Sie zunächst die Entwurfsentscheidungen hinter der Konstruktion eines einzelnen binären Klassifikators. Im Folgenden werden wir das Design auf eine Sammlung von binären Klassifikatoren erweitern.
Nehmen Sie als Ausgangspunkt eine lineare Gleichung, die einen Vektor von Merkmalen x verwendet und eine Ausgabe y zurückgibt , die eine gewichtete Summe der Eingabemerkmale und ihrer Parameter ist. Die Ausgabe y ist eine reelle Zahl, die einer Entscheidung zugeordnet werden soll: Stellt die Eingabe x ein Objekt dar, das zu einer Klasse gehört, die ich erkennen soll ? Die einfachste Wahl besteht darin, die Nachricht „ meine Klasse“ zurückzugeben, wenn y einen positiven Wert annimmt, und den Klassifikator inaktiv zu lassen, wenn y negativ ist.
Aber dann würden wir die Information über die Unsicherheit/Konfidenz der Ausgabe des Klassifikators vermissen. Wir könnten auch den Rohwert der Klassifikatorausgabe y als Maß für das Vertrauen des Klassifikators in das Ergebnis zurückgeben . Der Bereich von –∞ bis +∞ wäre jedoch für die Interpretation, den Vergleich und die Nachbearbeitung unbequem.
Designanforderung Nr. 1: Ausgabe als Wahrscheinlichkeit
Stattdessen ist es besser, einen Wert in einem streng begrenzten Bereich zurückzugeben, der als Wahrscheinlichkeit p interpretiert werden könnte, dass die Eingabe x das Objekt darstellt, das zu „ meiner Klasse “ gehört.
Die Frage ist also, wie man y auf einen Wert p projiziert , der grob als Wahrscheinlichkeit interpretiert werden könnte.
Dieser Wert sollte zunächst im Bereich <0,1> liegen. Als nächstes sollte 0,5 der Wendepunkt der Entscheidung sein. Schließlich sollten Werte größer als 0,5 für einen positiven Nachweis einer Klasse sprechen.
Aus mathematischer Sicht suchen wir eine stetige Funktion φ :
so dass 0 bei 0,5 landet , +∞ bei 1 und -∞ bei 0 projiziert wird .
In diesem Fall ist der einfache Weg Inverse Engineering: Beginnen Sie bei p und gehen Sie zurück zu y . Eine Wahrscheinlichkeit der Klasse p kann leicht von <0,1> auf < 0 , +∞) Intervall projiziert werden, indem das Odds Ratio verwendet wird:
Die nächste Abbildung sollte die erhaltenen Werte in (-∞, +∞) umwandeln. Die offensichtliche Wahl ist die logarithmische Funktion.
Hier treffen sich dann die beiden Enden. Wir sind bei < 0 , 1 > interval gestartet und haben das Intervall (-∞,+∞) erreicht, von dem anfangs angenommen wurde, dass es von y zurückgegeben wird :
Die Basis B des Logarithmus bleibt vorerst unbestimmt.
Die nächsten Schritte bestehen darin, die Beziehung auf das gewünschte p = φ ( y ) umzukehren:
Schließlich kommen wir zur gewünschten Formel:
Nun müssen wir über den Wert von B entscheiden . Schauen wir uns den Graphen an, der Varianten der φ- Funktion für verschiedene Werte von B zeigt .
Der kleinste scheint B=2.71 zu sein . Erstaunlicherweise hat ein ähnlicher Wert sein eigenes Symbol e und wird als natürliche Basis bezeichnet. Daher hat die letzte Formel für den natürlichen Basislogarithmus die folgende Form:
Glückwunsch!
Wir haben gerade die berühmte Sigmoidfunktion wiederentdeckt .
Die Frage an Sie lautet : Ist e wirklich die beste Wahl? Was wäre passiert, wenn wir einen anderen Wert gewählt hätten? Hätten wir die probabilistische Interpretation verloren?
Bedenken Sie auch Folgendes : Warum nicht eine nichtlineare Beziehung zwischen y und x verwenden ? Erinnern Sie sich, dass wir zum Ableiten von φ nur angenommen haben, dass der Wert von y im Intervall (-∞,+∞) liegt.
Wenn wir es mit vielen (z. B. M ) Klassen zu tun haben, weisen wir jeder Klasse ihren eigenen binären Klassifikator zu.
Wenn Klassifikatoren unabhängig voneinander arbeiten, kann es vorkommen, dass alle zurückgegebenen Wahrscheinlichkeiten nicht 1 ergeben , was die probabilistische Interpretation ihrer Ausgabe fehlerhaft macht. Diese Herausforderung gilt es jetzt anzugehen.
Entwurfsanforderung Nr. 2: Summierung zu Eins
Alle Klassifikatoren nehmen das gleiche x . Der i -te Klassifikator berechnet y_i . Wir wollen wieder eine Projektion von y_i auf p_i machen , aber diesmal synchron mit allen anderen Klassifikatoren , damit
Bei der Synchronität zwischen Klassifikatoren geht es um gegenseitige Vereinbarung darüber, wie unabhängig berechnete y_i auf p_i projiziert werden . Für einen einzelnen Klassifikator umfasste das Wahrscheinlichkeitsverhältnis die Wahrscheinlichkeiten von zwei Ausgaben: „ meine Klasse “ mit Wahrscheinlichkeit p gegenüber „ nicht meine Klasse “ mit Wahrscheinlichkeit 1-p . Je höher der Wert von y ist , desto wahrscheinlicher ist die Ausgabe ' meine Klasse '. Nun, anstelle der Ausgabe „ nicht meine Klasse “ sollten wir spezifischer sein und die Ausgabe „ Ihre Klasse “ einführen. Daher wäre die allgemeinere Version: ' meine Klasse ' mit Wahrscheinlichkeit p_kgegen ' deine Klasse ' mit Wahrscheinlichkeit p_l . Und je höher meine Ausgabe y_k als Ihre Ausgabe y_l , desto wahrscheinlicher ist ' meine Klasse ' als ' deine Klasse '.
Entwurfsanforderung Nr. 3: Wechselbeziehungen zwischen Wahrscheinlichkeiten
Hier ist die aktualisierte Version von Gleichung (1):
Beachten Sie, dass diese Anforderung eine erweiterte Version der Entwurfsanforderung Nr. 1 ist.
Die Aufgabe besteht darin, sowohl die Designanforderungen №2 als auch №3, dargestellt durch die Gleichungen (2) und (3), zu nehmen und eine Formel für eine solche Funktion Φ _i abzuleiten , die :
Wir haben uns bereits für den natürlichen Basislogarithmus e entschieden , also verwenden wir ihn für unsere weiteren Überlegungen:
Um die in Gleichung (2) enthaltenen Informationen zu nutzen, wenden wir die Summation für beide Seiten an:
und extrahiere Elemente, die sich nicht mit k vor den Summationszeichen ändern. Beachten Sie, dass gemäß Gleichung (2) die Summe aller Wahrscheinlichkeiten gleich 1 ist :
Schließlich kommen wir zu folgender Funktion:
was für i statt l umgeschrieben werden kann als:
Glückwunsch nochmals!
So haben wir endlich die allseits bekannte Softmax -Funktion wiederentdeckt.
Abschließende Gedanken
Ich hoffe, Sie wissen es zu schätzen, dass wir den Weg zur Softmax-Funktion auf klare Weise gefunden haben. Wir haben bei unseren Überlegungen nicht auf Offenbarungen, lose Analogien aus der Naturwissenschaft oder Autoritäten zurückgegriffen. In diesem Artikel ist die Softmax-Funktion das Ergebnis einer geradlinigen Argumentation, die ihren Ursprung in natürlichen Anforderungen hat, die für Probleme mit mehreren Klassen gestellt werden .
Meine Absicht ist es, Ihnen ein stärkeres Gefühl für die Ursprünge der Softmax-Funktion bei der Lösung von Problemen des maschinellen Lernens zu geben.
Ich empfehle Ihnen, sich einen anderen sehr inspirierenden Ansatz zur Ableitung einer Sigmoidfunktion anzusehen, der im Will Wolf Blog erstellt wurde .
Überlegen Sie sich zum Schluss, ob das alles nicht auch anders zu erreichen wäre: mit unabhängig arbeitenden Klassifikatoren, danach alle p_i normalisieren und dann p_i durch normalisierte Werte ersetzen.
Verweise
[1] Gabriel Furnieres : Sigmoid- und SoftMax-Funktionen in 5 Minuten . https://towardsdatascience.com/sigmoid-and-softmax-functions-in-5-minutes-f516c80ea1f9
[2] Will Wolf : Ableitung des Softmax aus den Grundprinzipien .https://willwolf.io/2017/04/19/deriving-the-softmax-from-first-principles/

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































