Tôi hiện đang sử dụng đào tạo Viterbi cho một vấn đề phân đoạn hình ảnh. Tôi muốn biết những lợi thế / bất lợi của việc sử dụng thuật toán Baum-Welch thay vì đào tạo Viterbi.
Tôi hiện đang sử dụng đào tạo Viterbi cho một vấn đề phân đoạn hình ảnh. Tôi muốn biết những lợi thế / bất lợi của việc sử dụng thuật toán Baum-Welch thay vì đào tạo Viterbi.
Câu trả lời:
Thuật toán Baum-Welch và thuật toán Viterbi tính toán những thứ khác nhau.
Nếu bạn biết xác suất chuyển tiếp cho phần ẩn của mô hình và xác suất phát xạ cho các đầu ra có thể nhìn thấy của mô hình của bạn, thì thuật toán Viterbi cung cấp cho bạn một chuỗi các trạng thái ẩn hoàn toàn có điều kiện trên cả đầu ra và đặc tả mô hình của bạn.
Thuật toán Baum-Welch cung cấp cho bạn cả xác suất chuyển tiếp ẩn có khả năng nhất cũng như tập xác suất phát xạ có khả năng nhất chỉ được đưa ra ở các trạng thái quan sát của mô hình (và, thông thường, giới hạn trên về số lượng trạng thái ẩn). Bạn cũng có được điểm khả năng cao nhất "theo chiều" trong các trạng thái ẩn, thường hơi khác so với chuỗi ẩn duy nhất có khả năng nói chung.
Nếu bạn biết mô hình của mình và chỉ muốn các trạng thái tiềm ẩn, thì không có lý do gì để sử dụng thuật toán Baum-Welch. Nếu bạn không biết mô hình của mình, thì bạn không thể sử dụng thuật toán Viterbi.
Chỉnh sửa để thêm: Xem bình luận của Peter Smit; có một số chồng chéo / mơ hồ trong danh pháp. Một số câu châm chọc đã dẫn tôi đến một chương của Luis Javier Rodrıguez và Ines Torres trong "Nhận dạng mẫu và phân tích hình ảnh" (ISBN 979-3-540-40217-6, tr. 845-857) thảo luận về tốc độ so với sự đánh đổi chính xác của hai thuật toán.
Tóm lại, thuật toán Baum-Welch về cơ bản là thuật toán Tối đa hóa kỳ vọng (EM) được áp dụng cho HMM; như một thuật toán loại EM nghiêm ngặt, bạn được đảm bảo hội tụ tối thiểu tối đa cục bộ, và vì vậy đối với các vấn đề không chính thống, hãy tìm MLE. Tuy nhiên, nó đòi hỏi hai lần chuyển dữ liệu của bạn cho mỗi bước và độ phức tạp trở nên rất lớn về độ dài của dữ liệu và số lượng mẫu đào tạo. Tuy nhiên, bạn kết thúc với khả năng có điều kiện đầy đủ cho các tham số ẩn của bạn.
Thuật toán đào tạo Viterbi (trái ngược với "thuật toán Viterbi") xấp xỉ MLE để đạt được tốc độ đạt được với chi phí chính xác. Nó phân đoạn dữ liệu và sau đó áp dụng thuật toán Viterbi (theo tôi hiểu) để có được chuỗi trạng thái có khả năng nhất trong phân đoạn, sau đó sử dụng chuỗi trạng thái rất có thể đó để ước tính lại các tham số ẩn. Điều này, không giống như thuật toán Baum-Welch, không cung cấp khả năng có điều kiện đầy đủ của các tham số ẩn, và do đó kết thúc việc giảm độ chính xác trong khi tiết kiệm đáng kể (chương báo cáo 1 đến 2 bậc độ lớn) thời gian tính toán.
Chuyển tiếp-lùi được sử dụng khi bạn muốn đếm 'những thứ vô hình'. Ví dụ: khi sử dụng EM để cải thiện mô hình thông qua dữ liệu không được giám sát. Tôi nghĩ rằng bài báo của Petrov là một ví dụ. Trong kỹ thuật tôi nghĩ đến, trước tiên bạn huấn luyện một mô hình với dữ liệu chú thích với các chú thích khá thô (ví dụ: thẻ cho 'Động từ'). Sau đó, bạn tùy ý phân chia khối lượng xác suất cho trạng thái đó thành hai đại lượng hơi không bằng nhau và đào tạo lại, chạy về phía trước để tối đa hóa khả năng bằng cách phân phối lại khối lượng giữa hai trạng thái.