Was sind die Unterschiede zwischen dem Baum-Welch-Algorithmus und dem Viterbi-Training?


18

Ich benutze derzeit Viterbi-Training für ein Bildsegmentierungsproblem. Ich wollte wissen, welche Vor- und Nachteile die Verwendung des Baum-Welch-Algorithmus anstelle des Viterbi-Trainings hat.


3
Was genau verstehen Sie unter Viterbi-Training?
Margulies

2
In meinem Problem habe ich eine Reihe von reellwertigen Daten, die ich als HMM modelliere (insbesondere eine Mischung mehrerer Dichtefunktionen mit jeweils unbekannten Parametern). Im Moment gehe ich davon aus, dass ich die Zustandsübergangswahrscheinlichkeiten kenne. Was ich mit Viterbi Trainig meine, ist der folgende Algorithmus. 1) Jedem Datenpunkt willkürlich einen Zustand zuweisen (Initialisierung) 2) MLE der Dichtefunktionsparameter durchführen. 3) Schätzen Sie den Zustand für jeden Punkt neu (kann mit Viterbi Alg durchgeführt werden). 4) Fahren Sie mit Schritt 2 fort und wiederholen Sie den Vorgang, sofern die Stoppkriterien nicht erfüllt sind.
Digital Gal

Antworten:


21

Der Baum-Welch-Algorithmus und der Viterbi-Algorithmus berechnen verschiedene Dinge.

Wenn Sie die Übergangswahrscheinlichkeiten für den verborgenen Teil Ihres Modells und die Emissionswahrscheinlichkeiten für die sichtbaren Ausgaben Ihres Modells kennen, erhalten Sie mit dem Viterbi-Algorithmus die wahrscheinlich vollständige Folge von verborgenen Zuständen, die sowohl von Ihren Ausgaben als auch von Ihrer Modellspezifikation abhängig sind.

Der Baum-Welch-Algorithmus gibt Ihnen sowohl die wahrscheinlichsten versteckten Übergangswahrscheinlichkeiten als auch die wahrscheinlichste Menge von Emissionswahrscheinlichkeiten an, wenn nur die beobachteten Zustände des Modells (und normalerweise eine Obergrenze für die Anzahl der versteckten Zustände) angegeben werden. Sie erhalten auch die "punktweisen" Höchstwahrscheinlichkeitspunkte in den versteckten Zuständen, die sich häufig geringfügig von der einzelnen versteckten Sequenz unterscheiden, die insgesamt am wahrscheinlichsten ist.

Wenn Sie Ihr Modell kennen und nur die latenten Zustände möchten, gibt es keinen Grund, den Baum-Welch-Algorithmus zu verwenden. Wenn Sie Ihr Modell nicht kennen, können Sie den Viterbi-Algorithmus nicht verwenden.

Bearbeitet, um hinzuzufügen: Siehe Peter Smits Kommentar; Die Nomenklatur weist einige Überschneidungen / Unklarheiten auf. Ein wenig herumstöbern führte mich zu einem Kapitel von Luis Javier Rodrıguez und Ines Torres in "Mustererkennung und Bildanalyse" (ISBN 978-3-540-40217-6, S. 845-857), in dem die Kompromisse zwischen Geschwindigkeit und Genauigkeit besprochen wurden die beiden Algorithmen.

Kurz gesagt, der Baum-Welch-Algorithmus ist im Wesentlichen der Expectation-Maximization (EM) -Algorithmus, der auf ein HMM angewendet wird. Als strenger EM-Algorithmus konvergieren Sie garantiert zu mindestens einem lokalen Maximum, und für unimodale Probleme finden Sie den MLE. Es sind jedoch zwei Durchläufe Ihrer Daten für jeden Schritt erforderlich, und die Komplexität wird in Bezug auf die Länge der Daten und die Anzahl der Trainingsmuster sehr groß. Sie haben jedoch die volle bedingte Wahrscheinlichkeit für Ihre verborgenen Parameter.

Der Viterbi-Trainingsalgorithmus (im Gegensatz zum "Viterbi-Algorithmus") approximiert den MLE, um auf Kosten der Genauigkeit einen Geschwindigkeitsgewinn zu erzielen. Es segmentiert die Daten und wendet dann den Viterbi-Algorithmus (wie ich ihn verstanden habe) an, um die wahrscheinlichste Zustandssequenz in dem Segment zu erhalten, und verwendet dann diese wahrscheinlichste Zustandssequenz, um die verborgenen Parameter neu zu schätzen. Dies gibt im Gegensatz zum Baum-Welch-Algorithmus nicht die volle bedingte Wahrscheinlichkeit für die verborgenen Parameter an und führt zu einer Verringerung der Genauigkeit, während erhebliche Rechenzeit eingespart wird (das Kapitel gibt 1 bis 2 Größenordnungen an).


7
Wenn ich recht habe, verwechseln Sie Viterbi-Training und Viterbi-Dekodierung.
Peter Smit

1
Du hast recht. Mir war nicht bewusst, dass es eine Prozedur gab, die nur den Viterbi-Algorithmus verwendete, um auch die Übergangswahrscheinlichkeiten zu berechnen. Es sieht - bei weiterer Lektüre - so aus, als gäbe es eine gewisse Überlappung der Nomenklatur zwischen der diskreten Zeit- / Discrete-State-HMM-Analyse und der diskreten Zeit- / Continuous-State-Analyse unter Verwendung von Gaußschen Mischungsverteilungen. Meine Antwort bezieht sich auf das DTDS-HMM-Setup und nicht auf das Gemischmodell-Setup.
Rich

@Rich: Könnten Sie mich auf etwas zugängliches Material (wie Rabiners Original-HMM-Tutorial) zum Viterbi-Training hinweisen?
Jacob

4
@Jacob Viterbi Training geht auch durch den Namen segmentale K-Means finden Sie in diesem Papier von Juang und Rabiner.
Alt

1
@Anoldmaninthesea. Ein Blick auf die Wahrscheinlichkeiten zwischen den Epochen ist die übliche Methode zur Beurteilung der Konvergenz (die Wahrscheinlichkeit sollte sich bei jeder Epoche erhöhen und dann aufhören, wenn Sie ein lokales Maximum erreicht haben). Sie können auch frühzeitig aufhören, indem Sie die Wahrscheinlichkeit überwachen, dass Daten während der EM nicht verwendet werden.
Alt

0

Vorwärts-Rückwärts wird verwendet, wenn Sie "unsichtbare Dinge" zählen möchten. Zum Beispiel, wenn Sie EM verwenden, um ein Modell über nicht überwachte Daten zu verbessern. Ich denke, dass Petrovs Papier ein Beispiel ist. In der Technik, an die ich denke, trainieren Sie zuerst ein Modell mit annotierten Daten mit ziemlich groben Annotationen (z. B. ein Tag für 'Verb'). Dann teilen Sie die Wahrscheinlichkeitsmasse für diesen Zustand willkürlich in zwei leicht ungleiche Größen auf und trainieren erneut, indem Sie vorwärts und rückwärts laufen, um die Wahrscheinlichkeit zu maximieren, indem Sie die Masse zwischen den beiden Zuständen neu verteilen.

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.