Sind die Cross-Entropie-Kosten im Kontext der Regression sinnvoll?

13

Sind die Cross-Entropie-Kosten im Kontext der Regression sinnvoll (im Gegensatz zur Klassifizierung)? Wenn ja, könnten Sie über TensorFlow ein Spielzeugbeispiel geben? Wenn nicht, warum nicht?

Ich habe über Cross-Entropy in Neuronalen Netzen und Deep Learning von Michael Nielsen gelesen und es scheint etwas zu sein, das natürlich sowohl für die Regression als auch für die Klassifizierung verwendet werden kann, aber ich verstehe nicht, wie Sie es in TensorFlow seit dem effizient anwenden würden Verlustfunktionen verwenden Protokolle (die ich auch nicht wirklich verstehe) und werden hier unter Klassifizierung aufgelistet

JacKeown
quelle
2
Ich fand hier auf Quora, die anders sagt als das, was als Antwort auf diese Frage akzeptiert wird
Siddharth Shakya
Wenn Sie die gesamte Antwort lesen, sehen Sie, dass er eine "kontinuierliche Version" der Kreuzentropie liefert, die ziemlich cool ist, aber es stellt sich heraus, dass es sich nur um den Mean Squared Error (MSE) handelt.
JacKeown

Antworten:

11

Nein, es ist nicht sinnvoll, TensorFlow-Funktionen wie tf.nn.sigmoid_cross_entropy_with_logitsfür eine Regressionsaufgabe zu verwenden. In TensorFlow ist "Kreuzentropie" eine Abkürzung (oder Jargon) für "kategoriale Kreuzentropie". Die kategoriale Kreuzentropie ist eine Operation für Wahrscheinlichkeiten. Ein Regressionsproblem versucht, kontinuierliche Ergebnisse anstelle von Klassifikationen vorherzusagen.

Der Jargon "Kreuzentropie" ist etwas irreführend, da es eine beliebige Anzahl von Kreuzentropieverlustfunktionen gibt; Es ist jedoch eine Konvention im maschinellen Lernen, diesen bestimmten Verlust als "Kreuzentropie" -Verlust zu bezeichnen.

Wenn wir über die TensorFlow-Funktionen hinausblicken, mit denen Sie verknüpfen, gibt es natürlich eine beliebige Anzahl möglicher Cross-Entropy-Funktionen. Dies liegt daran, dass das allgemeine Konzept der Kreuzentropie den Vergleich zweier Wahrscheinlichkeitsverteilungen betrifft. Abhängig davon, welche zwei Wahrscheinlichkeitsverteilungen Sie vergleichen möchten, können Sie zu einem anderen Verlust als dem typischen kategorialen Kreuzentropieverlust kommen. Zum Beispiel reduziert sich die Kreuzentropie eines Gaußschen Ziels mit einer variierenden mittleren, aber festen diagonalen Kovarianz auf einen mittleren quadratischen Fehler. Das allgemeine Konzept der Kreuzentropie wird in folgenden Fragen ausführlicher beschrieben:

Sycorax sagt Reinstate Monica
quelle
5
Es sollte jedoch erwähnt werden, dass die Verwendung der binären Kreuzentropie als Verlustfunktion in einer Regressionsaufgabe, bei der die Ausgabewerte reale Werte im Bereich [0,1] sind, eine ziemlich vernünftige und gültige Sache ist.
Heute
@ Heute denke ich, dass dies eine Praxis ist, die einige Leute aus praktischen Gründen anwenden (z. B. das neuronale Netzwerk konvergiert schneller), aber ich bin nicht sicher, ob dieses Modell in irgendeiner Beziehung zum Vergleich zweier Wahrscheinlichkeitsverteilungen steht. Vielleicht könnten Sie zeigen, dass es eine Beziehung zwischen einem kontinuierlich bewerteten Ziel in und der binären Kreuzentropie gibt? [0,1]
Sycorax sagt Reinstate Monica
5

Die Antwort von @Sycorax ist richtig. Es ist jedoch erwähnenswert, dass die Verwendung von (binärer) Kreuzentropie in einer Regressionsaufgabe, bei der die Ausgabewerte im Bereich [0,1] liegen, eine gültige und vernünftige Vorgehensweise ist. Tatsächlich wird es in Bildautocodierern verwendet (z. B. hier und in diesem Artikel ). In dieser Antwort könnte es Sie interessieren, einen einfachen mathematischen Beweis dafür zu sehen, warum dies in diesem Fall funktioniert .

heute
quelle
[0,1]
@InfProbSciX "Es ist möglicherweise kein vernünftiger Ansatz, mit einer Regression umzugehen, bei der die Ausgaben in einem Bereich von [0,1] liegen." Also "vernünftig" in welchem ​​Sinne? Oder wie definieren Sie die Angemessenheit der Verlustfunktion für eine bestimmte Aufgabe? Ich vermute, dass diese Aussage für jede Verlustfunktion zutreffen könnte. Gibt es eine Verlustfunktion, die für alle Arten von Regressionsaufgaben sinnvoll wäre , natürlich nach der Definition des "angemessenen"?
Heute
Y.=fθ(X.)+ϵϵYBernoulli(pθ)die binäre Kreuzentropie. Wenn das Gesetz eine lineare Regression mit einem normalen Prior auf den Cofs ist, entspricht der Verlust der L2-Strafe und so weiter. Wenn möglich, würde ich ein Gesetz konstruieren und dann einen Verlust ableiten.
InfProbSciX
@InfProbSciX Danke für deine Antwort. Wie Sie bereits erwähnt haben, ist es abhängig von der Regressionsaufgabe (und den Annahmen zur Verteilung von Daten, Fehlern usw.) möglicherweise nicht sinnvoll, eine Verlustfunktion zu verwenden. Und wie bereits erwähnt, gilt dies für alle Verlustfunktionen, einschließlich der Crossentropie. Natürlich verstehe ich Ihren Standpunkt, dass nur weil die Ausgabewerte im Bereich [0,1] liegen, dies nicht garantiert, dass Crossentropie die optimale Auswahlverlustfunktion ist, und ich habe nicht versucht, das Gegenteil in meiner Antwort zu vermitteln.
Heute
5

Deep-Learning-Frameworks mischen häufig Modelle und Verluste und beziehen sich auf die Kreuzentropie eines multinomialen Modells mit Softmax-Nichtlinearität durchcross_entropy , was irreführend ist. Im Allgemeinen können Sie die Kreuzentropie für beliebige Modelle definieren .

fθ(x)y- -Logfθ(x),
y

Lucas
quelle
2

Leider ist die bis jetzt akzeptierte Antwort von @Sycorax zwar detailliert, aber falsch.

Tatsächlich wurde in TensorFlow ein Paradebeispiel für Regression durch kategoriale Kreuzentropie - Wavenet - implementiert .

Das Prinzip ist, dass Sie Ihren Ausgaberaum diskretisieren und Ihr Modell dann nur den jeweiligen Bin vorhersagt. siehe Abschnitt 2.2 des Papiers ein Beispiel für die Klangmodellierung. Während das Modell technisch eine Klassifizierung durchführt, ist die letztendlich gelöste Aufgabe die Regression.

Ein offensichtlicher Nachteil ist, dass Sie die Ausgabeauflösung verlieren. Dies ist jedoch möglicherweise kein Problem (zumindest denke ich, dass der künstliche Assistent von Google eine sehr menschliche Stimme sprach ), oder Sie können mit einer Nachbearbeitung herumspielen, z. B. Interpolation zwischen dem wahrscheinlichsten Papierkorb und seinen zwei Nachbarn.

Andererseits macht dieser Ansatz das Modell im Vergleich zur üblichen Ausgabe mit einer linearen Einheit viel leistungsfähiger, dh es ermöglicht, multimodale Vorhersagen auszudrücken oder sein Vertrauen zu bewerten. Beachten Sie jedoch, dass Letzteres natürlich auf andere Weise erreicht werden kann, z. B. durch eine explizite (logarithmische) Varianzausgabe wie bei Variations-Autoencodern.

Auf jeden Fall lässt sich dieser Ansatz nicht gut auf mehrdimensionale Ausgaben skalieren, da dann die Größe der Ausgabeebene exponentiell zunimmt, was sowohl zu Rechen- als auch zu Modellierungsproblemen führt.

dedObed
quelle
1
Ich verstehe, was Sie sagen, aber ich persönlich würde nicht in Betracht ziehen, Ihren Ausgaberaum als "Regression" zu diskretisieren, da dies ein Regressionsproblem mithilfe der Klassifizierung annähert ... aber ich denke, es ist nur eine Frage der Terminologie / Konvention.
JacKeown
1
Einverstanden. Der 32-Bit-Float-Space ist sowieso diskret :-)
dedObed
-1

Ich habe diese Frage erneut aufgegriffen, da ich jetzt mit der Antwort, die ich zuvor akzeptiert habe, nicht einverstanden bin. Kreuzentropieverlust kann bei der Regression verwendet werden (obwohl dies nicht üblich ist).

Es kommt darauf an, dass Cross-Entropy ein Konzept ist, das nur beim Vergleich zweier Wahrscheinlichkeitsverteilungen Sinn macht. Sie könnten ein neuronales Netzwerk als Vorhersage betrachten, das einen Mittelwert und eine Standardabweichung für eine Normalverteilung ausgibt. Es würde dann härter bestraft werden, wenn man sich über schlechte Vorhersagen sicherer fühlt. Also ja, es ist sinnvoll, aber nur, wenn Sie eine Distribution in gewissem Sinne ausgeben. Der Link von @SiddharthShakya in einem Kommentar zu meiner ursprünglichen Frage zeigt dies.

JacKeown
quelle
1
Diese Antwort scheint die Frage anders zu beantworten als sie gestellt wird. Die Funktionen, mit denen Sie in der Frage verknüpft haben, beziehen sich auf eine bestimmte Art von Kreuzentropieverlust, und Ihre Frage scheint zu fragen, ob diese Funktionen in der Regression verwendet werden können, und meine Antwort ist so geschrieben, als würden Sie fragen, wie diese Funktionen verwendet werden sollen Sie verlinken auf. Die Antwort hier scheint die Frage zu beantworten: "Kann Kreuzentropie über die Klassifizierung hinaus verallgemeinert werden?" Durch das Bearbeiten des Q wird deutlich, dass der Schwerpunkt eher auf der Definition mathematischer Konzepte als auf der Verwendung von Tensorflow-Funktionen liegt.
Sycorax sagt Reinstate Monica
Ich verstehe Ihren Einwand, aber ich habe vor, die Frage so zu belassen, wie sie ist, da sie meine ursprüngliche Frage darstellt, von der ich glaube, dass sie Menschen mit derselben Frage helfen könnte, die ich hatte. In jedem Fall sollte der gesamte Beitrag insgesamt genügend Informationen enthalten.
JacKeown