19. AU “fulllist” 20 CO “tiedlist”
4.3.3 Sử dụng mạng từ trong hệ thống nhận dạng
Khi mạng từ được nạp vào trong hệ thống nhận dạng, một từ điển phiên âm của hệ thống sẽ được dùng để tạo ra một mạng tương đương bao gồm các đơn vị nhận dạng cơ bản của hệ thống, các âm đơn hoặc các âm ba. Tùy thuộc vào cấu hình của hệ thống mà các âm ba có thể là các âm ba giới nội từ hay âm ba liên từ. Một từ có thể có nhiều phiên âm, khi đó sẽ có nhiều nhánh của mạng, mỗi nhánh tương ứng với mỗi phiên âm của từ. Mạng này được gọi là mạng HMM. Như vậy ta có thể thấy một cấu trúc ba mức của một mạng để dùng nhận dạng: mức từ, mức mô hình và mức trạng thái. Hình 4.11 mô tả cấu trúc này của hệ thống nhận dạng. Trong hình này các hình ovan biểu thì các từ, hình vuông biểu diễn một nhãn kết thúc một từ (word end).
Hình 4.11. Cấu trúc ba lớp của mạng từ nhận dạng
Mạng dùng để nhận dạng cuối cùng bao gồm các trạng thái và các cung nối chúng với nhau. Các cung trong một mô hình HMM chính là xác suất chuyển trạng thái được xác định bởi các tham số của HMM. Các cung giữa các mô hình có xác suất tương đương nhau, các cung giữa các từ có xác suất được xác định bởi mô hình ngôn ngữ. sau ba hai a ba Mức từ Mức trạng thái b Mức từ
4.3.4 Giải mã
Nhiệm vụ của quá trình giải mã là tìm ra một đường đi trong mạng HMM có xác suất lớn nhất. Để thực hiện công việc này một thuật toán tương tự thuật toán Viterbi được dùng, gọi là thuật toán chuyển thẻ bài (Token passing).
Giả thiết mỗi trạng thái j của một mô hình HMM tại thời điểm t giữ một thẻ bài chứa xác suất bán phần φj(t). Xác suất này là xác suất của quan sát từ o1 tới otvới mô hình tại trạng thái j và thời điểm t. Tại mỗi trạng thái i có nhiều rẽ nhánh, thuật toán sẽ làm như sau:
- Chuyển một bản sao của thẻ bài tại trạng thái i tới tất cả các trạng thái j mà có liên kết với trạng thái i, tăng log xác suất của bản sao: log[aij]+log[(bj(ot)]
- Tính toán tất cả các thẻ bài và sẽ xóa hết các thẻ bài, chỉ giữ lại thẻ bài tốt nhất. Mỗi một thẻ bài di chuyển trong mạng đều duy trì một vết trên đường đi của nó. Số lượng thông tin lưu trên vết phụ thuộc vào yêu cầu của hệ thống, thông thường chỉ dãy các từ là được lưu lại.
Thuật toán chuyển thẻ bài // Khởi động
<Một thẻ bài có giá trị bằng 0 được gán cho tất cả các trạng thái khởi đầu trong mạng> // Chuyển thẻ bài
For t=1 to T do // T là số khung tín hiệu của phát âm For all trạng thái i do
<Chuyển một thẻ bài của trạng thái i tới tất cả các trạng thái j mà có nối kết với trạng thái i, đồng thời cập nhật giá trị của thẻ bài log[aij]+log[(b(o)] >;
For all trạng thái i do
<Tìm thẻ bài có giá trị log xác suất là tốt nhất. Xóa tất cả các thẻ bài khác >; End for
// Dừng
<Tìm tất cả các trạng thái kết thúc, trạng thái tốt nhất sẽ ứng với đường đi tốt nhất cần tìm>
Trong Hình 4.12 ta thấy trạng thái 3 được nhận nhiều thẻ bài từ các trạng thái 1 và 2 và từ chính bản thân nó. Sau đó chỉ có một thẻ bài duy nhất được giữ lại.
Hình 4.12 Minh họa thuật toán chuyển thẻ bài.
Một mạng lớn mà có nhiều nút thì công việc tìm kiếm sẽ rất lâu và tốn thời gian. Một giải pháp nhằm giảm có hiệu quả việc tính toán đó là chỉ cho phép các thẻ bài mà có cơ hội là một trong các thẻ bài tốt nhất mới được tồn tại. Cơ chế này gọi là cắt tỉa (pruning). Tại mỗi bước các thẻ bài mà có giá trị xác suất nằm ngoài khoảng giá trị cho phép so với thẻ bài có xác suất cao nhất sẽ bị xóa đi. Khoảng giá trị cho phép (beam- width) được điều chỉnh bởi dung hòa giữa yếu tố tốc độ và hiệu quả của thuật toán tìm kiếm. 1 2 +P13 3 +P23 +P33
Kết thúc quá trình tìm kiếm với mỗi phát âm ta nhận được một dãy các từ với xác suất cao nhất là kết quả nhận dạng.