Sự khác biệt giữa thuật toán Baum-Welch và đào tạo Viterbi là gì?


18

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.


3
Chính xác thì bạn có ý nghĩa gì về 'đào tạo viterbi'?
bmargulies

2
Trong vấn đề của tôi, tôi có một mảng dữ liệu có giá trị thực mà tôi đang mô hình hóa dưới dạng HMM (đặc biệt là một hỗn hợp của nhiều hàm mật độ, mỗi hàm có tham số không xác định). Bây giờ tôi giả sử rằng tôi biết các xác suất chuyển trạng thái. Ý tôi là của Viterbi Trainig là thuật toán sau. 1) Tự ý gán trạng thái cho từng điểm dữ liệu (khởi tạo) 2) Thực hiện MLE của các tham số hàm mật độ. 3) Ước tính lại trạng thái cho từng điểm (có thể được thực hiện với Viterbi Alg). 4) Goto bước 2 và lặp lại trừ khi đạt được tiêu chí dừng.
Gal kỹ thuật số

1
Câu hỏi tương tự cũng được đặt ra đối với stack overflow: viterbi training vs baum-Welch Thuật toán
Franck Dernoncourt

Câu trả lời:


21

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.


7
Nếu tôi đúng, bạn kết hợp đào tạo Viterbi và giải mã Viterbi.
Peter Smit

1
Bạn đúng. Tôi không biết rằng có một quy trình chỉ sử dụng thuật toán Viterbi để tính toán xác suất chuyển tiếp. Dường như - khi đọc thêm - giống như có sự trùng lặp về danh pháp giữa phân tích HMM trạng thái rời rạc và phân tích trạng thái rời rạc / thời gian rời rạc bằng cách sử dụng phân phối hỗn hợp Gaussian. Câu trả lời của tôi nói về thiết lập DTDS HMM, chứ không phải thiết lập mô hình hỗn hợp.
Giàu

@Rich: Bạn có thể chỉ cho tôi một số tài liệu có thể truy cập (như hướng dẫn HMM gốc của Rabiner) trên Viterbi Training không?
Jacob

4
@Jacob Huấn luyện Viterbi cũng có tên là Segmental K-Means, xem bài viết này của Juang và Rabiner.
alto

1
@Anoldmaninthesea. Nhìn vào khả năng giữa các kỷ nguyên là cách thông thường để đánh giá sự hội tụ (khả năng sẽ luôn tăng ở mỗi kỷ nguyên và sau đó dừng lại khi bạn đạt đến cực đại cục bộ). Một điều khác bạn có thể làm là dừng sớm bằng cách theo dõi khả năng dữ liệu không được sử dụng trong EM.
alto

0

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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.