Zusammenfassung
Hidden-Markov-Modelle (HMMs) sind viel einfacher als wiederkehrende neuronale Netze (RNNs) und beruhen auf starken Annahmen, die möglicherweise nicht immer zutreffen. Wenn die Annahmen sind wahr ist, dann können Sie eine bessere Leistung von einem HMM sehen , da es weniger heikel ist zum Laufen zu bringen.
Ein RNN kann eine bessere Leistung erzielen, wenn Sie über einen sehr großen Datensatz verfügen, da die zusätzliche Komplexität die Informationen in Ihren Daten besser nutzen kann. Dies kann auch dann zutreffen, wenn die HMM-Annahmen in Ihrem Fall zutreffen.
Schließlich sollten Sie sich nicht nur auf diese beiden Modelle für Ihre Sequenzaufgabe beschränken, da sich manchmal einfachere Regressionen (z. B. ARIMA) durchsetzen können und manchmal andere komplizierte Ansätze wie Convolutional Neural Networks die besten sind. (Ja, CNNs können genau wie RNNs auf einige Arten von Sequenzdaten angewendet werden.)
Wie immer ist der beste Weg, um herauszufinden, welches Modell am besten ist, die Modelle zu erstellen und die Leistung an einem durchgehaltenen Testsatz zu messen.
Starke Annahmen von HMMs
Zustandsübergänge hängen nur vom aktuellen Zustand ab, nicht von irgendetwas in der Vergangenheit.
Diese Annahme trifft in vielen Bereichen, mit denen ich vertraut bin, nicht zu. Stellen Sie sich beispielsweise vor, Sie versuchen für jede Minute des Tages vorherzusagen, ob eine Person wach war oder aufgrund von Bewegungsdaten schlief . Die Wahrscheinlichkeit, dass jemand vom Schlaf in den Wachzustand übergeht, steigt, je länger sich die Person im Schlafzustand befindet . Ein RNN könnte diese Beziehung theoretisch lernen und für eine höhere Vorhersagegenauigkeit nutzen.
Sie können versuchen, dies zu umgehen, indem Sie beispielsweise den vorherigen Status als Feature einfügen oder zusammengesetzte Status definieren. Die zusätzliche Komplexität erhöht jedoch nicht immer die Vorhersagegenauigkeit eines HMM und hilft definitiv nicht bei den Berechnungszeiten.
Sie müssen die Gesamtzahl der Zustände vordefinieren.
Zurück zum Schlafbeispiel: Es scheint, als gäbe es nur zwei Zustände, die uns wichtig sind. Selbst wenn es uns nur darum geht, Wach und Schlaf vorherzusagen , kann unser Modell davon profitieren, zusätzliche Zustände wie Fahren, Duschen usw. herauszufinden (z. B. kommt das Duschen normalerweise direkt vor dem Schlafengehen). Wiederum könnte ein RNN theoretisch eine solche Beziehung lernen, wenn genügend Beispiele dafür gezeigt würden.
Schwierigkeiten mit RNNs
Aus dem Obigen kann hervorgehen, dass RNNs immer überlegen sind. Ich sollte jedoch beachten, dass es schwierig sein kann, RNNs zum Laufen zu bringen, insbesondere wenn Ihr Datensatz klein oder Ihre Sequenzen sehr lang sind. Ich persönlich hatte Probleme, RNNs dazu zu bringen, einige meiner Daten zu trainieren, und ich habe den Verdacht, dass die meisten veröffentlichten RNN-Methoden / -Richtlinien auf Textdaten abgestimmt sind . Beim Versuch, RNNs für Nicht-Textdaten zu verwenden, musste ich eine umfassendere Suche nach Hyperparametern durchführen, als mir wichtig ist, um gute Ergebnisse für meine bestimmten Datensätze zu erzielen.
In einigen Fällen habe ich festgestellt, dass das beste Modell für sequentielle Daten tatsächlich ein UNet-Stil ist ( https://arxiv.org/pdf/1505.04597.pdf ). Das Faltungsmodell für neuronale Netze ist einfacher und schneller zu trainieren und in der Lage den vollständigen Kontext des Signals zu berücksichtigen.