Maschinelles Lernen: Soll ich für binäre Vorhersagen eine kategoriale Kreuzentropie oder einen binären Kreuzentropieverlust verwenden?

36

Zunächst wurde mir klar, dass ich, wenn ich binäre Vorhersagen durchführen muss, mindestens zwei Klassen durch Ausführen einer One-Hot-Codierung erstellen muss. Ist das richtig? Gilt die binäre Kreuzentropie jedoch nur für Vorhersagen mit nur einer Klasse? Wenn ich einen kategorialen Cross-Entropy-Verlust verwenden würde, der normalerweise in den meisten Bibliotheken (wie TensorFlow) zu finden ist, gäbe es dann einen signifikanten Unterschied?

Was sind die genauen Unterschiede zwischen einer kategorialen und einer binären Kreuzentropie? Ich habe noch nie eine Implementierung der binären Kreuzentropie in TensorFlow gesehen, daher dachte ich, dass die kategoriale genauso gut funktioniert.

infomin101
quelle
1
Beispiel für eine binäre Klassifizierung: machinelearningmastery.com/… und eine Klassifizierung für mehrere Klassen: machinelearningmastery.com/…
user1367204
@ user1367204: Der Link zur Mehrklassenklassifizierung leitet zur Binärklassifizierung weiter. Es sollte dieser sein .
user3389669

Antworten:

51

Der binomiale Kreuzentropieverlust ist ein Spezialfall des multinomialen Kreuzentropieverlusts für .m=2

L(θ)=1ni=1n[yilog(pi)+(1yi)log(1pi)]=1ni=1nj=1myijlog(pij)

Wobei Stichproben / Beobachtungen indiziert und Klassen indiziert und die Stichprobenbezeichnung ist (binär für LSH, Ein-Hot-Vektor auf der RHS) und ist die Vorhersage für eine Stichprobe.ijypij(0,1):jpij=1i,j

Sycorax sagt Reinstate Monica
quelle
3
Bedeutet das, dass ich, solange ich 2 Klassen für einen multinomialen Kreuzentropieverlust verwende, im Wesentlichen einen binären Kreuzentropieverlust verwende?
infomin101
2
@leekwotsin yup
Sycorax sagt Reinstate Monica
17

Binäre Kreuzentropie ist für Mehrfachmarkierungsklassifizierungen vorgesehen, wohingegen kategoriale Kreuzentropie für Mehrfachklassifizierungen vorgesehen ist, bei denen jedes Beispiel zu einer einzelnen Klasse gehört.

Henok S Mengistu
quelle
3
Was ist die Rechtfertigung für Ihre Aussage? Warum würden Sie keine kategoriale Kreuzentropie für die Klassifizierung mit mehreren Labels verwenden?
Michal
Was ist, wenn es mehrere Labels gibt, die jeweils mehrere Klassen enthalten?
Slizb
1
Genau das wollte ich hören, aber nicht das, was mein Chef hören möchte. Ein bisschen Erklärung wäre so großartig gewesen.
Aditya
2

Ich denke, es gibt drei Arten von Klassifizierungsaufgaben:

  1. Binäre Klassifizierung: zwei exklusive Klassen
  2. Mehrklasseneinteilung: mehr als zwei exklusive Klassen
  3. Multi-Label-Klassifizierung: Nur nicht exklusive Klassen

Daraus können wir sagen

  • Im Fall von (1) müssen Sie die binäre Kreuzentropie verwenden.
  • Im Fall von (2) müssen Sie eine kategoriale Kreuzentropie verwenden.
  • Im Fall von (3) müssen Sie die binäre Kreuzentropie verwenden. Sie können den Multi-Label-Klassifikator einfach als einen Multi-Separate-Binärklassifikator betrachten. Wenn Sie hier 10 Klassen haben, haben Sie 10 Binärklassifikatoren separat. Jeder Binärklassifikator wird unabhängig trainiert. Auf diese Weise können wir für jede Probe mehrere Etiketten erstellen. Wenn Sie sicherstellen möchten, dass mindestens ein Label erfasst werden muss, können Sie das Label mit der niedrigsten Klassifizierungsverlustfunktion oder mit anderen Metriken auswählen.

Ich möchte betonen, dass die Klassifizierung mehrerer Klassen nicht mit der Klassifizierung mehrerer Etiketten vergleichbar ist ! Multi-Label-Klassifikator leiht eine Idee aus dem binären Klassifikator!

jeongmin.cha
quelle