- 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
- Rekursion
- Termination
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:
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.