Wie trainiere ich ein verstecktes Markov-Modell mit Gaußscher Mischung?

7

Ich möchte ein Hidden-Markov-Modell (HMM) mit kontinuierlichen Beobachtungen erstellen, die als Gaußsche Gemische modelliert sind ( Gaußsches Mischungsmodell = GMM).

Ich verstehe den Trainingsprozess so, dass er in Schritten durchgeführt werden sollte.2

1) Trainieren Sie zuerst die GMM-Parameter mithilfe der Erwartungsmaximierung (EM).

2) Trainieren Sie die HMM-Parameter mit EM.

Ist dieser Trainingsprozess korrekt oder fehlt mir etwas?

notArefill
quelle
3
Ich arbeite seit einigen Jahren an HMMs und für mich ist das beste Tutorial, das es je gab, um das Training von HMMs mit Gaußschen Gemischen zu verstehen, hier: web.stanford.edu/class/ee378b/papers/bilmes-em.pdf Gleichungen werden Schritt für Schritt erklärt. ;)
Eskapp
Übrigens ist github.com/hmmlearn/hmmlearn eine sehr schöne (vielleicht die einzige) Bibliothek, die einfach zu bedienen ist, HMMs mit GMM-Emissionen unterstützt und über eine angemessene Dokumentation verfügt. Wenn Sie die Implementierung aus irgendeinem Grund selbst durchführen möchten, können Sie in die Dateien eintauchen.
DimP
4
@Eskapp Das verknüpfte Tutorial wird durch Stanfords Login blockiert. Gibt es eine andere Möglichkeit, es zu lesen?
aepound

Antworten:

6

In der Referenz unten sehe ich, dass das Training Folgendes beinhaltet:

  1. Initialisieren Sie die HMM- und GMM-Parameter (zufällig oder unter Verwendung vorheriger Annahmen).

    Wiederholen Sie dann Folgendes, bis die Konvergenzkriterien erfüllt sind:

  2. Führen Sie einen Vorwärts- und Rückwärtsdurchlauf durch, um die mit den Trainingssequenzen und den Parametern des GMM-HMM verbundenen Wahrscheinlichkeiten zu ermitteln.

  3. Berechnen Sie die HMM- und GMM-Parameter neu - den Mittelwert, die Kovarianzen und die Mischungskoeffizienten jeder Mischungskomponente in jedem Zustand sowie die Übergangswahrscheinlichkeiten zwischen den Zuständen - alle berechnet anhand der in Schritt 1 gefundenen Wahrscheinlichkeiten.

GMM-HMM-Folien der Universität Edinburgh (Google: Hidden Markov Models und Gaussian Mixture Models, oder versuchen Sie diesen Link ). Diese Referenz enthält viele Details und schlägt vor, diese Berechnungen in der Protokolldomäne durchzuführen.

Alex
quelle
2

Dieses Papier [1] ist ein absoluter Klassiker und hat die gesamte HMM-Maschinerie für Gaußsche Mischung für Sie ausgelegt. Ich denke, es ist fair zu sagen, dass Rabiner in den 1980er Jahren den ersten wichtigen Schritt in der Spracherkennung mit GMM gemacht hat.

[1] Rabiner, LR (1989). Ein Tutorial zu versteckten Markov-Modellen und ausgewählten Anwendungen in der Spracherkennung. Proceedings of the IEEE, 77 (2), 257-286.

horaceT
quelle
2
Ich bin mir dieses Papiers bewusst und habe es gelesen. Aber was Sie geschrieben haben, ist keine Antwort, Sie verweisen mich nur auf Papier und beantworten meine Frage nicht. Auch meine Frage betraf nicht Rabiner, daher lautet dieser Satz: "Ich denke, es ist fair zu sagen, dass Rabiner in den 1980er Jahren den ersten wichtigen Schritt in der Spracherkennung mit GMM gemacht hat.") Ist für meine Frage irrelevant.
notArefill
1

pomegranate ist eine weitere Python-Bibliothek, die GMM und HMM noch bessere Dokumente als hmmlearn bietet. Derzeit bereite ich den Transfer von hmmlearn dazu vor. http://pomegranate.readthedocs.io/en/latest/GeneralMixtureModel.html

Jimmy Jiang
quelle
Ich sehe keine Unterstützung für kontinuierliche Beobachtungen in diesem Paket. Unterstützt es kontinuierliche Beobachtungen? Ich habe einige Pakete gefunden, die Gaußsche HMMs ausführen, und einige, die HMMs mit kontinuierlicher Beobachtung ausführen, aber ich kann kein Paket finden, das beides gleichzeitig ausführt.
Danny
-1

Angenommen, Ihr HMM verwendet die Gaußsche Mischung. Für die Parameterschätzung führen Sie einen Vorwärts- und Rückwärtsdurchlauf durch und aktualisieren die Parameter. Der Unterschied besteht darin, dass Sie eine normale PDF-Mischung als Beobachtungswahrscheinlichkeit für einen bestimmten Zustand angeben müssen. Für die Übergangswahrscheinlichkeitsschätzung tun Sie dies wie bei einem diskreten Beobachtungs-HMM. Um jedoch den Mittelwert, die Varianz (oder die Kovarianzmatrix für den multivariaten Fall) und die Mischungsgewichte neu zu schätzen, führen Sie eine neue Formel für die Wahrscheinlichkeit ein, im Zustand zu sein i zum Zeitpunkt t, wobei die m-te Mischungskomponente für die Beobachtung bei t verantwortlich ist, die einfach normalisiertes Alpha * Beta * normalisiertes c * N (o, u, var) Alpha und Beta ist, sind die Vorwärts- und Rückwärtsformeln in Baum-Welch und c = m-tes Mischungsgewicht im Zustand i, o = Beobachtung bei t, u = Mittelwert oder mittlerer Vektor, var = Varianz oder Kovarianzmatrix

Kevvy Kim
quelle
Eigentlich hat der Link von einem Antwortenden Alex eine ziemlich gute Beschreibung
Kevvy Kim
Könnten Sie näher erläutern, wie dies zu den vorherigen Antworten beiträgt?
Mdewey
Wenn Sie trainieren, indem Sie die Parameter neu schätzen, dann gibt die Seite 18 des Links, den Alex verknüpft hat, die Gleichungen an. Ich hätte die Gleichungen hier angeben können, aber da ich nicht weiß, wie man Formeln formuliert, fällt es mir schwer, sie in Worten zu erklären.
Kevvy Kim