Professional Documents
Culture Documents
ĐỀ TÀI
HIDDEN MARKOV MODELS FUNDAMENTALS
HÀ NỘI - 09/2019
MỤC LỤC
Làm thế nào chúng ta có thể áp dụng phương pháp học máy (machine learning) cho các
dữ liệu dạng chuỗi của các quan sát thay đổi theo thời gian? Ví dụ, chúng ta có thể quan tâm
việc khám phá chuỗi các từ mà một người nào đó nói dựa trên bản ghi âm phần nói chuyện
của họ. Hoặc chúng ta có thể muốn gán nhãn từ loại của bài nói chuyện. Ghi chú này cung
cấp phần giới thiệu toán học toàn diện cho mô hình Markov - một phương thức lập luận về
trạng thái theo thời gian, và mô hình Markov ẩn - áp dụng khi chúng ta muốn trích xuất một
chuỗi trạng thái từ một chuỗi các quan sát. Phần cuối cùng bao gồm một số nguồn tham khảo
thể hiện về mô hình này theo các góc độ khác.
1 Mô hình Markov
Cho tập trạng thái S = {s1, s2,… , s|S|} chúng ta có thể quan sát một chuỗi thời gian 𝒵⃗
ST. Ví dụ, chúng ta có các trạng thái thời tiết S = {sun,cloud, rain} với |S| = 3 và quan sát thời
tiết trong một vài ngày {z1 = ssun; z2 = scloud; z3 = scloud; z4 = srain; z5 = scloud} với T = 5.
Các trạng thái thời tiết được quan sát trong ví dụ đại diện cho kết quả đầu ra của quá
trình ngẫu nhiên theo thời gian. Nếu không có thêm giả định nào, trạng thái sj tại thời điểm t
có thể là một khả năng của bất kỳ biến nào, bao gồm tất cả các trạng thái từ thời điểm 1 đến
t-1 và có thể là nhiều biến khác mà chúng ta thậm chí không mô hình chúng. Tuy nhiên, ta sẽ
thực hiện hai giả định Markov nhằm giúp chúng ta dễ dàng xử lý chuỗi thời gian.
The LIMITED HORIZON ASSUMPTION - Giả định phạm vi hạn chế là giả sử rằng
xác suất của một trạng thái tại thời điểm t chỉ phụ thuộc vào trạng thái tại thời điểm t-1. Về
mặt trực quan, giả định này chỉ ra rằng trạng thái tại thời điểm t biểu thị tóm tắt tương đối đầy
đủ trạng thái trước đó để dự đoán khả năng sẽ có thể xảy ra trong tương lai. Công thức:
P (zt|zt-1, zt-2,…, z1) = P(zt|zt-1)
The STATIONARY PROCESS ASSUMPTION - Giả định tiến trình tĩnh, giả thiết rằng
phân phối có điều kiện của trạng thái theo sau trạng thái hiện tại không thay đổi theo thời
gian. Công thức:
P (zt|zt-1) = P (z2|z1); t ∈ 2…T
3
Quy ước trạng thái ban đầu chính là quan sát đầu tiên z0 s0, với s0 thể hiện phân phối
xác suất ban đầu của trạng thái tại thời điểm 0. Kí hiệu thuận tiện này cho phép chúng ta mã
hóa một cách chính xác về tiền xác suất của quan sát trạng thái thực đầu tiên z1 là P(z1|z0).
Lưu ý P(zt|zt-1,…, z1) = P(zt|zt-1,…, z1; z0) vì ta đã định nghĩa z0 = s0 cho chuỗi trạng thái bất kỳ
nào. (Một số thể hiện khác của mô hình Markov ẩn - HMMs đôi khi biểu diễn tiền xác suất
này bằng một véc tơ ℝ|𝑆| )
Ta tham số hóa những chuyển dịch này bằng cách xác định một ma trận chuyển trạng
thái A∈ℝ(|S| + 1)x(|S| + 1). Giá trị Aij là xác suất chuyển từ trạng thái I đến trạng thái j tại thời điểm
t bất kỳ. Với ví dụ về thời tiết ở trên, chúng ta có ma trận chuyển đổi sau:
Lưu ý rằng những con số mà tác giả đã thiết lập này biểu thị trực quan rằng các thời tiết
có khả năng tự tương quan: nghĩa là nếu trời nắng nó sẽ có xu hướng tiếp tục nắng, nhiều mây
sẽ tiếp tục nhiều mây,... Mô hình này phổ biến trong nhiều mô hình Markov và có thể được
quan sát như là đường chéo chính trong ma trận chuyển đổi. Chú ý trong ví dụ này, xác suất
chuyển đổi từ trạng thái khởi tạo s0 đến mỗi trạng thái còn lại là không thay đổi.
4
Ở dòng thứ hai ta đặt z0 làm xác suất đầu mối ban đầu, vì ta đã định nghĩa z0 ở trên. Dòng
thứ ba đúng với bất kỳ phân phối nối tiếp nào bởi quy tắc dây chuyền xác suất hoặc áp dụng
lặp đi lặp lại các quy tắc Bayes. Dòng thứ tư dựa trên giả định Markov và dòng cuối cùng thể
hiện các quy tắc như một yếu tố trong ma trận chuyển đổi A.
Hãy tính xác suất của chuỗi thời gian trong ví dụ trước đó. Chúng ta tính P(z1 = ssun, z2
= scloud, z3 = srain, z4 = srain, z5 = scloud) như sau: P(ssun|s0) P(scloud|ssun) P(srain|scloud) P(srain|srain)
P(scloud|srain) = .33 *.1 *.2* .7* .2.
Ở dòng cuối cùng, ta sử dụng một hàm chỉ thị có giá trị 1 khi điều kiện thỏa mãn và
ngược lại có giá trị 0 để chọn ra chuyển dịch được quan sát tại mỗi bước thời gian. Khi giải
quyết vấn đề tối ưu hóa này, điều quan trọng là phải đảm bảo rằng các thông số A được tìm
ra vẫn tạo ra một ma trận chuyển đổi hợp lệ. Đặc biệt, cần phải tuân thủ rằng phân bố xác suất
của các trạng thái i luôn luôn có tổng bằng 1 và tất cả các phần tử của A là không âm. Ta có
thể giải quyết vấn đề tối ưu hóa này bằng phương pháp nhân tử Lagrange.
max 𝑙(𝐴)
𝐴
|𝑆|
𝑠. 𝑡. ∑ 𝐴𝑖𝑗 = 1, 𝑖 = 1. . |𝑆|
𝑗=1
𝐴𝑖𝑗 ≥ 0, 𝑖, 𝑗 = 1. . |𝑆|
Vấn đề tối ưu hóa ràng buộc này có thể được giải quyết dạng khép kín bằng phương
pháp nhân tử Lagrange. Ta sẽ đưa các ràng buộc bình đẳng vào phương pháp Lagrange, nhưng
ràng buộc bất bình đẳng có thể được bỏ qua, dù sao thì giải pháp tối ưu này sẽ vận dụng những
giá trị dương cho Aij. Từ đó chúng ta xây dựng công thức Lagrange như sau:
5
Lấy đạo hàm từng phần và đặt chúng bằng không, ta có:
Thay thế giá trị này của αi vào biểu thức chúng ta đã khởi tạo cho Aij ta thu được giá trị
tham số khả năng cực đại cuối cùng cho Âij.
Công thức này mã hóa một trực quan đơn giản: xác suất khả năng tối đa của sự chuyển
đổi từ trạng thái i đến trạng thái j bằng số lần chuyển từ i sang j chia cho tổng số lần ở trạng
thái i. Nói cách khác, tham số khả năng tối đa tương ứng với tỷ số của thời gian ở trong trạng
thái i và chuyển sang trạng thái j.
6
2 Mô hình Markov ẩn
Mô hình Markov là một khái niệm trừu tượng hữu ích đối với các dữ liệu chuỗi thời
gian, nhưng không nắm bắt một tình huống rất phổ biến. Làm thế nào chúng ta có thể suy
luận về một loạt các trạng thái nếu chúng ta không thể quan sát các trạng thái đó, thay vì chỉ
có một hàm xác suất trạng thái. Đây là tình huống gán nhãn từ loại khi các từ được quan sát
nhưng không biết từ loại, và nhận dạng giọng nói khi chuỗi âm thanh được quan sát nhưng
không phải là các từ tạo ra nó. Ví dụ đơn giản, chúng ta hãy mượn đề xuất được thiết lập bởi
Jason Eisner vào năm 2002 [1], “Ice Cream Climatory”.
Tình huống: Bạn là một nhà khí tượng trong năm 2799, nghiên cứu lịch sử của sự nóng
lên toàn cầu. Bạn có thể không tìm ra bất cứ hồ sơ nào về thời tiết ở Baltimore, nhưng bạn
tìm được nhật ký của Jason Eisner, trong đó ghi lại chi tiết tôi đã ăn bao nhiêu kem mỗi ngày.
Dựa vào đây bạn có thể chỉ ra điều gì về thời tiết mùa hè?
Mô hình Markov ẩn có thể được sử dụng để giải quyết tình huống này. Chúng ta không
quan sát chuỗi trạng thái thực tế (thời tiết mỗi ngày). Thay vào đó, chúng ta chỉ có thể quan
sát một số kết quả được tạo ra bởi mỗi trạng thái (bao nhiêu kem đã ăn ngày hôm đó).
Về hình thức, một mô hình Markov là một mô hình Markov mà chúng ta có một chuỗi
các kết quả đầu ra được quan sát 𝓍 ={𝓍1, 𝓍2, …, 𝓍T}rút ra từ tập đầu ra V = {v1, v2,…, v|V|},
nghĩa là 𝓍t V, t = 1..T. Trong phần trước, ta cũng thừa nhận sự tồn tại của các chuỗi trạng
thái z = {z1, z2,…, zT} rút ra từ tập trạng thái S = {s1, s2,…, s|S|}, zt S, t = 1..T nhưng trong
trường hợp này giá trị của các trạng thái không quan sát được. Sự chuyển dịch giữa các trạng
thái i và j một lần nữa sẽ được thể hiện bởi các giá trị tương ứng trong ma trận chuyển dịch
trạng thái Aij.
Chúng ta cũng mô hình hóa xác suất tạo ra một quan sát đầu ra như một hàm của trạng
thái ẩn. Để làm như vậy, chúng ta thực hiện giả định độc lập đầu ra - OUTPUT
INDEPENDENCE ASSUMPTION và định nghĩa P(xt = vk|zt = sj)= P(xt = vk|x1,…, xT, z1,…,
zT) = Bjk. Ma trận B mã hóa xác suất tạo ra trạng thái ẩn đầu ra vk được cho bởi trạng thái sj
tại thời điểm tương ứng.
Quay trở lại ví dụ về thời tiết, giả sử rằng bạn có một bản ghi chép về sự tiêu thụ kem
trong giai đoạn bốn ngày: khi chỉ mã hóa số
lượng kem tiêu thụ, nghĩa là:
V={v1 = 1 ice cream, v2 = 2 ice creams, v3 = 3 ice creams}. Chúng ta phải giải quyết những
vấn đề nào trong một HMM?
7
Và làm thế nào chúng ta có thể biết được cách giá trị các tham số A và B của một HMM đưa
ra một vài dữ liệu?
2.2 Xác suất của một chuỗi quan sát: Thủ tục tiến
Trong một HMM, chúng ta giả định rằng dữ liệu của chúng ta được tạo ra bởi quá trình
như sau: thừa nhận sự tồn tại của một chuỗi trạng thái 𝒵⃗ dựa theo độ dài của chuỗi thời gian.
Chuỗi trạng thái này được tạo ra bởi một mô hình Markov đã được tham số hóa bằng một ma
trận chuyển đổi trạng thái A. Tại mỗi bước thời gian t, chúng ta chọn một đầu ra xt là một hàm
trạng thái Zt. Vì vậy, để có được xác suất của một chuỗi các quan sát, chúng ta cần phải bổ
sung thêm các khả năng của dữ liệu 𝓍⃗ cho mỗi chuỗi các trạng thái có thể.
Các công thức trên đúng cho bất kỳ phân phối xác suất nào. Tuy nhiên, các giả định
HMM cho phép chúng ta giản lược các biểu thức như sau:
Tin tốt là, đây là một biểu thức đơn giản về các tham số. Biến đổi biểu thức theo các giả
định HMM: giả định độc lập đầu ra, giả định Markov, và giả định quá trình tĩnh đều được sử
dụng để có được dòng thứ hai. Tin xấu là tổng số vượt quá mỗi chỉ định có thể cho 𝒵⃗ . Bởi vì
zt có thể lấy một trong những giá trị có thể của |S| tại từng bước thời gian, việc đánh giá trực
tiếp tổng số này sẽ yêu cầu các phép tính O(|S|T).
Thuật toán 1: Thủ tục tiến để tính αi(t)
1. Khởi tạo: αi(0) = A0i, i = 1..|S|
2. Đệ quy:
May thay, một phương tiện nhanh hơn của máy tính P (𝑥⃗; A, B) là có thể thông qua một
thuật toán lập trình động được gọi là thủ tục tiến. Đầu tiên, chúng ta hãy định nghĩa một lượng
αi (t) = P(x1, x2,…, xt,zt = si; A, B). αi(t) biểu thị cho xác suất tổng của tất cả các quan sát theo
thời gian t (bằng bất kỳ chỉ định trạng thái nào) và rằng chúng ta đang ở trong trạng thái si tại
thời điểm t. Nếu chúng ta đã có một lượng như vậy, xác suất của loạt các quan sát đầy đủ P
(𝑥⃗) có thể được biểu diễn như sau:
8
Thuật toán 2.2 biểu diễn một cách tính toán αi(t) hiệu quả. Tại mỗi bước thời gian chúng
ta chỉ cần tính O(|S|), kết quả độ phức tạp thuật toán cuối cùng O(|S|.T) là tính xác suất tổng
của một chuỗi trạng thái được quan sát P (𝑥⃗; A, B).
Một thuật toán tương tự được gọi là thủ tục quay lui (BACKWARD PROCEDURE) có
thể được sử dụng để tính toán xác suất tương tự βi (t) = P (xT, xT-1,…, xt + 1,zt = si; A, B).
2.3 Thiết lập trạng thái khả năng tối đa: Thuật toán Viterbi
Một trong những vấn đề phổ biến nhất của một mô hình Markov ẩn là những gì mà
chuỗi các trạng thái có khả năng nhất 𝒵⃗ ST đưa ra một chuỗi các kết quả đầu rađược quan
sát 𝑥⃗ VT. Ta có:
Sự đơn giản hóa đầu tiên theo qui tắc Bayes và lần thứ hai dựa trên sự quan sát rằng
mẫu số không phụ thuộc vào 𝒵⃗ . Một cách đơn giản, chúng ta có thể thử chỉ định mỗi khả
năng có thể cho 𝒵⃗ và gán với một xác suất cao nhất trong mô hình của chúng ta. Tuy nhiên,
điều này sẽ yêu cầu tính O(|S|T) để liệt kê một loạt các chỉ định có thể. Tại điểm này, bạn có
thể cho rằng giải pháp lập trình động giống như thủ tục tiến có thể lưu giữ ngày.
Chú ý rằng nếu bạn thay thế bởi thì nhiệm vụ hiện tại của chúng ta
giống với biểu thức đã được đưa ra ở thủ tục tiến.
9
Thuật toán Viterbi cũng giống như thủ tục tiến ngoại trừ việc thay vì theo dõi xác suất
tổng tạo ra các quan sát cho đến bây giờ, chúng ta chỉ cần theo dõi xác suất cực đại và ghi
nhận chuỗi trạng thái tương ứng của nó.
Ở dòng đầu tiên ta chia log thành một phép trừ và lưu ý rằng số hạng của mẫu số không
phụ thuộc vào các tham số của A và B. Các giả định Markov được áp dụng ở dòng thứ 3.
Dòng 5 sử dụng các hàm chỉ thị để đánh dấu cho A và B bằng trạng thái.
Cũng như đối với các tham số khả năng tối ưu trong mô hình Markov không ẩn, sẽ
không có vấn đề gì nếu ta bỏ qua các ràng buộc bất bình đẳng bởi vì dạng giải này tự đưa ra
kết quả với các số dương. Xây dựng công thức Lagrange:
10
Lấy đạo hàm từng phần và đặt biểu thức bằng không:
Lấy đạo hàm từng phần giữ nguyên các nhân tử Lagrange và thay thế các giá trị của Aij
và Bjk ở trên:
Thế trở lại vào biểu thức ở trên, ta sẽ tìm ra các tham số 𝐴̂ và 𝐵̂ mà tối đa hóa số lượng
dự đoán của chúng ta đối với các bộ dữ liệu là:
11
Thật không may, mỗi một tổng số này vượt quá mọi nhãn có thể 𝒵⃗ ST. Nhưng nhớ lại
rằng Q(𝒵⃗ ) đã được xác định ở bước E là P(𝒵⃗ |𝓍⃗; A,B) cho các tham số của A và B tại bước
thời gian cuối. Hãy xem xét làm thế nào để biểu diễn tử số đầu tiên của Âij dưới dạng xác
xuất tiến và lùi, αi (t) và βj(t).
Trong hai bước đầu tiên ta đảo vị trí các số hạng và thay thế giá trị đã định nghĩa của Q.
Sau đó, ta sử dụng quy tắc Bayes và có được trong dòng thứ tư, và ở dòng 5 ta sử dụng các
định nghĩa của α, β, A, và B. Tương tự như vậy, mẫu số có thể được biểu diễn bằng cách tính
tổng tất cả giá trị của tử số thông qua j.
12
Kết hợp các biểu thức này, chúng ta có thể mô tả đầy đủ các chuyển đổi trạng thái khả
năng tối đa Âij mà không cần phải liệt kê tất cả tử số có thể là:
Tương tự như vậy, chúng ta có thể biểu diễn cho tử số cho jk như sau:
(M-Step) ước tính lại các thông số khả năng tối đa:
13
Kết hợp các biểu thức lại, ta thu được biểu thức cho các xác suất phát sinh khả năng tối
đa như sau:
Thuật toán 2.4 cho thấy một biến thể của thuật toán Forward-Backward, hay thuật toán
Baum-Welch cho tham số học trong HMMs. Trong bước E, thay vì đánh giá một cách minh
bạch Q(𝒵⃗ ) cho tất cả các 𝒵⃗ ST, ta tính toán các thống kê đầy đủ 𝛾 t(i,j) = 𝛼i(t)AijBjxt𝛽 j(t+1)
để cân đối xác suất chuyển đổi giữa trạng thái si và sj tại thời điểm t cho tất cả các quan sát 𝓍⃗.
Các biểu thức gốc của Aij và Bjk tương đối là trực quan. Aij được tính bằng số chuyển đổi kỳ
vọng từ si đến sj chia cho số lượng kỳ vọng xuất hiện của si. Tương tự như vậy, Bjk được tính
bằng số phát sinh kỳ vọng của vk từ sj bị chia bởi số lượng xuất hiện kỳ vọng của sj.
Giống như nhiều ứng dụng của EM, tham số học trong HMMs là một vấn đề non-convex
với nhiều local maxima. EM sẽ hội tụ để đạt cực đại dựa trên tham số ban đầu của nó, vì vậy
số hạng có thể được xếp theo thứ tự. Ngoài ra, nó còn có vai trò quan trọng trong việc làm
mịn các phân phối xác suất được biểu diễn bởi A và B để cho không có một chuyển đổi hoặc
phát sinh nào có xác xuất bằng 0.
14
PHẦN II: PHÂN TÍCH VÀ ĐÁNH GIÁ
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ì lại là ẩn số. HMM là một mô hình cho phép các thuật
toán giải quyết được các bài toán xác lập mối quan hệ nhân quả cục bộ nói trên.
Mô hình Markov ẩn (Hidden Markov Model - HMM) là mô hình thống kê mà 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.
Nhiệm vụ là ta phải đi xác định các tham số ẩn dựa trên các tham số quan sát được. Theo
đó, các tham số của mô hình được rút ra sau này có thể được sử dụng để thực hiện các phân
tích kế tiếp.
Để có thể áp dụng được mô hình HMM vào các ứng dụng phức tạp trong thực tế, trước
hết cần có lời giải thỏa đáng cho 3 bài toán cơ bản của HMM:
Để xác định 𝑝(𝑂|𝜆) theo cách trực tiếp như trên, ta cần thực hiện 2T(N)T phép tính.
Điều này là không khả thi ngay cả với các giá trị nhỏ của N (số trạng thái của mô hình) và T
(chiều dài của chuỗi tín hiệu quan sát); chẳng hạn với N = 5 và T = 100, tổng số phép tính cần
15
phải thực hiện là 2.100. 5100 ≈ 1072 . Rõ ràng chi phí tính toán là quá lớn, ta không thể tính
𝑝(𝑂|𝜆) theo cách như trên.
Một giải pháp khả thi hơn để tính 𝑝(𝑂|𝜆) là là thông qua thủ tục forward -
backward. Trước tiên, ta định nghĩa biến forward 𝛼𝑡 (𝑖) là xác suất trạng thái Si tại thời
điểm t và đã quan sát được đoạn O = {O1, O2, …, OT} từ mô hình 𝜆 cho trước:
𝛼𝑡 (𝑖) = 𝑝(𝑂1 𝑂2 … 𝑂𝑡 , 𝑞𝑡 = 𝑆𝑖 |𝜆)
16
Các biến 𝛼𝑡 (𝑖) có thể được tính theo quy nạp từng bước sau:
Bước 1 – Khởi tạo: đặt t = 1
𝛼1 (𝑖) = 𝜋𝑖 𝑏𝑖 (𝑂1 ), 1 ≤ 𝑖 ≤ 𝑁
Bước 2 – Quy nạp:
𝑁
𝑃(𝑂|𝜆) = ∑ 𝛼 𝑇 (𝑖)
𝑖=1
Về độ phức tạp tính toán, để tính được tất cả các biến forward 𝛼𝑡 (𝑖), ta cần thực hiện
N T phép tính, nhỏ hơn rất nhiều so với 2T(N)T của phương pháp tính trực tiếp.
2
Tương tự như trong thủ tục forward, thủ tục backward trước hết định nghĩa biến
backward 𝛽𝑡 (𝑖) là xác suất quan sát được đoạn O = {Ot+1, Ot+2, …, OT}. Cho trước trạng thái
Si và mô hình 𝜆:
𝛽𝑡 (𝑖) = 𝑝(𝑂𝑡+1 𝑂𝑡+2 … 𝑂𝑇 , 𝑞𝑡 = 𝑆𝑖 |𝜆)
Các biến backward cũng được tính quy nạp theo các bước sau:
Bước 1 – Khởi tạo: đặt t = T - 1
𝛽𝑡 (𝑖) = 1, 1 ≤ 𝑖 ≤ 𝑁
Bước 2 – Quy nạp:
𝑁
17
Bước 3 – Cập nhật thời gian t:
Gán t = t - 1
Quay lại bước 2 nếu t > 0, nếu không thì tiến tới bước 4
Bước 4 – Kết thúc:
𝑁
𝑃(𝑂|𝜆) = ∑ 𝛽𝑇 (𝑖)
𝑖=1
Diễn tã thuật toán backward:
Cũng giống như các biến forward, việc tính tất cả các biến backward cần thực hiện
N T phép tính. Như vậy, thủ tục forward-backward là khả thi với chi phí tính toán hoàn toàn
2
Xâu kết các qt lại, ta sẽ có chuỗi trạng thái lời giải Q của bài toán như ví dụ sau:
18
Tuy nhiên, kết quả này chỉ mang tính cục bộ, nghĩa là đôi khi chuỗi Q tìm được không
tồn tại trong thực tế nếu một số xác suất chuyển trạng thái bằng 0. Giả sử trong chuỗi kết quả
Q tìm được có q5 = S1 và q6 = S2, nhưng trên thực tế xác suất chuyển trạng thái a12 = 0, như
vậy lời giải là mâu thuẫn.
Để tránh tình trạng mâu thuẫn như trên, ta có thể thay đổi tiêu chí “tối ưu” cho việc
chọn Q. Tùy theo từng ứng dụng cụ thể mà tiêu chí này sẽ được chọn sao cho phù hợp, tuy
nhiên tiêu chí phổ biến nhất được sử dụng là chọn cả chuỗi Q khả thi nhất, nghĩa là qui bài
toán từ việc tìm Q để cực đại hóa 𝑝(𝑄|𝑂, 𝜆) sang việc tìm Q để cực đại hóa 𝑝(𝑄|𝑂, 𝜆). Giải
pháp cho vấn đề này là thuật toán viterbi
Thuật toán viterbi định nghĩa biến 𝛿𝑡 (𝑖) là xác suất cao nhất của đoạn chuỗi trạng thái
dẫn đến Si ở thời điểm t và đã quan sát được đoạn O1, O2, …, Ot cho trước mô hình 𝜆:
𝛿𝑡 (𝑖) = max 𝑝(𝑞1 , 𝑞2 , … , 𝑞𝑡 = 𝑆𝑖 , 𝑂1 𝑂2 … 𝑂𝑡 |𝜆)
𝑞1 ,𝑞2 ,…,𝑞𝑡
Biến 𝛿𝑡 (𝑖) được tính theo quy nạp với các bước sau đây (thuật toán viterbi):
Bước 1 – Khởi tạo:
𝛿𝑡 (𝑖) = 𝜋𝑖 𝑏𝑖 (𝑂1 ), 1 ≤ 𝑖 ≤ 𝑁
𝜓1 (𝑖) = 0
𝜓1 (𝑖) là mảng để lưu lại các tham số i làm cực đại hóa biểu thức
Bước 2 – Lặp quy nạp:
𝛿𝑡 (𝑗) = max [𝛿𝑡−1 (𝑖)𝑎𝑖𝑗 ]𝑏𝑗 (𝑂𝑡 ), 2 ≤ 𝑡 ≤ 𝑇, 1 ≤ 𝑗 ≤ 𝑁
1≤𝑖≤𝑁
𝜓𝑡 (𝑗) = max [𝛿𝑡−1 (𝑖)𝑎𝑖𝑗 ], 2 ≤ 𝑡 ≤ 𝑇, 1 ≤ 𝑗 ≤ 𝑁
1≤𝑖≤𝑁
19
1.3 Bài toán 3 – Parameter Estimation
Mục tiêu của bài toán thứ 3, cũng là bài toán phức tạp nhất trong ba bài toán, là tìm cách
cập nhật lại các tham số của mô hình 𝜆 = (𝐴, 𝐵, 𝜋) sao cho cực đại hóa xác suất (𝑂|𝜆) – xác
suất quan sát được chuỗi tín hiệu O từ mô hình.
Với một chuỗi tín hiệu quan sát hữu hạn bất kỳ O làm dữ liệu huấn luyện, chưa có một
phương pháp tối ưu nào cho việc ước lượng các tham số 𝜆 = (𝐴, 𝐵, 𝜋) của mô hình theo
hướng cực đại toàn cục. Tuy nhiên, bộ tham số 𝜆 có thể được chọn sao cho xác suất 𝑝(𝑂|𝜆)
đạt cực đại cục bộ bằng thuật toán Baum-Welch hoặc sử dụng phương pháp giảm dốc
Gradient. Phần này trình bày thuật toán Baum-Welch giải quyết bài toán 3.
Trước tiên, ta định nghĩa 𝜉𝑡 (𝑖, 𝑗) là xác suất ở trạng thái Si tại thời điểm t và rơi vào
trạng thái Sj ở thời điểm t+1 cho trước mô hình 𝜆 và chuỗi tín hiệu quan sát O:
𝜉𝑡 (𝑖, 𝑗) = 𝑝(𝑞𝑡 = 𝑆𝑖 , 𝑞𝑡+1 = 𝑆𝑗 |𝑄, 𝜆 )
Theo định nghĩa này, 𝜉𝑡 (𝑖, 𝑗) có thể được tính thông qua các biến 𝛼𝑡 (𝑖) và 𝛽𝑡 (𝑖) theo
biểu thức:
𝛼𝑡 (𝑖)𝑎𝑖𝑗 𝑏𝑗 (𝑂𝑡+1 )𝛽𝑡+1 (𝑗) 𝛼𝑡 (𝑖)𝑎𝑖𝑗 𝑏𝑗 (𝑂𝑡+1 )𝛽𝑡+1 (𝑗)
𝜉𝑡 (𝑖, 𝑗) = = 𝑁
𝑝(𝑂|𝜆) ∑𝑖=1 ∑𝑁
𝑗=1 𝛼𝑡 (𝑖) 𝑎𝑖𝑗 𝑏𝑗 (𝑂𝑡+1 )𝛽𝑡+1 (𝑗)
Nếu ta lấy tổng 𝛾𝑡 (𝑖) theo 𝑡 ∈ [1, 𝑇 − 1], kết quả nhận được là số lần kỳ vọng chuyển
trạng thái từ Si. Tương tự, lấy tổng 𝜉𝑡 (𝑖, 𝑗) theo 𝑡 ∈ [1, 𝑇 − 1], ta sẽ có số lần kỳ vọng chuyển
từ trạng thái Si sang Sj:
𝑇−1
Với các đại lượng này, ta có các biểu thức cập nhật tham số của HMM như sau:
𝜋̅𝑖 = 𝑠ố 𝑙ầ𝑛 𝑘ỳ 𝑣ọ𝑛𝑔 ở 𝑡𝑟ạ𝑛𝑔 𝑡ℎá𝑖 𝑆𝑖 𝑣à𝑜 𝑡ℎờ𝑖 đ𝑖ể𝑚 (𝑡 = 1) = 𝛾1 (𝑖) (∗)
𝑒𝑥𝑛𝑢𝑚(𝑆𝑖 , 𝑆𝑗 ) ∑𝑇−1
𝑡=1 𝜉𝑡 (𝑖, 𝑗)
𝑎̅𝑖𝑗 = = (∗∗)
𝑒𝑥𝑛𝑢𝑚(𝑆𝑖 ) ∑𝑇−1
𝑡=1 𝛾𝑡 (𝑖)
∑𝑇 𝑡=1 𝛾𝑡 (𝑗)
𝑒𝑥𝑛𝑢𝑚_𝑖𝑛(𝑆𝑗 , 𝑣𝑘 ) 𝑠.𝑡.𝑂𝑡 = 𝑣𝑘
𝑏̅𝑗 (𝑘) = = (∗∗∗)
𝑒𝑥𝑛𝑢𝑚_𝑖𝑛(𝑆𝑗 ) ∑𝑇𝑡=1 𝛾𝑡 (𝑗)
exnum(Si,Sj): số lần kỳ vọng chuyển từ trạng thái Si sang trạng thái Sj
exnum(Si): số lần kỳ vọng chuyển trạng thái từ Si
exnum_in(Sj,vk): số lần kỳ vọng ở trạng thái Sj và quan sát được tín hiệu vk
exnum_in(Sj): số lần kỳ vọng ở trạng thái Sj
Từ mô hình ban đầu 𝜆 = (𝐴, 𝐵, 𝜋) và chuỗi tín hiệu quan sát O, ta tính được vế phải của
các biểu thức (*)(**)(***),kết quả nhận được chính là các tham số mới của mô hình 𝜆̅ =
20
(𝐴̅, 𝐵̅, 𝜋̅). Theo Baum đã chứng minh, ta luôn có 𝑝(𝑂|𝜆̅) > 𝑝(𝑂|𝜆) trừ phi mô hình 𝜆 đã đạt
đến điểm tối ưu cục bộ (khi đó 𝜆̅ = 𝜆).
Như vậy, thuật toán Baum-Welch sẽ được áp dụng qua nhiều bước lặp để ước lượng và
cập nhật các tham số mô hình cho đến khi hội tụ. Tuy nhiên, kết quả cuối cùng chỉ đạt được
tối ưu cục bộ mà thôi. Thông thường, nếu các tham số được khởi tạo với các giá trị thích hợp,
thì có một phần khả năng nào đó có thể giúp mô hình đạt được tối ưu toàn cục khi huấn luyện.
Tình huống: Có 3 loại thời tiết: nắng , mưa , và sương mù . Và ta giả thiết
rằng 1 loại thời tiết sẽ xảy ra diễn ra trong cả ngày, không thay đổi vào một khoảng thời gian
trong ngày.
Bây giờ giả thiết rằng bạn bị nhốt trong một căn phòng trong nhiều ngày, và bạn được
hỏi về thời tiết ở bên ngoài. Và chỉ có một vài bằng chứng bạn có là việc một người bạn đem
bữa ăn đến cho bạn là có mang một cây dù hay không . Bạn không biết thời tiết
như thế nào khi bạn bị khóa. Vào ba ngày đầu tiên bạn quan sát thấy người bạn như sau:
.
Tìm xác suất lớn nhất của chuỗi thời tiết sử dụng thuật toán Viterbi (giả thiết rằng xác
suất ưu tiên là như nhau vào ngày 1).
21
Bước 1. Tính giá trị ban đầu (Initialisation):
Hình 1: Thuật toán Viterbi để tìm chuỗi thời tiết có thể xảy ra nhất.
Ta tìm thấy đường dẫn đến trạng thái trời nắng ở thời điểm n= 2
Bước 2. Đệ quy (Recursion):
Chúng ta tính khả năng tới trạng thái từ tất cả 3 trạng thái trước, và chọn khả năng
có thể xảy ra nhất với:
22
Tức là trong hình vẽ tìm đường dẫn mà dẫn đến likelihood lớn nhất xét về likelihood tốt
nhất ở thời điểm trước và bước chuyển tiếp từ nó. Rồi nhân với likelihood hiện tại được cho
bởi trạng thái hiện tại. Và kết quả là sẽ tìm thấy đường dẫn tốt nhất.
Likelihood là được tính trong δ, và trạng thái trước đó có thể nhất là trong ψ (xem hình
1).
Với n=3:
Cuối cùng, chúng ta sẽ thu được đường dẫn kết thúc có thể xảy ra nhất ở mỗi trạng thái
của mô hình (hình 2):
Thuật toán Viterbi để tìm chuỗi thời tiết có khả năng xảy ra nhất tại n= 3
23
Thuật toán Virtebi tìm ra chuỗi thời tiết có thể xảy ra nhất
Bước 3. Termination:
Con đường có thể xảy ra nhất đã được xác định, bắt đầu bằng cách tìm ra trạng thái cuối
cùng của chuỗi có thể xảy ra nhất.
Bước 4. Backtracking:
Chuỗi trạng thái tốt nhất có thể đọc từ vector ψ. Xem hình 7
Theo cách đó thì chuỗi thời tiết có thể xảy ra nhất là:
24
2.3 Các lớp bài toán tương tự
- Bài toán gán nhãn từ loại (part-of-speech tagging - POS) trong xử lý ngôn ngữ tự
nhiên (Natural Language Processing).
- Bài toán mã hóa dữ liệu trong hệ thống truyền dẫn số
- Bài toán nhận dạng tiếng nói
- Bài toán nhận diện khuôn mặt
25