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?


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.


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.


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


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


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
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.