Tải bản đầy đủ - 0 (trang)
3 Thuật toán Forward và Backward

3 Thuật toán Forward và Backward

Tải bản đầy đủ - 0trang

Ta có:

P(O| λ) = ∑𝑎𝑙𝑙 𝑄 𝑃(𝑂, 𝑄| λ ) là tổng xác suất của các chuỗi Q có thể sinh ra O trong

mơ hình λ.

Suy ra: P(O,Q| λ) = P(O|Q, λ)*P(Q| λ)

Trong đó: P(O|Q, λ) = Bq1(O1)*bq2(O2)*…*bqT(OT) : là xác suất quan sát được

chuỗi O sinh ra từ một chuỗi Q=(q1,q2,…,qT)

Và: P(Q| λ) = 𝜋𝑞1 𝑎𝑞1𝑞2 𝑎𝑞2𝑞3 … . 𝑎𝑞𝑇−1𝑞𝑇 là xác suất sinh ra một chuỗi Q=q1,…,qT

từ mô hình λ.

Vậy nên: P(O|λ) = q1,q2,...,qT πq1 bq1 (o1)aq1q2 bq2 (o2)...aqT−1qT bqT (oT )

Số phép toán phải thực hiện 2T*N^T rất lớn.

Xem Ví dụ trên đầu: O = { 3 1 3}

Với một chuỗi Q cụ thể P(3 1 3, hot cold hot) =

P(hot|start)*P(hot|hot)*P(cold|hot)*P(3|hot)*P(1|hot)*P(3|cold)

Với tất cả các chuỗi sinh ra O: P(3 1 3) = P( 3 1 3|cold cold cold)+P(3 1 3|cold

cold hot) +…

VỚI CÁCH RẤT DÀI NÀY KHÔNG KHẢ THI VẬY TA SẼ XEM XÉT HAI GIẢI

THUẬT SAU GIÚP SỐ LƯỢNG PHÉP TÍNH ÍT HƠN.

GIẢI THUẬT FORWARD:

Đặt 𝛼𝑡 (𝑗) là xác suất ở trạng thái Sj sau khi quan sát được t quan sát O=o1…ot

αt(j) =P(o1…ot,qt=Sj|λ)

Ví dụ:



Hình 10: Q trình thực hiện giải thuật Forward



16



Trong đó: 𝛼2 (2) = 𝛼1 (2) ∗ 0,14 + 𝛼1 (1) ∗ 0,08

αt(j) chính là tổng xác xuất trên tất cả các đường dẫn tới ô trạng thái Sj khi đã quan

sát được t quan sát O.

Ta có:

αt(j) = ∑𝑁

𝑖=1 𝛼𝑡−1 (𝑖) ∗ 𝑎𝑖𝑗 ∗ 𝑏𝑗(𝑜𝑡 )

với:

𝛼𝑡−1 (𝑖) is previous forward path probability

aij là xác xuất chuyển trạn thái từ Si sang Sj

bj(ot) là xác suất quan sát được ot tại trạng thái Sj

Thủ tục forward:

B1: khởi tạo

α1(j) = πjbj(o1), 1 ≤ j ≤ N

B2: quy nạp

αt (j) = ∑𝑁

𝑖=1 𝛼𝑡−1 (i) aij]bj (ot) với 1<=j<=N và 1
B3: kết thúc

P(O|λ) = 𝛼 𝑇 (𝑞𝐹)=∑𝑁

𝑖=1 αT (i)



GIẢI THUẬT BACKWARD

Gọi βt(i) là xác suất mà tại trạng thái Si thời điểm t quan sát được chuỗi trạng thái

O(ot+1,…,oT)

Ta có: βt(i) = P(ot+1ot+2 ...oT |qt = si, λ)

Thủ tục Backward:

Khởi tạo: βT (i)=1, 1 ≤ i ≤ N

Quy nạp: βt (i) = ∑𝑁

𝑗=1 β𝑡+1 (j) aij]bj (𝑜𝑡+1 ) với t=T-1,T-2,…,1 và 1<=i<=N

Minh họa:



Hình 11: Quá trình thực hiện giải thuật Backward



17



3.4



Thuật tốn Viterbi



u cầu: Tìm ra chuỗi trạng thái tối ưu nhất Q={q1,…,qT} đã phát sinh ra

O

Việc tìm ra Q này được gọi là quá trình decoding.

Để tìm ra Q tối ưu nhất ta cần có một tiêu chí nào đó và sau đây sẽ xem xét hai tiêu

chí để xem ta nên chọn tiêu chí nào trong hai tiêu chí này:

- Tiêu chí 1: tại thời điểm t chọn ra qt có độ khả thi cao nhất thông qua xác suất:

P(qt=Si|O,λ).

Đặt (𝑖) = P(𝑞𝑡 = 𝑆𝑖 |𝑂, 𝜆) => ∑𝑁

𝑖=1 γt(i) = 1 với mọi t

𝛼(𝑖)𝛽(𝑖)

Suy ra: (𝑖) = 𝑃(𝑂|𝜆) trạng thái tối ưu nhất tại thời điểm t là

Tức là qt =i với 1<=i<=N sao cho (𝑖) đạt cực đại. Từ đó tìm ra qt và Q.

Tuy nhiên: đôi khi Q không tồn tại vì có thể có xác xuất chuyển trạn thái bằng 0

do đó ta sẽ xem sét tiêu chí tiếp theo (Được sử dụng chủ yếu)

- Tiêu chí 2: tìm ra chuỗi Q sao cho P(Q,O|λ) đạt cực đại.

Giải pháp là thuật tốn viterbi sau đây.

Thuật tốn Viterbi

Xem ví dụ:



Hình 12: Q trình hoạt động thuật tốn Viterbi

Ví dụ trên ta thấy cách tính của biến vt(j) biến này sẽ được ký hiệu lại là 𝜎t(j).

Biến 𝜎t(j) là xác suất cao nhất của chuỗi trạng thái trên đường dẫn đến trạng thái Sj

ở thời điểm t và đã quan sát được o1,…,ot với mơ hình λ cho trước.

Ta có:

18



𝛿𝑡 (𝑖) =

Hay :



max 𝑃(𝑞1 , 𝑞2 , … , 𝑞𝑡 = 𝑆𝑖 , 𝑂1 𝑂2 … 𝑂𝑡 |𝜆)



𝑞1 ,𝑞2 ,…,𝑞𝑡



𝛿𝑡 (𝑖) = max 𝛿𝑡−1 (𝑖) ∗ 𝑎𝑖𝑗 ∗ 𝑏𝑗(𝑜𝑡)

1≤𝑖≤𝑁



Để lưu lại chuỗi trạng thái ta dữ lại vết của đường dẫn tốt nhất tại thời điểm t trạng

thái Si thông qua mảng 𝜓𝑡 (𝑖) là mảng 2 chiều T quan sát và chiều còn lại là N trạng

thái. Mảng 𝜓𝑡 (𝑗) chưa các biến 1<=i<=N là vết cần lưu.

Thủ Tục viterbi

Khởi tạo:

𝛿𝑡 (𝑖) = 𝜋𝑖 𝑏𝑖 (𝑂1 ), 1 ≤ 𝑖 ≤ 𝑁

𝜓1 (𝑖) = 0

Lặp:

𝛿𝑡 (𝑗) = max [𝛿𝑡−1 (𝑖)𝑎𝑖𝑗 ]𝑏𝑗 (𝑂𝑡 ), 2 ≤ 𝑡 ≤ 𝑇, 1 ≤ 𝑗 ≤ 𝑁

1≤𝑖≤𝑁



𝜓𝑡 (𝑗) = 𝑎𝑟𝑔 max [𝛿𝑡−1 (𝑖)𝑎𝑖𝑗 ], 2 ≤ 𝑡 ≤ 𝑇, 1 ≤ 𝑗 ≤ 𝑁

1≤𝑖≤𝑁



Tức là với 𝜓𝑡 (𝑗) = i với 1<=i<=N sao cho 𝛿𝑡−1 (𝑖)𝑎𝑖𝑗 max

Kết thúc:



𝑝∗ = max [𝛿𝑇 (𝑖)]

1≤𝑖≤𝑁



𝑞𝑡∗ = 𝑎𝑟𝑔 max [𝛿𝑇 (𝑖)]

1≤𝑖≤𝑁



Tức là 𝑞𝑡∗ =i sao cho 𝛿𝑇 (𝑖) max.

Tìm chuỗi Q bằng cách quay lui:

∗ ),

𝑞𝑡∗ = 𝜓𝑡+1 (𝑞𝑡+1

𝑡 = 𝑇 − 1, 𝑇 − 2, … , 1

∗ )

Với 𝜓… (… ) là mảng 2 chiều T quan sát N trạng thái và 𝜓𝑡+1 (𝑞𝑡+1

là giá

trị một ô trong mảng.

Sau khi quay lui ta được chuỗi 𝑄 = 𝑞1∗ 𝑞2∗ … 𝑞𝑇∗ là chuỗi cần tìm.



3.5



Thuật tốn Baum Welch



Bài tốn cho một chuỗi quan sát O tìm hoặc cật nhật lại tham số của mơ

hình λ(A,B,π) sao cho P (O|λ) cực đại ta được bộ tham số mới 𝜆̅ = (𝐴̅, 𝐵̅ , 𝜋̅).

Ta có: P (O|𝝀̅) > P (O|λ) trong mọi trường hợp trừ khi λ đã đạt đến tối ưu cục

bộ.

Để giải quyết bài toán trên ta dùng thuật tốn Baum Welch.

Tính tốn:

Ta có 𝑎̅𝑖𝑗 =



kỳ vọng việc chuyển trạng thái từ Si sang Sj

kỳ vọng việc chuyển trạng thái từ Si



Để tính được tử số ta định nghĩa biến: 𝜉𝑡 (𝑖, 𝑗) là xác suất mà hệ ở trạng thái Si thời

điểm t và ở thời điểm t+1 hệ phải ở trạng thái Sj.

𝜉𝑡 (𝑖, 𝑗) = 𝑃(𝑞𝑡 = 𝑆𝑖 , 𝑞𝑡+1 = 𝑆𝑗 |𝑂, 𝜆)

Để tính được 𝜉𝑡 (𝑖, 𝑗) ta xem xét một biến khác đó là

Not-quite𝜉𝑡 (𝑖, 𝑗) = 𝑃(𝑞𝑡 = 𝑆𝑖 , 𝑞𝑡+1 = 𝑆𝑗 , 𝑂|𝜆)

Biến này khác 𝜉𝑡 (𝑖, 𝑗) ở đ𝑖ề𝑢 𝑘𝑖ệ𝑛 𝑂

Ta có: Not-quite𝜉𝑡 (𝑖, 𝑗) = αt(i)ai jb j(ot+1)βt+1( j)

𝑃(𝑋,𝑌|𝑍)

Mà P(X|Y, Z) = 𝑃(𝑌|𝑍)

Suy ra: 𝜉𝑡 (𝑖, 𝑗) =



Not−quite𝜉𝑡 (𝑖,𝑗)

𝑃(𝑂|𝜆)



Và 𝑃(𝑂|𝜆) = α𝑇(𝑁) = β𝑇(1) = ∑𝑁

𝑗=1 𝛼(𝑗)

19



𝛼𝑡 (𝑖)𝑎𝑖𝑗 𝑏𝑗 (𝑂𝑡+1 )𝛽𝑡+1 (𝑗)

𝛼𝑡 (𝑖)𝑎𝑖𝑗 𝑏𝑗 (𝑂𝑡+1 )𝛽𝑡+1 (𝑗)

=

∑𝑁

𝑝(𝑂|𝜆)

𝑘=1 αT(k)



𝜉𝑡 (𝑖, 𝑗) =



Ta có: ∑𝑇−1

𝑡=1 𝜉𝑡 (𝑖, 𝑗) là kỳ vọng của việc chuyển trạng thái từ Si sang Sj từ đây đã có

thể tính được 𝑎̅𝑖𝑗 .

Đặt: 𝛾𝑡 (𝑖) =



𝑃(𝑞𝑡 = 𝑗,𝑂|λ)

𝑃(𝑂|λ)



suy ra 𝛾𝑡 (𝑖) =



α𝑡( 𝑗)β𝑡( 𝑗)

𝑃(𝑂|λ)



Mà theo thuật tốn Backward ta có:

βt (i) = ∑𝑁

𝑗=1 β𝑡+1 (j) aij]bj (𝑜𝑡+1 )

suy ra : 𝛾𝑡 (𝑖) = ∑𝑁

𝑗=1

hay 𝛾𝑡 (𝑖) =



α𝑡( 𝑗)β𝑡+1 (j) aij]bj (𝑜𝑡+1 )



∑𝑁

𝑗=1 𝜉𝑡 (𝑖, 𝑗)



𝑃(𝑂|λ)



Vậy ta có:

∑𝑇−1

𝑡=1 𝜉𝑡 (𝑖, 𝑗) : là kỳ vọng của việc chuyển trạng thái từ Si sang Sj từ đây đã có thể

tính được 𝑎̅𝑖𝑗 .

∑𝑇−1

𝑡=1 𝛾𝑡 (𝑖) : là kỳ vọng của việc chuyển trạng thái từ Si.

Suy ra được:

∑𝑇−1

∑𝑇−1

𝑡=1 𝜉𝑡 (𝑖, 𝑗)

𝑡=1 𝜉𝑡 (𝑖, 𝑗)

𝑎̅𝑖𝑗 = 𝑇−1 𝑁

=

∑𝑡=1 ∑𝑗=1 𝜉𝑡 (𝑖, 𝑗)

∑𝑇−1

𝑡=1 𝛾𝑡 (𝑖)

Mặt khác có 𝑣𝑘 𝑡ℎ𝑢ộ𝑐 𝑉 với V = (v1,v2,…,vk) là tập tất cả các sự kiện có thể quan

sát được có thể . và vk là một sự kiện có thể quan sát được.

Kỳ vọng số lần trong trạng thái Sj quan sát được vk

𝑏̅𝑗 (𝑘) =

Kỳ vọng số lần trong trạng thái Sj

Suy ra:

𝑏̅𝑗 (𝑘) =



∑𝑇 𝑡=1 𝛾𝑡 (𝑗)

.𝑂𝑡 = 𝑣𝑘



∑𝑇

𝑡=1 𝛾𝑡 (𝑗)



(Chú ý ở tử số thì tính với tất cả t sao cho tại thời điểm t quan sát được vk).

Từ các cơng thức trên ta đã đính được bộ tham số mới của mơ hình 𝜆̅



Chương 4: Áp dụng mơ hình markov ẩn trong nhận

dạng tiếng nói

4.1



Mơ hình ngơn ngữ N-gram



Mơ hình N-gram là một mơ hình xác xuất

Cách cơ bản để tính xác xuất là đếm. Ta xem xét trong một ngôn ngữ tự nhiên cơ

bản được biểu thị bằng corpus

Xác xuất 1 từ trong corpus được tính bằng cách đếm số từ đó/ tống số từ trong

corpus.

Ta xem xét một lý thuyết tính xác xuất cơ bản

20



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

3 Thuật toán Forward và Backward

Tải bản đầy đủ ngay(0 tr)

×