Welche sequentiellen Eingabeprobleme eignen sich jeweils am besten? Bestimmt die Eingabedimensionalität, welche besser zu Ihnen passt? Sind Probleme, die "längeren Speicher" erfordern, besser für ein LSTM-RNN geeignet, während Probleme mit zyklischen Eingabemustern (Börse, Wetter) von einem HMM leichter gelöst werden können?
Es scheint, dass es viele Überschneidungen gibt; Ich bin gespannt, welche subtilen Unterschiede zwischen den beiden bestehen.
time-series
neural-networks
hidden-markov-model
rnn
Wiedergutmachung
quelle
quelle
Antworten:
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.
quelle
Ich fand diese Frage, weil ich mich auch über ihre Ähnlichkeiten und Unterschiede wunderte. Ich denke, es ist sehr wichtig festzustellen, dass Hidden Markov Models (HMMs) keine Ein- und Ausgänge im engeren Sinne haben.
HMMs sind sogenannte generative Modelle. Wenn Sie ein HMM haben, können Sie einige Beobachtungen so wie sie sind generieren. Dies unterscheidet sich grundlegend von RNNs, da Sie selbst dann Eingaben benötigen, wenn Sie über eine geschulte RNN verfügen.
Ein praktisches Beispiel, bei dem dies wichtig ist, ist die Sprachsynthese. Die zugrunde liegenden Hidden Markov-Zustände sind Telefone und die emittierten Wahrscheinlichkeitsereignisse sind die Akustik. Wenn Sie ein Wortmodell trainiert haben, können Sie so viele verschiedene Realisierungen davon generieren, wie Sie möchten.
Bei RNNs müssen Sie jedoch mindestens einige Eingabesamen bereitstellen, um Ihre Ausgabe zu erhalten. Sie könnten argumentieren, dass Sie in HMMs auch eine Erstverteilung bereitstellen müssen, daher ist dies ähnlich. Wenn wir uns jedoch an das Beispiel der Sprachsynthese halten, liegt dies nicht daran, dass die anfängliche Verteilung festgelegt wird (beginnend immer mit den ersten Telefonen des Wortes).
Mit RNNs erhalten Sie eine deterministische Ausgabesequenz für ein trainiertes Modell, wenn Sie immer denselben Eingabesamen verwenden. Bei HMM ist dies nicht der Fall, da die Übergänge und Emissionen immer aus einer Wahrscheinlichkeitsverteilung entnommen werden.
quelle