RNN kann zur Vorhersage oder Sequenz-zu-Sequenz-Zuordnung verwendet werden. Aber wie kann RNN zur Klassifizierung verwendet werden? Ich meine, wir geben einer ganzen Sequenz ein Etikett.
RNN kann zur Vorhersage oder Sequenz-zu-Sequenz-Zuordnung verwendet werden. Aber wie kann RNN zur Klassifizierung verwendet werden? Ich meine, wir geben einer ganzen Sequenz ein Etikett.
Antworten:
Man kann RNN verwenden, um mehrere Eingaben einer einzelnen Eingabe (Bezeichnung) zuzuordnen, wie in der folgenden Abbildung ( Quelle ) dargestellt:
Jedes Rechteck ist ein Vektor und Pfeile repräsentieren Funktionen (zB Matrixmultiplikation). Eingangsvektoren sind rot, Ausgangsvektoren sind blau und grüne Vektoren halten den Zustand des RNN (mehr dazu in Kürze). Von links nach rechts: (1) Vanille-Verarbeitungsmodus ohne RNN, von einer Eingabe mit fester Größe zu einer Ausgabe mit fester Größe (z. B. Bildklassifizierung). (2) Sequenzausgabe (z. B. Bildunterschriften nehmen ein Bild auf und geben einen Wortsatz aus). (3) Sequenzeingabe (z. B. Stimmungsanalyse, bei der ein Satz als positiv oder negativ eingestuft wird). (4) Sequenzeingabe und Sequenzausgabe (z. B. maschinelle Übersetzung: Eine RNN liest einen Satz auf Englisch und gibt dann einen Satz auf Französisch aus). (5) Synchronisierte Sequenzeingabe und -ausgabe (z. B. Videoklassifizierung, bei der wir jedes Bild des Videos kennzeichnen möchten).
Im Falle eines einfachen RNN geben Sie die gesamte Sequenz in Ihr Netzwerk ein und geben Sie die Klassenbezeichnung am letzten Sequenzelement aus (siehe dieses Dokument und die Referenzen dort für ein frühes Beispiel für diesen Ansatz). In der Trainingsphase können wir Fehler in der Zeit vom letzten Sequenzelement bis zum Start der Sequenz zurückpropagieren. Im Allgemeinen unterscheidet sich dies nicht von dem Problem der RNN-Sequenzbeschriftung, bei dem wir nur einigen Elementen der Sequenz Beschriftungen zuweisen müssen (oder alle anderen Elemente als SONSTIGES beschriftet sind).