1 / 33

Algorithms for H idden M arkov M odels milidiu@inf.puc-rio.br

Algorithms for H idden M arkov M odels milidiu@inf.puc-rio.br. PUC-Rio University. Agenda. Algorithms Forward Modified Forward Backward Forward-Backward. Language Model. HMM Structure P(x1, x2, x3, x4, o1, o2, o3, o4)

halona
Download Presentation

Algorithms for H idden M arkov M odels milidiu@inf.puc-rio.br

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Algorithms for Hidden Markov Models milidiu@inf.puc-rio.br PUC-Rio University

  2. Agenda • Algorithms • Forward • Modified Forward • Backward • Forward-Backward

  3. Language Model • HMM Structure P(x1, x2, x3, x4, o1, o2, o3, o4) P(x4 | x3).P(x3 | x2).P(x2 | x1).P(x1).P(o1| x1).P(o2| x2).P(o3| x3).P(o4| x4) X1 X2 X3 X4 O1 O2 O3 O4

  4. Language Model • Problem P(o1, o2, o3, o4) = ? P(x1). P(x2 | x1). P(x3 | x2). P(x4 | x3). P(o1| x1).P(o2| x2).P(o3| x3).P(o4| x4) X1 X2 X3 X4 O1 O2 O3 O4

  5. Language Model • Problem P(o1, o2, o3, o4) = ? P(x1). P(x2 | x1). P(x3 | x2). P(x4 | x3). P(o1| x1).P(o2| x2).P(o3| x3).P(o4| x4) • Trivial Solution x1 x2 x3 x4P(x1, x2, x3, x4, o1, o2, o3, o4) N 4

  6. Chain P(x1, x2, x3, x4, o1, o2, o3, o4) P(x1). P(x2 | x1). P(x3 | x2). P(x4 | x3). P(o1| x1).P(o2| x2).P(o3| x3).P(o4| x4)

  7. Subchain P(x1, x2, x3, o1, o2, o3) x4 o4P(x1). P(x2 | x1). P(x3 | x2). P(x4 | x3). P(o1| x1).P(o2| x2).P(o3| x3).P(o4| x4) P(x1).P(x2 | x1).P(x3 | x2).P(o1| x1).P(o2| x2).P(o3| x3). x4 P(x4 | x3).o4P(o4| x4) P(x1).P(x2 | x1).P(x3 | x2).P(o1| x1).P(o2| x2).P(o3| x3). x4 P(x4 | x3).1 P(x1).P(x2 | x1).P(x3 | x2).P(o1| x1).P(o2| x2).P(o3| x3).1

  8. Subchain P(x1, x2, x3, o1, o2, o3) P(x1).P(x2 | x1).P(x3 | x2).P(o1| x1).P(o2| x2).P(o3| x3)

  9. Structural Decomposition P(x1, x2, x3, x4, o1, o2, o3, o4) = P(x4 | x3). P(x1).P(x2 | x1).P(x3 | x2).P(o1| x1).P(o2| x2).P(o3| x3). P(o4| x4)

  10. Structural Decomposition P(x1, x2, x3, x4, o1, o2, o3, o4) = P(x4 | x3). P(x1, x2, x3, o1, o2, o3). P(o4| x4)

  11. Structural Decomposition chain P(x1, x2, x3, x4, o1, o2, o3, o4) = P(x1, x2, x3, o1, o2, o3) . P(x4 | x3) . P(o4| x4) subchain transition emission

  12. Factoring Trick P(o1, o2, o3, o4) x4 x3 x2 x1P(x1, x2, x3, x4, o1, o2, o3, o4) x4 x3 x2 x1P(x1,x2,x3,o1,o2,o3).P(x4 | x3).P(o4| x4) x4P(o4| x4) x3P(x4 | x3)x2 x1P(x1,x2,x3,o1,o2,o3) x4P(o4| x4) x3P(x4 | x3).P(x3, o1, o2, o3)

  13. Recursive Factoring Trick P(x3, o1, o2, o3) x2 x1P(x1, x2, x3, o1, o2, o3) x2 x1P(x1, x2, o1, o2).P(x3 | x2).P(o3| x3) P(o3| x3) x2P(x3 | x2)x1P(x1, x2,o1, o2) P(o3| x3) x2P(x3 | x2).P(x2, o1, o2)

  14. Recursive Factoring Trick P(x2, o1, o2) x1P(x1, x2,o1, o2) x1P(x1, o1).P(x2 | x1).P(o2| x2) P(o2| x2) x1P(x2 | x1)P(x1,o1)

  15. Recursive Factoring Trick P(x1, o1) = P(o1| x1).P(x1)

  16. Factoring Trick • P(x1, o1) x1 = 1..N = P(o1| x1).P(x1) • P(x2, o1, o2) x2 = 1..N = P(o2| x2) x1P(x2 | x1)P(x1,o1) • P(x3, o1, o2, o3) x3 = 1..N = P(o3| x3) x2P(x3 | x2).P(x2, o1, o2) • P(x4, o1, o2, o3, o4) x4 = 1..N = P(o4| x4) x3P(x4 | x3).P(x3, o1, o2, o3) • P(o1, o2, o3, o4) = x4P(x4, o1, o2, o3, o4)

  17. Xk Dynamic Programming N.n P(o1, … , ok, xk) = P(o1, … , ok-1, xk-1).P(xk | xk-1 ).P(ok | xk)

  18. Xk-1 Advance & Emit P(o(k), xk) = P(o(k-1), xk-1) . P(xk | xk-1 ) .P(ok | xk)

  19. Xn Final P(o1, … , on) = P(o1, … , on, xn)

  20.   X(k-1) X(k-1) X(k-2)   Xk-1 Xk-1 Correctness • P(o(k), xk) = P(o(k), x(k-1), xk) = P(o(k), x(k-1))P(xk | xk-1).P(ok | xk) = P(ok | xk). P(xk | xk-1).P(o(k) , x(k-2), xk-2) = P(ok | xk). P(xk | xk-1) . P(o(k) , xk-2)

  21.  j i Forward Procedure k(i)  P(o(k), Xk=i) i = 1,…,N 1(i)  P(o1| X1=i).P(X1=i) k = 2,…,n i = 1,…,N k(i)  P(ok| Xk=i). P(Xk=i| Xk-1=j).k-1(j) P(o(n))  n(i) N.n

  22. Modified Recursive Factoring Trick P(x3, o1, o2) x2 x1o3P(x1, x2, x3, o1, o2, o3) x2 x1P(x1, x2, o1, o2).P(x3 | x2) o3P(o3|x3) x2P(x3 | x2)x1P(o2|x2).P(x1, x2,o1) x2P(x3 | x2). P(o2|x2).P(x2, o1)

  23. Modified Factoring Trick • P(x1) x1 = 1..N • P(x2, o1) x2 = 1..N = x1P(x2 | x1) P(o1| x1)P(x1) • P(x3, o1, o2) x3 = 1..N = x2P(x3 | x2) P(o3| x3)P(x2, o1) • P(x4, o1, o2, o3) x4 = 1..N = x3P(x4 | x3) P(o4| x4)P(x3, o1, o2) • P(o1, o2, o3, o4) = x4P(o4| x4)P(x4, o1, o2, o3)

  24. j Modified Forward Procedure *k(i)  P(o(k), Xk+1=i) i = 1,…,N *0(i)  P(X1=i) k = 1,…,n-1 i = 1,…,N *k(i)  P(ok| Xk=j).P(Xk+1=i| Xk=j). *k-1(j) P(o(n))  P(on| Xn=j). *n-1(j) N.n  j

  25. Backward Procedure • Use Reverse Chain • Apply Modified Forward Procedure • Convert transition probabilities to direct chain

  26. Modified Reverse Factoring Trick P(x3, o4, o5) x4 x5o3P(x3, x4, x5, o3, o4, o5) x4 x5P(x4, x5, o4, o5).P(x3 | x4) o3P(o3|x3) x4P(x3 | x4)x5P(o4|x4).P(x5, x4,o5) x4P(x3 | x2). P(o4|x4).P(x4, o5)

  27. Modified Reverse Factoring Trick P(x3, o4, o5) / P(x3) x4 x5o3P(x3, x4, x5, o3, o4, o5) / P(x3) x4 x5P(x4, x5, o4, o5).P(x3 | x4) o3P(o3|x3)/P(x3) x4 [P(x3 | x4)/P(x3)] x5P(o4|x4).P(x5, x4,o5) x4 [P(x4 | x3)/P(x4)]. P(o4|x4).P(x4, o5) x4P(x4 | x3). P(o4|x4).P(x4, o5) / P(x4)

  28. Modified Reverse Factoring Trick P(o4, o5 | x3) x4 x5o3P(x3, x4, x5, o3, o4, o5) / P(x3) x4 x5P(x4, x5, o4, o5).P(x3 | x4) o3P(o3|x3)/P(x3) x4 [P(x3 | x4)/P(x3)] x5P(o4|x4).P(x5, x4,o5) x4 [P(x4 | x3)/P(x4)]. P(o4|x4).P(x4, o5) x4P(x4 | x3). P(o4|x4).P(o5 | x4)

  29.  j j Backward Procedure k(i)  P(o(k+1)| Xk=i) i = 1,…,N n(i)  1 k = n,…,1 i = 1,…,N k(i)  P(Xk+1=j| Xk=i).P(ok+1|Xk+1=j).k+1(j) P(o(n))  P(X1=j).P(o1|X1=j).1(j) N.n

  30. Correctness • Reverse Chain • Modified forward procedure • *k(i)  P(o(k+1), Xk=i) • Probabilities from thedirect chain k(i) = P(o(k+1), Xk=i) / P(Xk=i) • k(i)  P(o(k+1)| Xk=i)

  31. Correctness k(i)  P(ok+1,…,on| Xk=i) k(i) = P(ok+1,…,on, Xk=i) / P(Xk=i) k(i) = xk+1 P(ok+1| Xk+1=j)P(Xk=i| Xk+1=j)*k+1(j) /P(Xk=i) k(i) = xk+1 P(ok+1| Xk+1=j) [P(Xk=i| Xk+1=j)/P(Xk=i)] *k+1(j) k(i) = xk+1 P(ok+1| Xk+1=j) [P(Xk+1=j| Xk=i)/P(Xk+1=j)] *k+1(j) k(i) = xk+1 P(ok+1| Xk+1=j) P(Xk+1=j| Xk=i) *k+1(j) / P(Xk+1=j) k(i) = xk+1 P(ok+1| Xk+1=j) P(Xk+1=j| Xk=i) k+1(j)

  32. i Combined Procedure P(o(n)) k(i).k(i)

  33. Summary • Divide & Conquer • Recursion elimination • Dynamic programming • Four procedures • Forward • Modified Forward • Backward • Combined

More Related