Frage

Vielen Dank im Voraus für das Lesen meiner Frage!

Ich habe CNNs verwendet, um Text mit Keras und TF zu klassifizieren. Meine Daten sind Zeichenfolgen "Ich lese die Nachrichten" oder "Ich lese maschinelles Lernen News" und meine Etiketten sind Tags: Data Science, Reporter, Kind ...

Meine Probleme sind, dass jeder Text mehrere Etiketten anbringen kann. Wie soll ich mein Ziel so konstruieren, dass ich jeden dieser Mehrfachausgänge erfassen kann?

Description, Tag "I read the news", Child "I read the news", Reporter "I read machine learning news", Data Science "I read machine learning news", Reporter

War es hilfreich?

Lösung

CNNs (im Allgemeinen) verwenden Softmax als Aktivierungsfunktion in der letzten Schicht, die eine Wahrscheinlichkeitsverteilung über alle möglichen Etiketten ergibt. Sie verwenden eine Art von Verlustfunktion, um das CNN zu optimieren, um das "rechte" Etikett für ein neuartiges Beispiel zu generieren.

Die in diesem Fall verwendete Verlustfunktion ist der Querentropieverlust oder die KL-Divergenz, die misst, wie eng zwei Verteilungen sind. Für die Klassifizierung von Multiclass (anders als Ihr Fall, wobei jedes Eingabebuch nur eine Etikette haben kann) ist die gewünschte Verteilung (0, 0, ...., 1, ..., 0), wo 1 an der Position des tatsächlichen Etiketts erscheint . Die Verlustfunktion bestraft die Verteilung, die "weit" von dieser Verteilung entfernt ist.

Für Ihren Fall können Sie Ihre Ausgabe als (0, 0, 1, 0, ... 1, ..,) so codieren Verlustfunktion und optimieren Sie Ihr CNN, um den Verlust zu minimieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top