Tìm hiểu mô hình Markov ẩn.doc

12
Tìm hiểu mô hình Markov ẩn Phần 1: Tổng quan về mô hình Markov ẩn Mô hình Markov được ứng dụng nhiều trong lĩnh vực nhận dạng giọng nói, trong lĩnh vực sinh học như nhận dạng gene hoặc phân loại protein; xử lý tín hiệu, xử lý hình ảnh và các ứng dụng khác liên quan đến chuỗi chuyển tiếp hoặc kết hợp các thành phần, dữ kiện. Trong lĩnh vực điện, mô hình Markov được sử dụng như là 1 công cụ dự báo giá điện năng với các dữ liệu liên quan. Một trong những thông số đặc trưng của mô hình Markov là các trạng thái ‘state’. Tùy thuộc vào việc xây dựng mô hình Markov với các đối tượng khác nhau thì sẽ có các ‘state’ khác nhau. Mô hình Markov có những hạn chế trong nhiều ứng dụng như các giá trị chuyển ‘state’ là các giá trị áp đặt sẵn, không thay đổi trong khi đối tượng, dữ liệu quan sát luôn biến đổi theo thời gian. Để khắc phục tình trạng này, chúng ta sử dụng mô hình Hidden Markov (Hidden Markov Model – HMM). Mô hình Markov ẩn (tiếng Anh là Hidden Markov Model - HMM) là mô hình thống kê trong đó hệ thống được mô hình hóa được cho là một quá trình Markov với các tham số không biết trước và nhiệm vụ là xác định các tham số ẩn từ các tham số quan sát được, dựa trên sự thừa nhận này. Các tham số của mô hình được rút ra sau đó có thể sử dụng để thực hiện các phân tích kế tiếp, ví dụ cho các ứng dụng nhận dạng mẫu. Trong một mô hình Markov điển hình, trạng thái được quan sát trực tiếp bởi người quan sát, và vì vậy các xác suất chuyển tiếp trạng thái là các tham số duy nhất. Mô hình Markov ẩn thêm vào các đầu ra: mỗi trạng thái có xác suất phân bổ trên các biểu hiện đầu ra có thể. Vì vậy, nhìn vào dãy của các biểu hiện được sinh ra bởi HMM không trực tiếp chỉ ra dãy các trạng thái. Nhiều bài toán thực tế được biểu diễn dưới mối quan hệ nhân quả, nhưng chỉ quan sát được phần quả còn phần nhân thì ẩn. • HMM dùng để giải quyết các bài toán xác

Transcript of Tìm hiểu mô hình Markov ẩn.doc

Page 1: Tìm hiểu mô hình Markov ẩn.doc

Tìm hiểu mô hình Markov ẩn

Phần 1: Tổng quan về mô hình Markov ẩnMô hình Markov được ứng dụng nhiều trong lĩnh vực nhận dạng giọng nói, trong lĩnh vực sinh học như nhận dạng gene hoặc phân loại protein; xử lý tín hiệu, xử lý hình ảnh và các ứng dụng khác liên quan đến chuỗi chuyển tiếp hoặc kết hợp các thành phần, dữ kiện. Trong lĩnh vực điện, mô hình Markov được sử dụng như là 1 công cụ dự báo giá điện năng với các dữ liệu liên quan.Một trong những thông số đặc trưng của mô hình Markov là các trạng thái ‘state’. Tùy thuộc vào việc xây dựng mô hình Markov với các đối tượng khác nhau thì sẽ có các ‘state’ khác nhau. Mô hình Markov có những hạn chế trong nhiều ứng dụng như các giá trị chuyển ‘state’ là các giá trị áp đặt sẵn, không thay đổi trong khi đối tượng, dữ liệu quan sát luôn biến đổi theo thời gian.Để khắc phục tình trạng này, chúng ta sử dụng mô hình Hidden Markov (Hidden Markov Model – HMM).

Mô hình Markov ẩn (tiếng Anh là Hidden Markov Model - HMM) là mô hình thống kê trong đó hệ thống được mô hình hóa được cho là một quá trình Markov với các tham số không biết trước và nhiệm vụ là xác định các tham số ẩn từ các tham số quan sát được, dựa trên sự thừa nhận này. Các tham số của mô hình được rút ra sau đó có thể sử dụng để thực hiện các phân tích kế tiếp, ví dụ cho các ứng dụng nhận dạng mẫu.Trong một mô hình Markov điển hình, trạng thái được quan sát trực tiếp bởi người quan sát, và vì vậy các xác suất chuyển tiếp trạng thái là các tham số duy nhất.

Mô hình Markov ẩn thêm vào các đầu ra: mỗi trạng thái có xác suất phân bổ trên các biểu hiện đầu ra có thể. Vì vậy, nhìn vào dãy của các biểu hiện được sinh ra bởi HMM không trực tiếp chỉ ra dãy các trạng thái.Nhiều bài toán thực tế được biểu diễn dướimối quan hệ nhân quả, nhưng chỉ quan sát được phầnquả còn phần nhân thì ẩn.• HMM dùng để giải quyết các bài toán xác lập mối nhân quả cục bộ(Fragmentation,Classification, Similarity Search).

Một mô hình Markov ẩn bao gồm các thông số sau:

1) Số trạng thái ‘state’ N có trong mô hình và các trạng thái này là ẩn. Các trạng thái này sẽ được biểu thị tương ứng với giá trị S=(S1, …., SN) gọi là tập tất cả các trạng thái ẩn.2) M, Số symbol trên mỗi dãy quan sát trong một ‘State’. Các symbol này sẽ được biểu thị tương ứng bởi các giá trị V=(V¬1, …, VM) gọi là tập tất cả các ký hiệu quan sát được.3) A= [aij] xác suất chuyển trạng được xác định theo biểu thức sau:

Trong trường hợp đặc biệt, khi các trạng thái là như nhau in a single step , ta có aij > 0 đối với tất cả các giá trị i và j. Trong một vài loại hình khác của HMM, ta chi aij = 0 cho

Page 2: Tìm hiểu mô hình Markov ẩn.doc

một vài căp (i,j). 4) B=[bij] xác suất nhả ký hiệu.

5) p= [pi] xác suất khởi trạng

6) qt - Trạng thái ở thời điểm t.7) Ot= (ký hiệu) Quan sát tại thời điểm t.Cho các giá trị N, M, A, B và π thích hợp, mô hình HMM sẽ cho ra một chuỗi quan sát như sau:O = O1 O2 … OT(Trong đó, mỗi giá trị Ot là một trong số các symbol của tập các ký hiệu quan sát được V và T là số lượng chuỗi quan sát.) - Chọn trạng thái khởi đầu là q1 = S1 tuỳ thuộc vào xác xuất khởi trạng π.- Cho t = 1- Chọn Ot = Vk theo xác suất nhả ký tự bi(k) của tập các trạng thái ẩn Si - Và chuyển sang trạng thái mới qt+1 = Sj tuỳ theo xác suất chuyển trạng aij của tập các trạng thái ẩn.- Thiết lập t = t +1 và sau đó quay lại thực hiện lần lược như bước (3). Nếu t < T thì kết thúc thuật toán..Ứng dụng của mô hình Markov ẩn: Mô hình này được ứng dụng nhiều trong các lĩnh vực như:• Nhận dạng tiếng nói.• Nhận dạng chữ viết tay.• Xử lý ngôn ngữ thống kê.• Dịch máy.• Tin sinh học:– Khớp xấp xỉ nhiều chuỗi.– Tìm Motif.- Tìm kiếm tương tự.

Thuộc tính MarkovMột dãy trạng thái ngẫu nhiên gọi là có thuộc tính Markov nếu như xác suất chuyển sang trạng thái tiếp theo chỉ phụ thuộc vào trạng thái hiện tại và quá khứ.– Dãy chuyển trạng quan sát được → Xích Markov.– Dãy chuyển trạng không quan sát được → Mô hình Markov ẩn.

Mô hình Markov ẩn – HMMDưới đây là mô hình đồ thị chuyển trạng. Trong đó:• Các node là các trạng thái.• Các cung là các chuyển trạng có gắn xác suất.• Các node “nhả” các ký hiệu theo xác suất.• Các kỹ hiệu “nhả” quan sát được trong khi dãy chuyển trạng là ẩn.

Page 3: Tìm hiểu mô hình Markov ẩn.doc

Xét ví dụ: Dự báo thời tiết

Trường hợp đặt ra rằng: bạn đang bị khoá ở trong một căn phòng trong một vài ngày và bạn được hỏi thông báo về thông tin thời tiết. Chỉ một manh mối nhỏ để bạn biết được thời tiết bên ngoài như thế nào là dựa vào người trông nhà thường mang thức ăn đến có mang theo dù hay không. Hãy cho xác suất các trường hợp như sau:

Xác suấtNắng 0.1Mưa 0.8Sương mù 0.3

Biểu thức Markov cho dự đoán thời tiết khi bạn chưa bị khoá trong phòng là:

Hiện thời, thông tin về thời tiết là ẩn đối với bạn. Chúng ta sẽ dùng định luật Bayes:

Trong đó ui là TRUE nếu người trông nhà đến có mang dù vào ngày i và là FALSE nếu người trông nhà không mang dù. Xác suất P(w1, …, w¬n) được xác định giống mô hình Markov và xác suất P(u1,…,un) là xác suất đã từng thấy người trông nhà mang dù (ví dụ: TRUE,FALSE,TRUE). Xác suất P(u1, …, un|w1,…,wn) có thể được ước lược thành nếu giả sử các giá trị wi, ui độc lập với các giá trị uj và wj với i≠j.

Xác định thông tin

Giả sử rằng ngày bạn đang ở trong phòng là nắng. Ngày tiếp theo, người trông nhà mang chiếc ô đến phòng. Giả sử xác suất các ngày trước đó người trông nhà cũng mang theo chiếc ô là 0.5 vậy xác suất ngày tiếp theo tròi mưa sẽ được tính như sau:

Giả sử ngày bạn ở trong khòng là ngày nắng, người trông nhà mang theo ô vào ngày thứ 2 nhưng ngày thứ 3 lại không mang ô. Lại giả sử xác suất ngày người trông nhà mang ô là trời mưa là 0.5 vậy xác suất ngày thứ 3 trời sương mù sẽ được xác định như sau:

Page 4: Tìm hiểu mô hình Markov ẩn.doc

….

Nhận dạng tiếng nói

Đối với vấn đề nhận dạng tiếng nói, ý tưởng cơ bản là tìm ra một chuỗi các từ cho một vài âm

Trong đó, w là chuỗi các từ £ ngôn ngữ bạn dung và y là hệ thống các vector âm điệu.Phương trình xác định giọng nói theo định luật Bayer được xác định như sau:

Đối với một single speech input, giá trị âm tiết (y) sẽ là một hằng số và từ đó P(y) cũng là một hằng số. Từ đó, ta chỉ cần xác định giá trị

Âm của từTrước tiên , chúng ta xác định xác suất của các âm tiết có mặt trong một từ đã cho. Lưư ý sẽ có rất nhiều vector âm tiết để hình thành nên một từ. Dưới đây là một mô hình của từ ‘of’

Ví dụ: nhận dạng tiếng nói

Ba bài toán cơ bản của HMM

Bài toán thứ nhất: (The Evaluation Problem)Cho dãy quan sát O=o1o2...oT và HMM - l hãy xác định xác suất sinh dãy từ mô hình – P(O| l).

Bài toán thứ hai: (The Decoding Problem)Cho dãy quan sát O=o1o2...oT và HMM - l hãy xác định dãy chuyển trạng Q = q1q2...qT cho xác suất sinh O lớn nhất (optimal path).

Bài toán thứ 3: (The Learning Problem)Hiệu chỉnh HMM - l để cực đại hoá xác suất sinh O – P(O| l) (tìm mô hình “khớp” dãy quan sát nhất.

Page 5: Tìm hiểu mô hình Markov ẩn.doc

Trong đó, P(O | T) là xác xuất được tạo ra bởi mô hình của dãy O. Mô hình này dựa vào kiến trúc ( Số lượng trạng thái) và các thông số λ = (ei(.), aij) của nó, vì vậy P(O| T) được xem như là P(O| λ ) và P(O) khi kiến trúc và thông số tương ứng là khác nhau. P(O, λ | T), P(O, λ | λ) and P(O, λ) là giống nhau khi cả hai thông số và kiến trúc đều mặc định. Tuy nhiện trong bài toán thứ 3, chúng ta luôn ghi P(O| λ) để nhấn mạnh rằng chúng ta đang tìm giá trị λ * để P(O| λ) đạt giá trị lớn nhất.Giải quyết bài toánBài toán thứ nhất: Mục đích của bài toán này là xác định xác suất của một chuỗi quan sát O = O1 O2 … OT Cho một chuỗi trạng thái cố định Q = q1 q2 … qTTrong đó, q1 là trạng thái khởi điểm. Xác suất của chuỗi quan sát O của chuỗi trạng thái Q ởi trên sẽ là:

Giả sử các trạng thái là đọc lập với nhau trong chuỗi quan sát. Ta sẽ có:

Xác suất của một chuỗi trạng thái có thể được viết như sau:

Xác suất cần tìm được xác định:

Xác suất của chuỗi quan sát O được tính bằng cách cộng tất cả các xác suất của chuỗi trạng thái thu dược như sau:

Ứng với thòi gian khởi điểm t1, ta có trạng thái q1 từ đó, ta xác định được xác suất khởi trạng π1. Như vậy, kết quả ta thu được symbol O1 và xác suất nhả ký hiệu bq1(O1).Tiếp tục thực hiện tương tự như thế đến thời điểm (t - 1), ta sẽ thu được symbol OT và xác suất nhả ký hiệu bqT(OT).Bài toán thứ 2Không giống bài toán thứ nhất, có nhiều cách để giải quyết bài toán thứ 2. Để giải quyết vấn đề này, ta đưa ra một biến với

Biểu thức trên có thể được viết lại dưới dạng:

Trong đó: αt(i) biểu thị cho chuỗi quan sát O1 O2 .. Ot ở trạng thái Si vào thời điểm t, trong khi đó βt(i) biểu thị cho phần còn lại của chuỗi quan sát Ot+1 Ot+2 ... OT ở trạng thái Si vào thời điểm t. Công thức cơ bản sẽ được viết lại:

Từ đây, ta xác định được trạng thái qt ở thời gian t như sau:

Bài toán thứ 3:Bài toán thứ 3 này khó hơn rất nhiều so với hai bài toán trước. Yêu cầu của HMM là xác định một phương thức điều khiển các thông số (A, B, π) của mô hình nhằm cực đại xác suất của chuỗi quan sát. Hiện nay chưa có giải quyết nào được đưa ra để phân tích giải quyết cực đại xác suất của chuỗi quan sát. Trên thực tế, khi cho bất kỳ chuỗi quan sát dài vô hạn ta không có cách nào để ước lượng tối ưu các thông số của mô hình được. Tuy

Page 6: Tìm hiểu mô hình Markov ẩn.doc

nhiên, chúng ta có thể chọn giá trị các thông số λ = (A, B, π) sao cho giá trị P(O|λ) là cực đại cục bộ bằng cách sử dụng giải thuật lặp như thuật toán Baum-Welch.Để giải bài toán này, gọi ξt(i,j) là xác suất của chuỗi ký tự ẩn St tại thời điểm t và chuỗi ký tự ẩn Sj tại thời điểm t +1. Ta có:

Chuỗi sự kiện từ công thức trên được mô tả như hình dưới đây

ξt(i,j) có thể được viết lại dưới dạng sau:

Trong đó, thành phần mẫu số chính là P=(qt = Si , qt+1 = Sj, O|λ). Ở trên, chúng ta đã chọn γt(i) là xác suất của chuỗi ký tự ẩn Si tại thời điểm t. γt(i) và ξt(i,j) quan hệ với nhau qua công thức:

Nếu chúng ta cộng tất cả các giá trị γt(i) ứng với từng thời điểm t, chúng ta sẽ xác định được một ẩn số đấy chính là số lần xuất hiện trạng thái ẩn Si trong suốt quảng thời gian khảo sát.Cũng tương tự như trên, việc cộng tất cả các giá trị ξt(i,j) trong khoảng thời gian t ( từ t = 1 cho đến t = T-1 sẽ xác định được số lần chuyển từ trạng thái Si sang Sj.Sừ dụng công thức ở trên, ta có thể đưa ra một phương thức tái ước tính các thông số của mô hình HMM . Công thức thích hợp cho việc tái ước tính các thông số π, A và B như sau:

Nếu chúng ta chọn được các thông số λ = (A, B, π) cho mô hình HMM, và sử dụng các thông số này để tính giá trị vế phải của hai biểu thức trên và chúng ta xác định mô hình tái ước tính ở vế trái. Và như thế, chúng ta tìm được mô hình có chuỗi quan sát rất giống với chuỗi được tạo ra.Cũng theo phương thức ở trên, chúng ta thực hiện lặp lại các công đoạn như trên đói với mô hình thay vì mô hình λ và thực hiện công việc tái ước tính như trên. Và như vaỵa, ta đã tính được các giá trị xác suất của chuỗi quan sát O cho đến khi xuất hiện các điểm giới hạn. Kết quả cuối của phương thức tái ước tính này sẽ là một ước tính likehood cực đại của mô hình HMM.Thuật toán lan truyền xuôi

Cho αt(i) là xác suất của chuỗi quan sát Ot = {o(1), o(2), ... , o(t)}, ta có: αt(i) = P(o(1), o(2), ... , o(t) | q(t) = qi ).Xác suất tương đối của chuỗi quan sát là tổng của các giá trị αt(i) ( với i = 1 ,.. ,N)

Thuật toán lan truyền xuôi là một thuật toán đệ quy, Đầu tiên, xác suất cho một chuỗi các symbol sẽ được tính toán xác suất tại trạng thái khởi đầu thứ I và xác suất phát ra symbol o(1) ở trạng thái thứ i. Sau đó công thức được quy sẽ được áp dụng. Giả sử chúng ta xác định được αt(i) tại một vài t. Để tính αt+1(j), ta nhân các giá trị αt(i) với các xác suất

Page 7: Tìm hiểu mô hình Markov ẩn.doc

truyền tương ứng tại các giá trị trạng thái từ trạng thái i đến trạng thái j sau đó cộng các giá trị tại các trạng thái lại với nhau và sau đó nhân với xác suất phát ra symbol o(t+1). Kết thúc quá trình tính toán, ta xác định được giá trị αT(i) và sau đó cộng các giá trị thu được từ các trạng thái, ta thu dược kết quả cần tìm.

Mô phỏng thuật toán:

Khởi đầu:α1(i) = pi bi(o(1)) , i =1, ... , NPhép đệ quy

Với i=1,…,N; t=1,…,T-1Kết thúc

Thuật toán lan truyền ngược

Theo cách tương tự, chúng ta có thể tạo ra một chuỗi đối xứng ngược βt(i) Xác suất tuyệt đối của chuỗi quan sát từ o(t+1) đến kết thúc được tạo ra bởi chuỗi trạng thái sẽ bắt đầu từ trạng thái thứ iβt(i) = P(o(t+1), o(t+2), ... , o(T) | q(t) = qi ).Mô phỏng thuật toánKhởi đầuβT (i) = 1 , i =1, ... , NTuỳ thuộc vào xác định ở trên, βT (i) không tồn tại. This is a formal extension of the below recursion to t = T.Đệ quy

Với i =1, ... , N , t = T - 1, T - 2 , . . . , 1Kết thúc

Một cách hiển nhiên, cả hai thuậ toán lan truyền xuôi và lan truyền ngược phải cho ra giá trị xác suất tổng P(O) = P(o(1), o(2), ... , o(T) ) là như nhau.Thuật toánViterbiĐây là thuật toán chọn trạng thái tốt nhất đạt giá trị cực đại của chuỗi quan sát. Gọi δ t(i) là xác suất cực đại của chuỗi trạng thái có độ dài t. Ta cóδ t(i) = max{P(q(1), q(2), ..., q(t-1) ; o(1), o(2), ... , o(t) | q(t) = qi ).}The Viterbi algorithm is a dynamic programming algorithm that uses the same schema as the Forward algorithm except for two differences:

Page 8: Tìm hiểu mô hình Markov ẩn.doc

1. It uses maximization in place of summation at the recursion and termination steps.2. It keeps track of the arguments that maximize δ t(i) for each t and i, storing them in the N by T matrix ψ. This matrix is used to retrieve the optimal state sequence at the backtracking step.Mô phỏng thuật toánKhởi đầuδ1(i) = pi bi(o(1))ψ1(i) = 0 , i =1, ... , NTuỳ thuộc vào xác định ở trên, βT(i) không tồn tại. Đây là công thức mở rộng của phương trình đệ quy sauĐệ quyδt ( j) = max i [δt - 1(i) aij] b j (o(t))ψt( j) = arg max i [δt - 1(i) aij]Kết thúc thuật toánp* = max i [δT( i )]q*T = arg max i [δT( i )]Đường dẫn truy tích nghịchq*t = ψt+1( q*t+1) , t = T - 1, T - 2 , . . . , 1Thuật toán Baum-Welch

Xác suất ξ t(i, j) của trạng thái qi ở thời gian t và q j ở thời gian t +1 được cho trong chuỗi quan sát của mô hình được xác định như sau:ξ t(i, j) = P(q(t) = q i, q(t+1) = q j | O, Λ)Hình sau mô tả công việc tính toán xác định ξ t(i, j)

Từ đó ta xác định được

Xác suất ra của dãy sẽ được xác định như sau:

Xác xuất của trạng thái qi ở thời gian t là:

Ước lượngInitial probabilities:

Transition probabilities:

Emission probabilities:

In the above equation Σ * denotes the sum over t so that o(t) = ok.Một số thuật toán khác : Ngoài các thuật toán mang tính tối ưư trên, chúng ta còn có một số thuật toán khác để tính toán cho mô hình HMM như sau:• Thuật toán học Baldi-Chauvin (dùng Grandient Descent).• Thuật toán học Mamitsuka (kết hợp giữa Baum-Welch và Baldi-Chauvin cho phép học trên cả negative examples).Ví dụ ứng dụng: Từ mô hình Markov ẩn, ta có thể ứng dụng nó để giả quyết trong một số lĩnh vực như:

Page 9: Tìm hiểu mô hình Markov ẩn.doc

Tìm GEN trong chuỗi DNA• Nhiệm vụ của mô hình HMM:Xác đinh các vùng coding và non-coding trên một xâu không gián nhãn gồm các DNAnucleotides.• Ý nghĩa:Mô hình này sẽ giúp chúng ta hỗ trợ đánh dấu (để phân loại) dữ liệu từ cácgenome thu đuợc.Ngoài ra, nó còn giúp chúng ta hiểu thêm các cơ chế trong Gen transcription, splicing, ...

Ưu điểm của việc sử dụng mô hình HMM trong tìm gen đấy là:• Phân lớp: Phân lớp các quan sát theo chuỗi.• Thứ tự: Một chuỗi DNA là một chuỗi có thứ tự.• Văn phạm :Văn phạm (cấu trúc HMM) đã được xác định:

• Độ tốt của mô hình: đo bằng số lượng các exons được đánh dấu chính xác• Dữ liệu huấn luyện: Từ các chuỗi DNA đã được đánh dấu (bằng các phương pháp thủ công khác).