Training eines Hidden-Markov-Modells, mehrere Trainingsinstanzen


18

Ich habe ein diskretes HMM gemäß diesem Tutorial implementiert: http://cs229.stanford.edu/section/cs229-hmm.pdf

In diesem und anderen Tutorials wird immer davon gesprochen, ein HMM mit einer bestimmten Beobachtungssequenz zu trainieren.

Was passiert, wenn ich mehrere Trainingssequenzen habe? Soll ich sie einfach nacheinander ausführen und das Modell nach dem anderen trainieren?

Eine andere Möglichkeit besteht darin, die Sequenzen zu einer zu verketten und zu trainieren, aber dann habe ich Zustandsübergänge vom Ende einer Sequenz zum Anfang der nächsten, die nicht real sind.


Siehe dieses Dokument pdfs.semanticscholar.org/4000/…. Obwohl sie die Ideen auf ein nicht-unabhängiges Beobachtungsszenario ausweiten, war es für mich ziemlich nützlich, den einfachen Fall zu verstehen, in dem Indep angenommen wird
Marc Torrellas

Die hmmlearnImplementierung von HMM hat bereits das Training von HMM mit mehreren Sequenzen unterstützt. Sehen Sie sich nur an, wie Sie HMM mit mehreren Sequenzen
trainieren

Antworten:


16

Es ist nicht richtig, jede Trainingsiteration mit einer anderen Sequenz zu verketten oder auszuführen. Der richtige Ansatz erfordert einige Erklärungen:

Normalerweise trainiert man ein HMM mit einem EM-Algorithmus. Dies besteht aus mehreren Iterationen. Jede Iteration hat einen "Schätz" - und einen "Maximierungs" -Schritt. Im Schritt "Maximieren" richten Sie jeden Beobachtungsvektor x an einem Zustand s in Ihrem Modell aus, sodass ein gewisses Wahrscheinlichkeitsmaß maximiert wird. Im Schritt "Schätzen" schätzen Sie für jeden Zustand s (a) die Parameter eines statistischen Modells für die mit s ausgerichteten x-Vektoren und (b) die Zustandsübergangswahrscheinlichkeiten. In der folgenden Iteration wird der Maximierungsschritt mit den aktualisierten statistischen Modellen usw. erneut ausgeführt. Der Prozess wird eine festgelegte Anzahl von Malen wiederholt, oder wenn das Wahrscheinlichkeitsmaß nicht mehr signifikant ansteigt (dh das Modell konvergiert zu einer stabilen Lösung). Schließlich wird ein HMM (zumindest bei der Spracherkennung) typischerweise einen festgelegten "Start" haben.

Wenn Sie also mehrere Trainingssequenzen haben, sollten Sie im Schätzungsschritt jede Sequenz so ausführen, dass der anfängliche Beobachtungsvektor mit dem Anfangszustand übereinstimmt. Auf diese Weise werden die Statistiken zu diesem Anfangszustand von den ersten Beobachtungen über alle Ihre Beobachtungssequenzen hinweg erfasst, und im Allgemeinen werden die Beobachtungsvektoren während jeder Sequenz an den wahrscheinlichsten Zuständen ausgerichtet. Sie würden den Maximierungsschritt (und zukünftige Iterationen) erst ausführen, nachdem alle Sequenzen für das Training bereitgestellt wurden. Bei der nächsten Iteration würden Sie genau dasselbe tun.

Indem Sie den Anfang jeder Beobachtungssequenz an den Anfangszustand anpassen, vermeiden Sie das Problem der Verkettung von Sequenzen, bei denen Sie Übergänge zwischen dem Ende einer Sequenz und dem Anfang der nächsten falsch modellieren würden. Und indem Sie alle Sequenzen in jeder Iteration verwenden, vermeiden Sie die Bereitstellung unterschiedlicher Sequenzen in jeder Iteration, was, wie der Antwortende feststellt, keine Konvergenz garantiert.


Erfordert diese Methode, dass jede Trainingssequenz gleich lang ist?
Nate

2
Nein, das tut es nicht. Normalerweise wird ein HMM so entworfen, dass Selbstschleifen (derselbe Zustand wird mehrmals hintereinander verwendet) und mehrere Zustände, in die übergegangen werden soll, zugelassen werden. Mit diesen Funktionen kann ein HMM Sequenzen unterschiedlicher Länge bewerten.
JeffM

4

Lawrence Rabiner beschreibt in diesem Tutorial einen mathematisch fundierten Ansatz aus IEEE 77 . Das Tutorial ist auch das 6. Kapitel des Buches Fundamentals of Speech Recognition von Rabiner und Juang.

RIA Davis et. al. bietet einige zusätzliche Vorschläge in diesem Papier .

Ich habe die Mathematik nicht gründlich durchgearbeitet, aber für mich klingt Rabiners Ansatz am vielversprechendsten, während Davis Ansatz die mathematische Grundlage zu vermissen scheint.


2

Wenn Sie der Mathematik folgen und zusätzliche Trainingsbeispiele hinzufügen, müssen Sie die Art und Weise, wie Sie die Wahrscheinlichkeit berechnen, neu berechnen. Anstatt über Dimensionen zu summieren, summieren Sie auch über Trainingsbeispiele.

Wenn Sie ein Modell nach dem anderen trainieren, gibt es keine Garantie dafür, dass die EM für jedes Trainingsbeispiel abgedeckt wird, und Sie werden mit schlechten Schätzungen enden.

In diesem Artikel erfahren Sie, wie Sie Ihren Code ändern, um weitere Beispiele zu unterstützen.

http://ntp-0.cs.ucl.ac.uk/staff/S.Prince/4C75/WellingKalmanFilter.pdf

Er hat auch einen Vortrag über HMM, aber die Logik ist ziemlich einfach.


1
Ich habe nicht wirklich gesehen, worauf Sie sich beziehen. Kannst du mir die richtige Richtung zeigen? Vielen Dank.
Ran

0

Dies ist eher ein Kommentar zu dem Artikel von RIA Davis, auf den Bittenus (oben) verweist . Ich muss Bittenus zustimmen, es gibt nicht viel mathematischen Hintergrund für die im Artikel vorgeschlagenen Techniken - es ist eher ein empirischer Vergleich.

In der Arbeit wird nur der Fall betrachtet, in dem das HMM eine eingeschränkte Topologie aufweist (Feed-Forward). (In meinem Fall habe ich eine Standardtopologie und die konsistentesten Ergebnisse durch Implementierung einer nicht gewichteten Mittelung aller mit Baum-Welch trainierten Modelle erzielt. Dieser Ansatz wird in der Veröffentlichung erwähnt, aber nur mit Randergebnissen angegeben.)

Eine andere Art von Modellmittelungstraining wurde von RIA Davis in einem Zeitschriftenartikel beschrieben und verwendet Vitterbi-Training anstelle von Baum-Welch- Vergleichen und Bewerten von HMM Ensemble-Trainingsalgorithmen unter Verwendung von Zug- und Test- und Bedingungsnummernkriterien . In diesem Artikel werden jedoch nur HMMs mit derselben eingeschränkten Feed-Forward-Topologie untersucht. (Ich plane, diese Methode zu untersuchen und werde diesen Beitrag mit meinen Ergebnissen aktualisieren.)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.