Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Sven Schuierer Universität Freiburg

Ähnliche Präsentationen


Präsentation zum Thema: "Sven Schuierer Universität Freiburg"—  Präsentation transkript:

1 Sven Schuierer Universität Freiburg
Hidden Markov Modelle Sven Schuierer Universität Freiburg

2 Übersicht Markov-Ketten CpG-Inseln Hidden Markov Modelle
Zustandsfolge dekodieren A posteriori Dekodieren Parameter schätzen

3 Übersicht - 2 Profil HMMs Zustandsfolge dekodieren
A posteriori Dekodieren Parameter schätzen

4 Motivation Markov Ketten
Wichtige Probleme in der Biologie: Finden von Alignments für lange Zeichenketten Erkennung von Mustern in Zeichenketten Beispiel: Signifikante Stellen im Genom (CpG-Inseln) Erkennung von CpG-Inseln. Entscheidung: Zeichenkette X enthält eine CpG-Insel

5 Markov-Ketten Definition: Eine Markov-Kette ist ein Tupel (Σ,Q,A) mit:
Σ - Alphabet Q - endliche Zustandmenge, jeder Zustand entspricht einem Zeichen aus Σ A - {as,t | s, t  Q}, mit as,t ≡ P(xi=t | xi-1=s) (Übergangswahrscheinlichkeiten)

6 Markov-Ketten X = (x0,…, xL) ist ein Zufallsvektor
jede Zufallsvariable xi ist nur abhängig von ihrem Vorgänger xi-1 ist, d.h:

7 Markov-Ketten Zwei neue Zustände: Wahrscheinlichkeitmenge:
s (Startzustand) e (Endzustand), Wahrscheinlichkeitmenge: A0 - {P(x0 = s) = a0,s} : Wahrscheinlichkeit für s  Q Startzustand

8 Beispiel: Markov Ketten
C G

9 Beispiel: Markov Ketten
C G s e

10 Beispiel: Markov Ketten
P(ATGA$)=as,A·aA,T ·aT,G·aG,A ·aA,e A T C G s e

11 Beispiel: Markov Ketten
C G s e P(X)=p(x1)·Π axi,xi+1, mit P(x0=s)=a0,s: P(X)=Π axi,xi+1 L-1 i=1 L-1 i=0

12 CpG Inseln CpG ist Nukleotidpaar CG CpG's sind selten im Genom
Kurze Teilfolgen (ca. 100 Nukleotide), in denen CpG's vermehrt vorkommen CpG-Inseln in wichtigen Teilen des Genoms (z.B. Promotoren vieler Gene)

13 Erkennung von CpG-Inseln
Gegeben X = (x0,…, xL)  Σ* wobei Σ={A,C,G,T} Frage Ist X eine CpG-Insel?

14 Erkennung von CpG-Inseln
Verfahren Zwei Markov-Ketten: eine Markov-Kette mit Wahrscheinlichkeiten für CpG-Insel (+), eine Markov-Kette für nicht-CpG-Insel (-) Score(X) = log = log Je grösser Score(X) ist, desto wahrscheinlicher ist X CpG-Insel (Log-likelihood test) P(X|CpG-Insel) P(X|nicht CpG-Insel) _______________ L i=1 Σ ____ axi-1,xi, + -

15 Lokalisieren von CpG-Inseln
Gegeben X = (x0,…, xL)  Σ* wobei Σ={A,C,G,T} Problem Finden von CpG-Inseln in langen DNA-Sequenzen Zwei Ansätze

16 Lokalisieren von CpG-Inseln
Ansatz 1 Sliding window ...ACGATACGATAAGTACGATGACCGT... Ähnlich zur Erkennung von CpG Inseln Problem: Laufzeit Grösse der Insel l nicht bekannt l L

17 Lokalisieren von CpG-Inseln
Ansatz 2 Zwei Markov Ketten in einem Modell → Hidden Markov Modell Wahrscheinlichkeit für Übergang zwischen „CpG-Insel“ und „nicht-CpG-Insel“

18 Hidden Markov Modell (HMM)
Definition Ein Hidden Markov Model (HMM) ist Tupel M = (Σ,Q,Θ) mit: Σ - Alphabet Q - Endliche Zustandsmenge Zustand q gibt Symbol a aus Σ mit Wahrscheinlichkeit eq(a) aus.

19 Hidden Markov Model (HMM)
Definition (II) Θ - Menge der Wahrscheinlichkeiten: A: Übergangswahrscheinlichkeiten A:{akl | k,l  Q}, akl = P(πi=l | πi-1=k) E: Ausgabewahrscheinlichkeiten E:{ek(b) | k  Q, b  Σ}, ek (b) = P(xi=b | πi=k)

20 HMM für CpG Inseln in DNA sequenz
T- C+ G+ T+

21 HMM Übergangswahrscheinlichkeiten
πi/πi+1 A+ C+ G+ T+ A- C- G- T- 0.180p 0.274p 0.426p 0.120p 0.171p 0.368p 0.188p 0.161p 0.339p 0.375p 0.125p 0.079p 0.355p 0.384p 0.182p 0.300q 0.205q 0.285q 0.210q 0.322q 0.298q 0.078q 0.302q 0.248q 0.246q 0.208q 0.177q 0.239q 0.292q p: P(bleibt in CpG-Insel) q: P(b. in nicht CpG-Insel)

22 Hidden Markov Model (HMM)
Weg Π = (π1,…,πL) ist eine Abfolge von Zuständen πi im Modell M Wahrscheinlichkeit für die Erzeugung der Sequenz X aus Weg Π: P(X,Π) = aπ0,π1·Π eπi (xi) ·aπi,πi+1 π0 = begin, πL+1 =end Gesucht: Weg Π, der X erzeugt hat. Π ist nicht direkt aus X ablesbar (hidden path) i=1 L

23 Hidden Markov Model (HMM)
x1 x2 x3 xn Beobachtbar π1 π2 π3 πn …. Versteckt

24 Dekodierungsproblem Gegeben HMM M = (Σ,Q,Θ), Sequenz X  Σ* Gesucht
Wahrschl. Pfad Π* = (π1,…,πL), der X erzeugt: Π* = arg max {P(X,Π)}  Lösung für CpG-Insel Problem Π

25 P(X,Π*) = max {vk(L)· ak,end }
Viterbi Algorithmus Definition Πk - beliebiger Weg, der im Zust. k endet vk(i) - Wahrsch. des für die Erzeugung von (x1, x2,…, ,xi) wahrscheinlichsten Weges Πk, der im Zust. k endet: vk(i) = max P(x1,…,xi,Π) Wahrschl. Weg Π* der X erzeugt P(X,Π*) = max {vk(L)· ak,end } {Π | Π i=k} k  Q

26 vl(i+1) = el (xi+1) · max {vk(i)· akl}
Viterbi Algorithmus Verfahren (Dynamische Programmierung) Initialisieren: vbegin(0) = 1 vk(0) = 0 für alle k ≠ begin Für jedes i=0,...L-1: vl(i+1) = el (xi+1) · max {vk(i)· akl} Damit: P(X,Π* ) = max {vk(L)· ak,end} kQ kQ

27 Viterbi Algorithmus Qi+1 Q1 Qi v1(i) a1l v2(i) a2l xi+1 el (xi+1)
vl(i+1) a|Q|l v|Q|(i)

28 Viterbi Algorithmus Bei Berechnung der vl(i+1) Zeiger auf das (ein) maximale(s) vk(i) Element speichern. Weg Π*: Folge Rückwärtszeigern

29 Viterbi Algorithmus Wertberechnung mit Logarithmus
Produkte von Wahrscheinlichkeiten können sehr klein werden Möglichkeit von Underflows Logarithmische Wertberechnung

30 vl(i+1) = log el(xi+1) + max {vk(i) + log(akl)}
Viterbi Algorithmus Verfahren (Wertberechnung mit Logarithmus) Initialisierung: vbegin(0) = 0 vk(0) = - ∞ für alle k ≠ begin Für jedes i=0,...L-1: vl(i+1) = log el(xi+1) + max {vk(i) + log(akl)} Damit ist: Score(X,Π* ) = max {vk(L) + log(ak,end)} kQ kQ

31 vl(i+1) = el(xi+1) · max {vk(i)· akl}
Viterbi Algorithmus Komplexität vl(i+1) = el(xi+1) · max {vk(i)· akl} Zeit O(L · |Q|2) Berechnung eines vk(i) mit O(|Q|) Operationen vk(i) berechnen k  Q, i ≤ L  L · |Q| Einträge Speicherbedarf O(L · |Q|) vk(i) speichern  kQ, i ≤ L IQ

32 Alignmentprofil ei(xi)
Definition Profil P der Länge L ist: Menge der Wahrscheinlichkeiten ei(b), dass Zeichen b an der i-ten Position vorkommt, für Alle b Σ, 1 ≤ i ≤ L Wahrscheinlichkeit der Zeichenkette X=(x1,...,xL) geg. Profil P : P(X|P)=Πei(xi) Wert eines lückenlosen Alignments von X an Profil P (log-likelihood): Score(X| P) = Σ log p(b) – Hintergrundhäufigkeit des Zeichen b L i=1 L ____ ei(xi) p(xi) i=l

33 Profile Alignment HMM “Match States“ M1,...,ML entsprechen Übereinstimmung von Zeichen der Zeichenkette mit Profilpositionen Zustände sequentiell verbunden ej(b) Ausgabe Wahrscheinlickeit von b im Zustand Mj ai,j+1=1, für 1≤ j ≤ L: Übergangswahrscheinlichk. Alignment trivial, da es immer genau einen Nachfolgezustand gibt

34 Profil Alignment M1 M2 M3

35 Profile Alignment Einfügezustände
I1,...,IL Einfügezustände Für alle b  Σ, eIj(b) = p(b) Affine Kostenfunktion einer Lücke der Länge h log(aMj, Ij) + log(aIj, Mj+1) + (h-1)·log(aIj, Ij) Kreieren einer Lücke Erweitern der Lücke

36 Profil Alignment l0 l1 l2 l3 M1 M2 M3

37 Profil Alignment Löschzustände
D1,...,DL Löschzustände Können kein Zeichen ausgeben: „silent“ Miteinander sequentiell verbunden Auch mit „Match States“ verbunden

38 Lokales Alignment D1 D2 D3 l0 l1 l2 l3 M1 M2 M3

39 Komplettes Profil HMM L Ebenen mit je drei Zuständen Mj, Ij, Dj
Endzuständen und Startzuständen Übergänge von I zu D oder umgekehrt sind unwahrscheinlich

40 Lokales Alignment Füge neue Zustände ein Ende M1 M2 M3 l0 l1 l2 l3 D1
Start Füge neue Zustände ein

41 Dekodieren Viterbi Algorithmus vj(i) – Wert des wahrschl. Pfades der (x1,...,xi) Präfix von aligniert und im Zustand Zj endet (Z  {M,I,D}) Viterbi Algorithmus funktioniert wie zuvor, neu: Höchstens drei Vorgängerzustände Di können kein Symbol ausgeben Z

42 Viterbi - Berechnung Verfahren vbegin(0)=0
vj(i)= log max vj-1(i-1) + log(aIj-1,Mj) vj(i)= log max vj(i-1) + log(aIj,Ij) vj-1(i-1) + log(aMj-1,Mj) M _____ eMj(xi) p(xi) M I vj-1(i-1) + log(aDj-1,Mj) D vj (i-1) + log(aMj,Ij) M _____ eIj(xi) p(xi) I I vj (i-1) + log(aDj,Ij) D

43 Viterbi - Berechnung Verfahren vj(i) = max vj(i-1) + log(aIj-1,Dj)
Score(X|Π*) = max vL(m) + log(aIL,end) vj-1(i) + log(aMj-1,Dj) M D I vj-1(i) + log(aDj-1,Dj) D vL(m) + log(aML,end)` M I vL(m) + log(aDL,end)` D

44 Viterbi - Berechnung Komplexität Es werden O(L·|X|) Werte berechnet
Jede Berechnung braucht O(1) Operationen (nur drei Vorgänger) O(L·|X|) Zeit und O(L·|X|) Platz

45 Parameter schätzen für HMMs
Gegeben X(1),...,X(n)  Σ* (Trainings-Sequenzen) Zeichenketten der Längen L(1),...,L(n), die vom gleichen HMM M generiert wurden Wahrscheinlichkeiten für Zeichenketten schreiben: P(X(1),...,X(n) |Θ) = Π P(X(i)|Θ) n i=1

46 Parameter schätzen für HMMs
Gesucht Maximieren des logarithmischen Werts: Θ* = arg max {Score(X(1),...,X(n) |Θ)} Wobei Score(X(1),...,X(n) |Θ) = log P(X(1),...,X(n) |Θ) = Σ log(P(X(i)|Θ)) Θ n i=1

47 Parameter schätzen für HMMs
Gegeben X(1),...,X(n)  Σ* (Trainings-Sequenzen) Zeichenketten der Längen L(1),...,L(n), die vom gleichen HMM M generiert wurden Wahrscheinlichkeiten für Zeichenketten schreiben: P(X(1),...,X(n) |Θ) = Π P(X(i)|Θ) n i=1

48 Parameter schätzen HMMs Zustandsreihenfolge bekannt
Verfahren Akl : # Übergänge von Zustand k zu l Ek(b) : # Ausgaben von b in Zustand k Man erhält akl = ,ek(b) = Maximum likelihood Schätzer Σ Akq q Q _____ Akl q Q Σ Ek(σ) _____ Ekl

49 Parameter schätzen HMMs Zustandsreihenfolge bekannt
Um WSK = 0 zu vermeiden, addiere zu Akl , Ek(b) einen Laplace-Korrektor rkl bzw rk(b) (z.B. 1)

50 Parameter schätzen HMMs Zustandsreihenfolge unbekannt
Wenn Zustandsreihenfolge unbekannt, ist das Problem, die optimalen Parameter für Θ zu finden NP-vollständig Benutze Baum-Welch-Algorithmus (Optimierungsverfahren) zum heuristischen Finden einer Lösung Notation fk (i), bk(i) sind Forward- bzw Backward-WSKn für die Zeichenketten X(j) (j) (j)

51 Parameter schätzen HMMs Baum-Welch Training
Verfahren Initialisierung: Wähle beliebige Werte für Θ und Erwartungswert: Wahrscheinlichkeit für Übergang von k nach l: P(πi=k, πi+1=l | X,Θ) = fk(i)·akl·el(xi+1)·bl(i+1) P(X) ___________________

52 Parameter schätzen HMMs Baum-Welch Training
Erwartungswerte für Übergänge: Akl = Σ · Σ fk(i) ·akl ·el(xi+1) ·bl(i+1) Ek(b) = Σ · Σ fk(i) ·bk(i) 3. Maximieren: Berechne Θ wie zuvor aus Akl und Ek(b) und ermittle Score(X(i),…, X(n)| Θ) Wiederhole 2. und 3. bis Score(X(i),…, X(n)| Θ) sich um weniger als ε verbessert P(X(j)) _____ 1 n L(j) (j) (j) (j) j=1 i=1 P(X(j)) _____ 1 n (j) (j) j=1 (j) {i|xi=b}

53 Parameter Schätzen bei Profil HMMs
Gegeben Multiples Alignment von X(1),...,X(n) Gesucht Werte akl, ek(b) für Profil HMM Idee Wie zuvor Werte aus Akl, Ek(b) berechnen akl= , ek(b) = Wie zuvor um bei kleinen TrainingsmengenWSKs von 0 zu vermeiden Laplace-Korrektor hinzuaddieren ____ Akl ΣAkq qQ ____ Ek(b) Σpk(σ) σΣ

54 Profil HMM Beispiel D1 D2 D3 D4 D5 D7 D6 l1 l2 l3 l4 l5 l7 l6 Start
ATTAAA AGTTCA GTTACA TCTCGC GCCACA CCTATC A TTA AA AGTT CA GTTA CA TCTCG C GCCA CA CCT ATC Beispiel D1 D2 D3 D4 D5 D7 D6 l1 l2 l3 l4 l5 l7 l6 A: B: G: T: Start End

55 Multiple Alignments Gegeben Menge S von Zeichenketten X(1),...,X(n)
Gesucht Multiples Alignment Idee Benutze Profil HMM Zwei Fälle Profil HMM bekannt Profil HMM unbekannt

56 Multiple Alignments Profil HMM bekannt
Aligniere jede Zeichenkette X(i) einzeln mit Profil HMM Bilde aus erhaltenen Alignments Multiples Alignment

57 Multiple Alignments Profil HMM unbekannt Wähle Länge L des Profil HMM
Initialisiere Ausgabegangs und Übergangs Wahrscheinlichkeiten Trainiere das HMM mit Baum-Welch Algorithmus auf gesamter Trainingsmenge Man erhält nun ein Multiple Alignment aus dem entstandenen Profil HMM, wenn man wie auf Folie zuvor verfährt

58 A posteriori Dekodierenproblem
Gegeben HMM M = (Σ,Q,Θ), Zeichenkette X Gesucht Wahrscheinlichkeit des Zustandes k als i-ter Zustand, für alle i {1,…,L}, für alle k  Q P(πi=k | X) Zur Berechnung werden zwei weitere Wahrscheinlichkeiten genutzt: Forward- und Backward-Wahrscheinlichkeiten

59 A posteriori Dekodierung Forward Algorithmus
Definition fk (i) = P(x1 ,... , xi , πi = k), Wahrscheinlichkeit, dass man die Zeichenkette X=(x1,...,xi) ausgibt und im Zustand πi = k endet

60 A posteriori Dekodierung Forward algorithm
Verfahren Initialisierung: fbegin(0) = 1 fk(0) = 0 für alle k ≠ begin Für alle i {1,...,L-1} Für alle l  Q fl (i+1) = el(xi+1) · Σ fk(i) · akl Damit ist: P (X) = Σ fk(L) · ak,end k Q k Q

61 A posteriori Dekodierung Backward algorithm
Definition bk(i) = P(xi+1,... ,xL | πi = k), Wahrscheinlichkeit, dass man in Schritt i in Zustand πi = k ist und dann die Zeichenkette X=(xi+1,...,xL) ausgibt

62 A posteriori Dekodierung Backward algorithm
Verfahren Initialisierung: bk(L) = ak,end  k  Q Für alle i {1,...,L-1} für alle k  Q bk(i) = Σ akl · el(xi+1) · bl(i+1) Damit ist: P(X) = Σ abegin,l · el(x1) · bl(1) l Q l Q

63 A posteriori Dekodierung
Komplexität Berechnung der fk (i) ´ s und bk(i) ´ s in O(L · |Q|2) Zeit Platz O(L · |Q|)

64 A posteriori Dekodierung Backward algorithm
Logarithmische Wertberechnung Wegen Summe nicht trivial → verwende Exponentialfunktion fbegin(0) = 1 fk(0) = -∞ für alle k ≠ begin fl (i+1) = log[el(xi+1)] + log[Σ akl · exp(fk(i))] P(X) = log Σ ak,end · exp( fk(L)) kQ k Q

65 A posteriori Dekodierung
Mit fk (i) und bk(i) kann man die Werte von P(πi=k|X) berechnen Abhängigheit nur vom letzten Zustand: P(X,πi=k) =P(x1,…, xi,πi=k)·P(xi+1,…, xL|x1,…, xi,πi=k) =P(x1,…, xi,πi=k)·P(xi+1,…, xL|πi=k) =fk(i)·bk(i)

66 A posteriori Dekodierung
Mit der Definition der bedingten Wahrscheinlichkeit: P(πi=k|X) = = P(X) kann mit der forward oder backward Wahrscheinlichkeit berechnet werden, z.B. P(X) = Σ abegin,l· el(x1)·bl(1) P(X,πi=k) P(X) ________ _______ fk(i)·bk(i), P(X), lQ

67 A posteriori Dekodierung Anwendung
Nützlich, wenn verschiedene Wege fast die gleichen Wahrscheinlichkeiten haben Definition Πi**=arg max {P(Πi=k|X)} Aber möglicherweise sind einige Übergänge nicht gültig k

68 A posteriori Dekodierung Anwendung
Andere Eigenschaften: definiere Funktion g(k) und betrachte: G(i|X) = Σ {P(Π i=k|X) · g(k)} Wenn g(k)=1 für Teilmenge S und g(k)=0 in anderen Fall, G(i|X) ist die Wahrscheinlichkeit dass x aus Zustand S erzeugt wird → A posteriori Wahrscheinlichkeit für CpG Insel k

69 Profil HMMS Forward Algorithmus
Verfahren fbegin(0) = 1 fj (i) = eMj(xi)·[ fj-1(i-1) · aMj-1,Mj + fj-1(i-1) · aIj-1,Mj + fj-1(i-1) · aDj-1,Mj] fj (i) = eIj(xi)·[ fj (i-1) · aMj-1,Ij + fj (i-1) · aIj-1, Ij + fj (i-1) · aDj-1, Ij] fj (i) = fj-1(i) · aMj-1, Dj + fj-1(i) · aIj-1, Dj + fj-1(i) · aDj-1, Dj M M I D I M I D D M I D

70 Profil HMMs A posteriori Dekodierung
Finden echt Werte für Übergangwahrsch. Und Ausgangwahrsch. Für einen Profil HMM Gegeben X = (x1,...,xm), Zj  {Mj, Ij , Dj} Forward Algorithmus fj (i) = P(x1,... ,xi, πi = Zj), WSK, dass man die Zeichen (x1,...,xi) ausgibt und im Zustand Zj endet Backward Algorithmus bj (i) = P(xi+1,... ,xm | Zj), WSK, dass man die Zeichen (xi+1,...,xm) ausgeben wird, wenn man in Zustand Zj ist Z Z

71 Backward Algorithmus Verfahren bL(m) = aML,end
bj (i) = bj+1(i+1) · aZj,Mj+1 · eMj+1(xi+1) + bj (i+1) · aZj,Ij · eIj(xi+1) + bj+1(i) · aZj,Dj+1 für alle Z  {M, I, D}  Q Z Z M I D

72 Baum-Welch AZk,Ik = Σ fk (i) aZk,Ik eIk(xi+1) bk(i+1)
Schätzen der WSK nach Baum-Welch Erwartete Ausgabe WSK für Z  {M, I} EZk(a) = Σ fk (i) bk (i) Erwartete Übergangs WSK für Z  {M, I, D} AZk,Mk+1 = Σ fk (i) aZk,Mk+1 eMk+1(xi+1) bk+1(i+1) AZk,Ik = Σ fk (i) aZk,Ik eIk(xi+1) bk(i+1) AZk,Dk+1 = Σ fk (i) aZk,Dk+1 bk+1(i) ____ 1 p(X) Z Z i|xi=a ____ 1 p(X) Z M i ____ 1 p(X) Z I i ____ 1 p(X) i Z D

73 Casino Problem Beispiel Fair Loaded aFF = 0.95 aFL = 0.05 aLF = 0.1
1: 1/10 2: 1/10 3: 1/10 4: 1/10 5: 1/10 6: 1/2 0.05 0.1 0.95 0.9 1: 1/6 2: 1/6 3: 1/6 4: 1/6 5: 1/6 6: 1/6 Fair Loaded aFF = 0.95 aFL = 0.05 aLF = 0.1 aLL = 0.9 1≤i≤6 eF(i) = 1/6 1≤i≤5 eL(i) = 0.1 eL(6) = 0.5

74 Viterbi Algorithmus Diagramm


Herunterladen ppt "Sven Schuierer Universität Freiburg"

Ähnliche Präsentationen


Google-Anzeigen