Chương II CÁC KIẾN THỨC NỀN TẢNG VỀ HỌC THỐNG KÊ
II.1 Mô hình Markov ẩn (HMMs)
II.1.1 Tổng quan về HMMs
HMMs là mô h ình máy trạng thái hữu hạn (probabilistic finite state machine) vớ i các tham số biểu diễn xác suất chuyển tra ̣ng thái và xác suất sinh dữ
liê ̣u quan sát ta ̣i mỗi tra ̣ng thái.
HMMs − "Mô hình Markov ẩn" − tên gọi này được đặt với ý nghĩa là một máy với hai tiến trình ngẫu nhiên kép (double stochastic process). Trong một khoảng thời gian, chúng ta chỉ nhìn thấy các ký hiệu quan sát, còn các trạng thái cũng như sự chuyển đổi trạng thái theo quá trình Markov được vận hành ẩn bên trong mô hình. Muốn tìm dãy trạng thái phát sinh ra một dãy quan sát nào đó, không có đường nào khác ngoài cách phải suy diễn từ các tham số của mô hình và
bản thân dãy quan sát. Tức là suy diễn từ những thông tin đã biết và những gì quan sát được để dự đoán gần đúng dãy trạng thái ẩn. Đó chính là vấn đề của bài toán nhận dạng thực thể sử dụng HMMs.
Để hình thức hóa định nghĩa HMMs, ta sử dụng các kí hiệu sau:
N – Số trạng thái trong mô hình
M – Số ký hiệu quan sát có thể
T – Độ dài của dãy quan sát (Số ký hiệu trong dãy quan sát)
Các trạng thái được gán số hiệu: 1, 2, ..., N
Yt biểu thị trạng thái của mô hình tại thời điểm t
V = {v1, v2,..., vM}: Tập rời rạc các ký hiệu quan sát có thể
Các phân bố xác suất cho trạng thái đầu (initial state probability distribution): = {1, 2, ..., N}, i là xác suất để trạng thái i được chọn tại thời điểm khởi đầu t=1
i = P(Y1 = i)
Ma trận xác suất chuyển (transition matrix): A = {aij},
ở đây aij là xác suất xuất hiện trạng thái j tại thời điểm t + 1 khi trạng thái i đã xuất hiện tại thời điểm t. Giả thiết rằng aij là độc lập với thời gian t (Dãy y1, y2, v.v. là xích Markov rời rạc và thuần nhất):
aij = P(yt+1 = j|yt = i)
Các hàm đo xác suất phát xạ mẫu (emision functions) B = {bj(vk)},
bj(vk) = P(vk phát sinh tại thời điểm t: yt = j).
xt biểu thị ký hiệu quan sát tại thời điểm t, xtV
Bộ ba = (A, B, ) được coi là ký pháp gọn của một HMM. A, B và được gọi là những tham số (parameters) của mô hình .
Hoạt động của HMMs có thể mô tả như sau: Tại thời điểm t = 1, mô hình ở trạng thái Y1 nào đó và phát sinh ra một ký hiệu quan sát nhất định x1. Sau đó, tại thời điểm t = 2, mô hình chuyển sang trạng thái y2 và phát sinh ký hiệu quan sát x2. Tiếp tục tới thời điểm t = T, mô hình phát sinh được dãy quan sát x = (x1, x2, ..., xT) bằng dãy trạng thái y = (y1, y2, ..., yT). Dãy trạng thái y phụ thuộc vào các xác suất chọn trạng thái khởi đầu i và các xác suất chuyển aij. Dãy ký hiệu quan sát xt được HMMs phát sinh phụ thuộc vào dãy trạng thái y và các hàm đo xác suất phát xạ mẫu bj(.).
Hình 3: Mô hình Markov ẩn
Từ định nghĩa HMMs ta có các tính chất:
a) 1 1; 1,
0; , 1,
N j ij
ij
a i N
a i j N
b) 1 ( ) 1; 1,
( ) 0; 1, ; 1,
M
j k
k
j k
b v j N
b v j N k M
c) 1 1
0; 1,
N i i
i i N
Có ba vấn đề được đặt ra với HMMs.
Vấn đề thứ nhất. Cho mô hình = (A, B, ) và một dãy quan sát x = (x1, x2, ..., xT). Cần phải tính P(x) − xác suất phát sinh dãy quan sát x với mô hình . Ta có:
P(x, y) = P(xy).P(y) = y1.by1(X1).ay1y2.by2(X2).ay2y3...ayT-1yT.byT(OT).
= ( t | t ). ( t | t)
T t
y x P y y
P 1
1
(II.1.1)
P(x) =
y
) y , x
(
P
aij
X1
Y1
X2
Y2
Xk-1 Xk
Yk-1 Yk
Xn
Yn
) (Y1
bj(Xk)
= ( ) yy i ( )... y y y ( T)
y y
yb X a b X a b X
T T
T 1
2 2 1 1
1 1 2
(II.1.2)
Để tính được P(x) bằng cách tính trực tiếp theo công thức trên thì độ
phức tạp tính toán cỡ O(T.NT). Đây là một cấp phức tạp quá lớn. Ngay cả với những giá trị nhỏ, chẳng hạn như N = 5 và T = 100, số phép tính sơ cấp cần thực hiện lên tới xấp xỉ 1072. Chính vì vậy, người ta phải tìm những cách tính P(x) hiệu quả hơn, và phương pháp hay được nhắc đến là phương pháp tính xuôi và phương pháp tính ngược (Forward - Backward Procedure) [17][5]. Hai phương pháp này đều có
độ phức tạp cỡ O(N2T). So sánh với độ lớn cỡ O(T.NT) ở phương pháp tính trực tiếp, ta thấy chi phí này thấp hơn nhiều.
Vấn đề thứ hai. Cho mô hình = (A, B, ) và một dãy quan sát x = (x1, x2, ..., xT). Cần phải chọn một dãy trạng thái y = (y1, y2, ..., yT) để P(x, y) − xác suất để mô hình phát sinh dãy quan sát x và chuyển trạng thái theo dãy y, đạt cực đại.
Tức là ta phải tìm dãy trạng thái y = (y1, y2, ..., yT) để P(x, y) max.
Một thuật toán nổi tiếng để giải quyết vấn đề này được gọi là giải thuật Viterbi.
Đây là giải thuật cảm ứng mà tại mỗi bước tính tới thời điểm t, ta giữ lại những dãy trạng thái tốt nhất (cho xác suất P(x1, x2, ..., xt, y1, y2, .., yt ) cực đại) để từ đó
đánh giá và tìm ra những dãy trạng thái tốt nhất làm cực đại hoá xác suất P(x1, x2, ..., xt+1, y1, y2, ..., yt+1 ). Có thể sử dụng kỹ thuật lập trình qui hoạch động để thực hiện thuật toán Viterbi. Có thể hình dung mô hình của thuật toán như sau:
Xét mỗi đường đi trên đồ thị xuất phát từ một đỉnh ở hàng 1 tới một đỉnh ở hàng T. Nếu ghi nhận lại các số hiệu cột của những nút đi qua, ta sẽ được một dãy trạng thái y = (y1, y2, ..., yT). Trọng số (độ dài) đường đi này chính là ln(P(x, y)).
Đồ thị G có hướng và không có chu trình, nên thuật toán Viterbi đơn giản là tìm đường đi dài nhất xuất phát từ một nút trên hàng 1 tới một nút trên hàng T bằng phương pháp tối ưu theo từng lớp (critical path). Trên đánh giá lý thuyết, độ
phức tạp tính toán của thuật toán Viterbi là O(N2T).
1 ... i ... j ... N
ln(j)+ln(bj(O1)) j 1
2
t
t+1
T
... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ...
... ...
... ... ... ... ... ... ... ...
... ...
ln(aij)+ln(bj(Ot+1)) i, j
f(T, 1)... f(T, i) ... f(T, j) ...f(T, N)
Hình 4: Dạng đồ thị của thuật toán Viterbi
Vấn đề thứ ba. Cho mô hình = (A, B, ) và một dãy quan sát x = (x1, x2, ..., xT). Cần phải hiệu chỉnh các tham số của mô hình để cực đại hoá tiêu chuẩn tối ưu P(x).
Vấn đề này liên quan tới vấn đề huấn luyện HMMs. Có thể mô tả một cách hình thức như sau: với một dãy quan sát đưa vào để học, quá trình huấn luyện phải mã hoá dãy quan sát theo một cách nào đó để nếu sau này gặp phải một dãy quan sát khác có nhiều đặc trưng tương tự thì nó có thể "đoán nhận" được. Khác với hai bài toán đầu tiên có tư tưởng giải thuật hết sức rõ ràng, bài toán huấn luyện là một bài toán khó bởi nó liên quan đến vấn đề cảm tính: Với hai dãy quan sát, dựa vào đâu để nói rằng chúng khác nhau hay tương tự nhau, và nếu chúng tương tự
nhau thì ở mức độ nào? Chính vì vậy, tùy theo từng vấn đề cụ thể mà người ta sử
dụng những tiêu chuẩn và quá trình huấn luyện đặc thù.
Phương pháp chung nhất là dựa vào tiêu chuẩn tối ưu của vấn đề thứ nhất để huấn luyện HMMs làm cực đại hoá tiêu chuẩn tối ưu. Tức là ta phải tìm các tham
j x bj
j)ln( ( )
ln( 1
ij x b
aij)ln( j( t )
ln( 1
số xác suất tốt nhất để mô hình có tính tương thích cao với dãy huấn luyện. Điều đó
có nghĩa là với một mô hình ban đầu = (A, B, ). Ta phải chỉnh lại các tham số xác suất để được mô hình ( , , )A B thoả mãn P(x ) P(x) với dãy huấn luyện x. Sau đó sử dụng để hiệu chỉnh tiếp cho tới khi đến được (hay đạt đến) điểm giới hạn.
Ta có thể sử dụng giải thuật ước lượng Baum-Welch để hiệu chỉnh lại các tham số tại mỗi bước huấn luyện.