PG 520 Intelligence Service – gezielte Informationen aus dem Internet Seminarthema: Hidden Markov Model Von Wei CAI 09.10.2007
Überblick Markov Models Eins der Erweiterbaren Markov Models => Hidden Markov Model drei klassischen Probleme Forward und Backward-Algorithmus Viterbi-Algorithmus Baum-Welch-Algorithmus
Markov Models Prozeß bewegt von einem Zustand zu einem anderen, der eine Reihenfolge der Zustände erzeugt Markoveigenschaft: Wahrscheinlichkeit jedes folgenden Zustandes hängt nur von dem vorhergehenden Zustand ab Um Markov Modell zu definieren, müssen die folgenden Wahrscheinlichkeiten spezifiziert werden: die Menge der Zustände Übergangswahrscheinlichkeiten Anfangswahrscheinlichkeiten
Beispiel von Markov Model Regen Sonne 0.7 0.3 0.2 0.8 Zwei Zustände : ‘Regen’ and ‘Sonne’. Übergangswahrscheinlichkeiten : P(‘Regen’|‘Regen’)=0.3 , P(‘Sonne’|‘Regen’)=0.7 , P(‘Regen’|‘Sonne’)=0.2, P(‘Sonne’|‘Sonne’)=0.8 Anfangswahrscheinlichkeiten : P(‘Regen’)=0.4 , P(‘Sonne’)=0.6 . Set of states: Process moves from one state to another generating a sequence of states : Markov chain property: probability of each subsequent state depends only on what was the previous state: To define Markov model, the following probabilities have to be specified: transition probabilities and initial probabilities
Beispiel von Markov Model Nehmen wir an, dass wir eine Beobachtungsfolge der Zustände in unserem Beispiel errechnen möchten, {' Sonne', ,' Sonne',' Regen', Regen'}. P({‘Sonne’,’Sonne’,’Regen’, ’Regen’}| Wetter ) = P(‘Sonne’) P(‘Sonne’|’Sonne’) P(‘Regen’|’Sonne’) P(‘Regen’|’Regen’) = 0.6*0.8*0.2*0.3= 0.0288
Einführung Zustände Markovkette, Übergangswahrscheinlichkeiten durch stochastische Matrix beschrieben. Zustände selbst nicht sichtbar(d.h. „hidden“), erzeugen Beobachtungen. Markov eigenschaft
Einführung Eigenschaften Solide statistische Grundlage lernen möglich Modular, d.h. Gut erweiterbar, leicht zu verknüpfen Anwendungsgebiete Bioinformatik z.B. Gen-vorhersage, neurobiologie Datamining z.B. Named Entity Recognition Spracherkennung, Mustererkennung
Definition ein HMM als Fünftupel λ = (S,A,B,π,V) mit : die Menge der Zustände, die Zustandsvariable annehmen kann : das Ausgabealphabet, das die Beobachtungsfolge annehmen kann π : die Menge der anfangswahrscheinlichkeiten mit Wahrscheinlichkeit, dass der Startzustand ist
Definition : Zustandsübergangsmatrix, wobei die Wahrscheinlichkeit angibt, dass vom Zustand zum Zustand gewechselt wird : die Menge der Ausgabe-wahrscheinlichkeiten Wahrscheinlichkeit im Zustand die Beobachtung k zu machen
Realisierung einer Beobachtungs-folge Gegeben: N, M, A, B, π wähle Anfangszustand entsprechend Anfangszustandverteilung π Setze t = 1 Wähle entsprechend W-keitsverteilung der Beobachtungssymbole im Zustand , Wechsle in den nächsten Zustand entsprechend übergangswahrscheinlichkeitsverteilung für Zustand setze t = t + 1 , wiederhole Schritt 3, falls t < T, sonst endet dies Verfahren
Beispiel von HMM niedrig hoch 0.7 0.3 0.2 0.8 Regen Sonne 0.6 0.6 0.4
Beispiel von HMM Zwei Zustände : ‘niedrig’ oder ‘hoch’ Luftdruck Zwei Beobachtungen : ‘Regen’ and ‘Sonne’ Übergangswahrscheinlichkeiten : P(‘niedrig’|‘niedrig’)=0.3 , P(‘hoch’|‘niedrig’)=0.7 , P(‘niedrig’|‘hoch’)=0.2, P(‘hoch’|‘hoch’)=0.8 Ausgabewahrscheinlichkeiten : P(‘Regen’|‘niedrig’)=0.6 , P(‘Sonne’|‘niedrig’)=0.4 , P(‘Regen’|‘hoch’)=0.4 , P(‘Sonne’|‘hoch’)=0.3 anfangswahrscheinlichkeiten : P(‘niedrig’)=0.4 , P(‘hoch’)=0.6
Beispiel von HMM Nehmen wir alle mögliche Sequenze der versteckten Zustände an: P({‘Sonne’,’Regen’} ) = P({‘Sonne’,’Regen’} , {‘niedrig’,’niedrig’}) + P({‘Sonne’,’Regen’} , {‘niedrig’,’hoch’}) + P({‘Sonne’,’Regen’} , {‘hoch’,’niedrig’}) + P({‘Sonne’,’Regen’} , {‘hoch’,’hoch’}) Im ersten Term P({‘Sonne’,’Regen’} , {‘niedrig’,’niedrig’})= P({‘Sonne’,’Regen’} | {‘niedrig’,’niedrig’}) P({‘niedrig’,’niedrig’}) = P(‘Sonne’|’niedrig’)P(‘Regen’|’niedrig’) P(‘niedrig’)P(‘niedrig’|’niedrig’) = 0.4*0.6*0.4*0.3 = 0.01152
Problemstellungen gegeben Modellλ = (A,B,π) soll die wahrschlichkeit einer speziellen Ausgabesequenz bestimmt werden. gegeben Modellλ = (A,B,π) soll die wahrscheinlichste Sequenz der versteckten Zustände bestimmt werden, die eine vorgegebene Ausgabesequenz erzeugt hat. gegeben eine Beobachtungsfolge sollen die Übergangs/Ausgabe-Wahrscheinlichkeiten des HMM bestimmt werden, durch die am wahrscheinlichsten die Ausgabesequenz erzeugt wird. => Named Entity Recognition
Evaluationsproblem nutzt Forward-Backward Algorithms für effiziente Berechnung Die Forward-Variable , d.h. die Wahrscheinlichkeit zum Zeitpunkt t bei gegebener Beobachtung im Zustand zu sein, ist Die Forward-Variable wird zusammen mit der Backward-Variable für den Baum-Welch-Algorithmus zur Lösung des mit HMM gegebenen Lernproblems benötigt. :
Matrix von einem HMM s1 s2 si sN s1 s2 si sN s1 s2 sj sN s1 s2 si sN o1 ot ot+1 oT = Beobachtungen s1 s2 si sN s1 s2 si sN s1 s2 sj sN s1 s2 si sN a1j a2j aij aNj t = 1 t t+1 T
Forward Rekursion Initialisierung Induktion Terminierung :
Backward Rekursion Initialisierung Induktion Terminierung :
Decodierungsproblem Gesucht: optimale Zustandsfolge an der Beobachtungsfolge anpäßt, dann Anzahl der Korrekten Zustände maximieren Mit dem Viterbi-Algorithmus lösbar
Viterbi-Algorithmus s1 si sj sN a1j aij aNj Idee war, wenn optimalen Weg im qt= sj endet und über qt-1= si durchgegangen ist, soll die Zustandsfolge dann auch mit dem optimalen Weg im qt-1= si zum Schluss sein können. Induktion: s1 si sN sj aij aNj a1j q t-1 qt
Viterbi-Algorithmus Initialisierung Induktion Terminierung: optimaler Weg zum Zeitpunkt T endet Zustandsfolge zurückverfolgen.
Lernproblem Zu gegebener endlicher Beobachtungssequenz gibt es keinen optimalen Weg, die Modellparametern abzuschätzen. hier nutzt expectation-maximization Algorithmus(Baum-Welch-Algorithmus), dadurch local maximum von P(O | M) gefunden werden kann.
Baum-Welch-Algorithmus Methode zur Bestimmung neuer Parameter eines HMM
Baum-Welch-Algorithmus(E1) Im Zustand si zum Zeitpunkt t und im Zustand sj zum Zeitpunkt t+1, die Beobachtungsfolge o1, o2, ..., ot . t(i,j)= P(qt= si , qt+1= sj | o1 o2 ... oT) P(qt= si , qt+1= sj , o1 o2 ... oT) P(o1 o2 ... oT) t(i,j)= = P(qt= si , o1 o2 ... oT) aij bj (ot+1 ) P(ot+2 ... oT | qt+1= sj ) P(o1 o2 ... ok) t(i) aij bj (ot+1 ) t+1(j) i j t(i) aij bj (ot+1 ) t+1(j)
Baum-Welch-Algorithmus(E2) Definiert Variable t(i) als die W-keit im Zustand si zum Zeitpunkt t, die Beobachtungsfolge o1 o2 ... ot . t(i)= P(qt= si | o1, o2, ... ot) t(i)= P(qt= si , o1 o2 ... ot) P(o1 o2 ... ot) = t(i) t(i) i t(i) t(i)
Baum-Welch-Algorithmus(E3) berechnet t(i,j) = P(qt= si , qt+1= sj | o1 o2 ... oT) und t(i)= P(qk= si | o1 o2 ... oT) erwarteter Wert der Übergange von Zustand si nach Zustand sj = t t(i,j) erwarteter Wert der Übergänge ausserhalb des Zustands si = t t(i) erwarteter Wert des vm im Zustand si = t t(i) , also ot= vm erwartete Anfangswahrscheinlichkeit im Zustand si zum Zeitpunt t=1: 1(i) .
Baum-Welch-Algorithmus(Max) = k k(i,j) k k(i) aij k k(i,j) k,ok= vm k(i) bi(vm ) = i = (im Zustand si zum Zeitpunkt t=1) = 1(i).