2.3 Ba bài toán cơ bản trong mô hình Markov ẩn
2.3.1 Bài toán 1: Đánh giá xác suất
Cho một d∙y quan sát O=O1 O2…OT và mô hình Markov ẩn λλλλλ = (A, B, π).
H∙y tính xác suất của d∙y quan sát trên theo mô hình P(O|λλλλλ).
Đây là bài toán yêu cầu tính toán xác suất của một mô hình đã biết có thể tạo ra một chuỗi quan sát cho trước. Có thể nói cách khác, đây là bài toán đánh giá xem mô hình đã cho có tốt với dãy quan sát cho trước hay không. Trong trường hợp ta phải chọn một trong số nhiều mô hình thì lời giải cho bài toán 1 sẽ cho ta lựa chọn
được mô hình thích hợp nhất đối với dãy quan sát cho trước.
Cách giải quyết: Cách tường minh nhất để tính được xác suất trên là thông qua việc đánh số mọi chuỗi trạng thái có chiều dài T (T là số l−ợng quan sát trong chuỗi). Khi đó sẽ có NT chuỗi trạng thái nh− vậy. Ta sẽ xem xét một trong các dãy trạng thái đó:
q = (q1 q2 q3 … qT) trong đó q1 là trạng thái khởi đầu.
Khi đó, xác suất của dãy quan sát O cho bởi dãy trạng thái q sẽ là:
1
( | , ) ( | , )
T
t t
t
P O q λ P O q λ
=
=∏ (2.3)
Giả sử rằng các quan sát là độc lập với nhau, khi đó ta có:
1 1 2 2
( | , ) ( ) ( )... ( )
q q qT
P O q λ =b o b o b oT (2.4) Xác suất của một dãy trạng thái q là:
1 1 2 2 3 1
( | ) ...
q q q q q q qT T
P q λ =π a a a − (2.5)
Xác suất để chuỗi quan sát O và dãy trạng thái q xảy ra đồng thời là:
)
| ( ).
,
| ( )
| ,
(O q λ P O q λ P q λ
P = (2.6)
Xác suất của dãy quan sát O cho bởi mô hình chính là tổng của các xác suất đối với tất cả các dãy trạng thái có thể có của q.
1 1 1 2 2 1
1 2
1 2
, ...
( | ) ( | , ). ( | ) ( ) ( )... ( )
T T T
T
q q q q q q q q T
q q q q
P O λ P O q λ P q λ π b o a b o a − b o
∀
=∑ = ∑ (2.7)
Tuy nhiên, nếu ta tính toán P(O|λ) theo đúng nh− công thức định nghĩa (2.7) thì số phép tính lên tới 2T.NT, do tại mọi thời điểm t = 1, 2, … , T có N trạng thái có thể đạt đ−ợc, và do đó có NT chuỗi trạng thái có thể. Với mỗi trạng thái nh− vậy cần khoảng 2T phép tính cho mỗi toán hạng trong phép lấy tổng. Nh− vậy, khối l ợng − tính toán sẽ rất nhiều (ví dụ với những giá trị khá nhỏ nh− N = 5, T = 100 thì số l−ợng phép tính cần thực hiện cũng đã lên tới 1072 phép tính), trong thực tế là không thực hiện đ−ợc. Vì vậy ta cần phải có một giải thuật đơn hơn để giải quyết vấn đề này. Cụ thể người ta đã sử dụng 2 thuật toán dưới đây.
2.3.1.1 Thủ tục tiến (Forward Procedure) Ta định nghĩa biến tiến (forward variable) αt(i) nh− sau:
αt(i) = P(O1 O2 … Ot, qt = i | λ) (2.8)
αt(i) là xác suất của dãy quan sát bộ phận O1 O2 … Ot và trạng thái i đạt đ−ợc tại thời
điểm t. Khi đó ta có thể dùng phép quy nạp để tính αt(i) nh− sau:
B−ớc 1: Khởi tạo ) ( )
( 1
1 i πibi o
α = 1≤i≤N (2.9)
B−ớc 2: Quy nạp
1 1 1
( ) ( ) ( )
N
t t ij j
i t
j i a b o
α+ α +
=
⎡ ⎤
= ⎢⎣∑ ⎥⎦ 1≤t≤T−1, 1≤ j≤N (2.10) B−íc 3: KÕt thóc
1
( | ) ( )
N T i
P O λ α i
=
=∑ (2.11)
a b
H×nh 2.5
a. Minh họa chuỗi thao tác để tính toán biến tiến αααααt(i)
b. Thực hiện tính αααααt(i) d−ới dạng mạng l−ới các quan sát t và trạng thái i.
Bước 1 khởi tạo các biến αt(i) là xác suất suất hiện đồng thời trạng thái i và quan sát ban đầu O1. Bước 2 được minh họa bằng hình 2.5, qua đó ta thấy từ thời
điểm t ứng với N trạng thái i 1≤ i ≤ N,, hệ thống có thể đạt đến trạng thái j ở thời
điểm t+1. Vì αt(i) là xác suất của sự kiện đ−ợc quan sát O1 O2 … Ot, và trạng thái của hệ tại thời điểm t là i nên αt(i).aij chính là xác suất của sự kiện đ−ợc quan sát O1 O2 … Ot và trạng thái j đạt được tại thời điểm t+1 từ trạng thái i ở thời điểm t trước
đó. Lấy tổng tất cả các xác suất này trên tất cả N trạng thái i tại thời điểm t (1≤ ≤i N) ta đ−ợc xác suất của trạng thái j tại thời điểm t+1 với tất cả các quan sát bộ phận trước thời điểm t+1. Do đó dễ nhận thấy rằng, αt+1(j) bằng tổng trên nhân với bj(Ot+1). Cuối cùng, b−ớc 3 cho ta kết quả P(O|λ) là tổng của những biến tiến cuối cùng αt+1(j) theo đúng định nghĩa:
αT(i) = P(O1 O2 … Ot, qT = i | λ) Vì vậy P(O|λ) chính là tổng của các αT(i), 1≤ i ≤ N
Ta có nhận xét rằng, việc tính toán theo thủ tục tiến cần khoảng N2.T phép tính, mà cụ thể ở đây là cần N(N+1)(T-1)+N phép tính nhân, và N(N-1)(T-1) phép tính cộng. Nh− vậy giả sử cũng lấy các giá trị nh− trên với N = 5 và T = 100 thì ta cần khoảng 3000 phép tính, con số này nhỏ hơn rất nhiều so với 1072 phép tính trong ph−ơng pháp tính trực tiếp ở trên.
2.3.1.2 Thủ tục lùi (Backward Procedure)
Tương tự như trên ta có thể xét biến lùi βt(i) với định nghĩa như sau:
βt(i) = P(Ot+1Ot+2...OT, qt=i|λ) (2.12)
βt(i) là xác suất của dãy quan sát bộ phận từ thời điểm t+1 đến thời điểm cuối, căn cứ vào trạng thái i tại thời điểm t và mô hình λ. Có thể tính βt(i) bằng cách quy nạp nh− sau:
B−ớc 1: Khởi đầu
βT(i) = 1 1≤ i ≤N (2.13)
B−ớc 2: Quy nạp
1 1
1
( ) ( ) ( )
N
t ij j t t
j
i a b O
β + β+
=
=∑ j t=T−1,T−2,...,1 1≤i ≤N (2.14)
B−íc 3: KÕt thóc 1 (2.15)
1
( | ) ( )
N
i
P O λ β i
=
=∑
Trong phần sau ta sẽ thấy cách áp dụng 2 thủ tục này trong việc giải quyết Bài toán 3 của mô hình Markov ẩn.