- Backward-Algorithmus
-
Der Backward-Algorithmus (auch Rückwärts-Algorithmus, Rückwärts-Prozedur) berechnet die Wahrscheinlichkeit, dass bei einem gegebenen Hidden-Markov-Modell M und einer beobachteten Symbolsequenz m das Modell sich zur Zeit i in dem Zustand s befand. Er verwendet die Programmiermethode der dynamischen Programmierung.
Inhaltsverzeichnis
Algorithmus
Gegeben ist ein HMM M = (Σ,Q,A,E,Π), wobei
- Σ das Alphabet der beobachtbaren Symbole bezeichnet
- Q die Menge der verborgenen Zustände bezeichnet
- A die Matrix der Zustandsübergangswahrscheinlichkeiten bezeichnet. Für
ist in der Zelle aij die Wahrscheinlichkeit für den Übergang von Zustand i nach j gespeichert. - E die Matrix der Emissionswahrscheinlichkeiten bezeichnet. In der Zelle
ist die Wahrscheinlichkeit gespeichert, dass im Zustand i das beobachtete Zeichen x ausgegeben wird. - Der Vektor Π für jeden Zustand die Wahrscheinlichkeit, dass in diesem Zustand gestartet wird, enthält.
Gesucht wird P(qi = s | m). Die Eingabe ist die beobachtete Symbolsequenz
, der Zeitpunkt i und der Zustand
.- Initialisierung
![B[s, L] = 1,\quad s\in Q](b/6cba2f27c12a390d8b00b83901aab35e.png)
- Rekursion
![B[s, i] = \sum_{t\in Q} e_{t m[i+1]} a_{st} B[t,i+1],\qquad s\in Q, 1\le i< |m|](6/0a6a9e00ef33f1e5c31fb0a7599d2b49.png)
- Termination
![P(q_i = s | n) = \frac{F[s,i] B[s,i]}{Pr(m)}](8/49850bb58408423cfd70ef635f472272.png)
F[s,i] wird mit dem Forward-Algorithmus berechnet (in dem dortigen Artikel als Forward-Variable
bezeichnet).Pr(m) ist die Kurzschreibweise für Pr(m | M). Dies kann entweder mit dem Forward-Algorithmus oder mit dem Backward-Algorithmus berechnet werden:
![Pr(m) = \sum_{t\in Q} B[t,1]\Pi_t e_{t m[1]}](2/e32d3d8526455297496b0c0ab9234a2e.png)
Komplexität
Die Tabelle V benötigt O( | m | | Q | ) Speicher. Für jede Zelle wird über | Q | Zeilen summiert. Also ist die Laufzeit in O( | m | | Q | 2).
Siehe auch
Literatur
- Durbin et al.: Biological sequence analysis. Cambridge, 2006, ISBN 0-521-62971-3, S. 59-60.
Wikimedia Foundation.