luyện trên dữ liệu gán nhãn
Đầu vào chính là các mô hình HMM đã được khởi tạo dữ liệu huấn luyện đã
được gán nhãn với biên xác định của từng âm vị.
Tool để thực hiện việc này trong HTK là HRest. Nhưđã giới thiệu về HMM HRest cũng sử dụng Baum-Welch Re-estimation. Như đã giới thiệu ở trên phần thuật giải Baum-Welch nó liên quan đến việc tìm xác suất đạt mỗi trạng thái tại mỗi frame theo thời điểm t sử dụng thuật giải Forward-Backward. Xác suất này dùng để
tính giá trị trung bình các tham số của HMM. Thuật giải được mô tả bằng lưu đồ
KHOA CNTT –
ĐH KHTN
HMM khởi tạo:λao
Thuật toán forward-Backward
Cập nhật tham số HMM: λao.
HÌNH 12 – Lưu đồ huấn luyện từ đơn của công cụ HRest (HTK)
Giả sử chúng ta cần huấn luyện HMM cho âm vị /a/ (HMM λa). HRest sẽ
load mô hình HMM khởi tạo λao và quá trình ước lượng tham số sử dụng tất cả các
đoạn dữ liệu được gán nhãn (được xác định trong file đánh nhãn) cho âm vị /a/ áp dụng thuật toán Baum-Welch để ước lượng các tham số cho HMM λa theo hình vẽ
trên.
4.1.2. Thuật giải Embedded training - huấn luyện trên dữ liệu âm thanh không gán nhãn âm vị
Thuật giải này dựa trên thuật toán Baum-Welch nên còn có tên gọi là Embedded Baum-Welch.
Thuật giải huấn luyện cho từng đơn vị riêng lẻ thích hợp cho mô hình HMM cho từđơn và nó được khởi tạo dựa trên dữ liệu gán nhãn. Đối với nhận dạng tiếng nói dùng mô hình dưới từ (âm vị) thì thuật toán Embedded training thường được sử
dụng.
Không giống như quá trình huấn luyện đã mô tảở trên, embedded training sử
dụng tất cả các dữ liệu huấn luyện để cập nhật tất cả các HMM. Trong HTK công cụ
thực hiện chức năng này có tên là HERest.
false true
Hội tụ
KHOA CNTT –
ĐH KHTN
Hoạt động của thuật toán như sau. Đầu tiên chương trình load tất cả các tập hợp các định nghĩa của mô hình HMM. Mỗi file huấn luyện sẽ có 1 file đánh nhãn
đi kèm với nó. File đánh nhãn này chỉ chứa thứ tự các âm vị chứ không chứa biên các âm vị. Embedded training xử lý mỗi file huấn luyện như sau: Sau khi load toàn bộ file dữ liệu chương trình sẽ sử dụng file gán nhãn (như đã nói ở trên) để xây dựng 1 mô hình HMM tổng hợp cho toàn bộ câu. Mô hình HMM tổng hợp được tạo ra bằng cách móc nối các mô hình HMM cho từng âm vị theo thứ tự của âm vị chứa trong file đánh nhãn. Sau đó thuật toán Forward và Backward để tính các giá trị
trọng số trung bình của HMM tổng hợp theo cách bình thường. Khi tất cả các file huấn luyện được xử lý các tham số mới sẽ được tính bằng cách lấy các giá trị trung bình.
Giả sử ban đầu chúng ta có các định mô hình HMM (chưa được huấn luyện) của các âm vị sau:
/m/: λm, /o6/2: λo6 , /t/: λt , /h/: λh, /b/: λb, /a/: λa, /i/: λi, /sil/3: λsil
HÌNH 13 – Dãy sóng âm “MO6T MO6T HAI HAI BA MO6T”
Dữ liệu huấn luyện là dãy âm tiết: “một một hai ba một”, viết theo ký hiệu âm vị được chúng tôi quy ước là “MO6T MO6T HAI HAI BA MO6T”
Thứ tự âm vị của dãy âm tiết:
/sil/ /m/ /o6/ /t/ /sil/ /m/ /o6/ /t/ /sil/ /h/ /a/ /i/ /sil/ /h/ /a/ /i/ /sil/ /b/ /a/ /sil/ /m/ /o6/ /t/ /sil/
Mô hình HMM tổng hợp trên toàn câu:
λsil -> λm-> λo6-> λt->λsil -> λm -> λo6 -> λt -> λsil -> λh -> λa -> λi ->
KHOA CNTT –
ĐH KHTN
Ta có mô hình huấn luyện Embedded training như sau:
h a i … b a sil k b o6 n sil … data/tr1.lab data/tr2.lab data/tr3.lab c a n sil … data/tr3.lab
HÌNH 14 – Mô hình huấn luyện Embedded training
Khi huấn luyện, nên theo dõi hiệu quả của quá trình huấn luyện và nên dừng khi thấy không kết quả huấn luyện không tốt hơn. Ta sẽ xem giá trị log likelihood trung bình trên mỗi frame của file huấn luyện. Độ đo này là điều kiện hội tụ của thuật toán Embedded training. Tuy nhiên để hội tụ sẽ mất rất nhiều thời gian. Tệ
hơn nữa nếu huấn luyện quá lâu chúng sẽ gây ra hiện tượng quá luyện vì các mô hình HMM sẽ quá khớp với dữ liệu huấn luyện do đó tính tổng quát của nó không cao. Trong thực tế thì số bước huấn luyện có thể là từ 2 đến 5 bước đối với nhận dạng âm vị. Chúng ta có thể quyết định số bước này thông qua quan sát kết quả sau mỗi bước huấn luyện hoặc qua kết quả huấn luyện.
Để đạt được độ chính xác cao, nên chẩn bị lượng dữ liệu huấn luyện càng nhiều càng tốt. Theo thực nghiệm, với lượng dữ liệu là vài giờ đọc thì thơi gian của mỗi bước lặp cũng có thể lên đến vài giờ. Để tăng hiệu quả tính toán thì người ta áp dụng 2 giải pháp:
KHOA CNTT –
ĐH KHTN
Giải pháp thứ nhất được HERest (thư viện HTK) sử dụng: cắt bớt những tính toán không cần thiết trong công thức của thuật toán forward-backward. Cơ chế này
được gọi là pruning. HERest sẽ tính xác suất backward βj (t) trước sau đó tính xác suất forward αj (t) sau. Tính toán αj(t) và βj (t) trên tất cả các trạng thái j và tất cả
các thời điểm t là không cần thiết vì nhiều tính toán trong số đó là không có ảnh hưởng đáng kể tới kết quả. Do đó áp dụng prunning sẽ giảm số trạng thái được xét
αi(t) và βi(t).Giảm tính toán trên forward αj (t) luôn luôn được thực hiện vì nó không
ảnh hưởng nhiều tới kết quả và trong HTK, nó được thực hiện tự động. Còn giảm bớt số trạng thái trên backward βi(t) thì được thực hiện thông qua ngưỡng do người dùng đưa vào. Ngưỡng này phụ thuộc vào dữ liệu nên cần thông qua thực nghiệm
để kiểm chứng.
Giải pháp thứ hai để tăng tốc độ tính toán là dùng nhiều CPU chạy song song.
4.2. Các công thức ước lượng tham số của mô hình HMM 4.2.1. Ước lượng tham số khi huấn luyện các mô hình HMM độc lập