Ist es in Ordnung, die Cross-Entropy-Loss-Funktion mit Soft Labels zu verwenden?

10

Ich habe ein Klassifizierungsproblem, bei dem Pixel eher mit weichen Beschriftungen (die Wahrscheinlichkeiten bezeichnen) als mit harten 0,1-Beschriftungen gekennzeichnet werden. Früher mit harter 0,1-Pixel-Markierung lieferte die Kreuzentropieverlustfunktion (sigmoidCross entropyLossLayer von Caffe) anständige Ergebnisse. Ist es in Ordnung, die Sigmoid-Kreuzentropie-Verlustschicht (von Caffe) für dieses Problem der weichen Klassifizierung zu verwenden?

Saikat
quelle
Ich suche eine Kreuzentropiefunktion, die mit realwertigen Labels umgehen kann. Bitte lassen Sie mich wissen , wenn Sie eine Antwort wissen hier
Amir

Antworten:

27

Die Antwort lautet ja, aber Sie müssen es richtig definieren.

Die Kreuzentropie wird anhand von Wahrscheinlichkeitsverteilungen definiert, nicht anhand einzelner Werte. Für diskrete Verteilungen und gilt: q H ( p , q ) = - y p ( y ) log q ( y )pq

H(p,q)=yp(y)logq(y)

Wenn der Kreuzentropieverlust mit "harten" Klassenbeschriftungen verwendet wird, bedeutet dies, dass als bedingte empirische Verteilung über Klassenbeschriftungen behandelt wird. Dies ist eine Verteilung, bei der die Wahrscheinlichkeit 1 für das beobachtete Klassenlabel und 0 für alle anderen ist. ist die vom Klassifizierer gelernte bedingte Verteilung (Wahrscheinlichkeit der Klassenbezeichnung bei gegebener Eingabe). Für einen einzelnen beobachteten Datenpunkt mit Eingabe und Klasse können wir sehen, dass sich der obige Ausdruck auf den Standardprotokollverlust reduziert (der über alle Datenpunkte gemittelt würde):q x 0 y 0pqx0y0

yI{y=y0}logq(yx0)=logq(y0x0)

Hier ist die Indikatorfunktion, die 1 ist, wenn das Argument wahr ist, oder 0, wenn dies anders ist (dies ist, was die empirische Verteilung tut). Die Summe wird über den Satz möglicher Klassenbezeichnungen übernommen.I{}

Bei "weichen" Beschriftungen, wie Sie sie erwähnen, handelt es sich bei den Beschriftungen nicht mehr um Klassenidentitäten selbst, sondern um Wahrscheinlichkeiten über zwei mögliche Klassen. Aus diesem Grund können Sie den Standardausdruck nicht für den Protokollverlust verwenden. Das Konzept der Kreuzentropie gilt jedoch weiterhin. In diesem Fall scheint es sogar noch natürlicher zu sein.

Nennen wir die Klasse , die 0 oder 1 sein kann. Nehmen wir an, das Soft Label gibt die Wahrscheinlichkeit an, dass die Klasse 1 ist (bei entsprechender Eingabe ). Das Soft Label definiert also eine Wahrscheinlichkeitsverteilung:s ( x ) xys(x)x

p(yx)={s(x)If y=11s(x)If y=0

Der Klassifizierer gibt auch eine Verteilung über Klassen an, wenn folgende Eingabe erfolgt:

q(yx)={c(x)If y=11c(x)If y=0

Hier ist die geschätzte Wahrscheinlichkeit des Klassifikators, dass die Klasse 1 ist, wenn die Eingabe .xc(x)x

Die Aufgabe besteht nun darin, anhand der Kreuzentropie zu bestimmen, wie unterschiedlich diese beiden Verteilungen sind. Fügen Sie diese Ausdrücke für und in die obige Definition der Kreuzentropie ein. Die Summe wird über die Menge der möglichen Klassen :pq{0,1}

H(p,q)=p(y=0x)logq(y=0x)p(y=1x)logq(y=1x)=(1s(x))log(1c(x))s(x)logc(x)

Das ist der Ausdruck für einen einzelnen beobachteten Datenpunkt. Die Verlustfunktion wäre der Mittelwert über alle Datenpunkte. Dies kann natürlich auch auf die Klassifizierung mehrerer Klassen verallgemeinert werden.

user20160
quelle
3
Ich komme immer wieder auf die Klarheit dieser Antwort zurück.
Euro