Şu anda bir görüntü bölümleme sorunu için Viterbi eğitimini kullanıyorum . Viterbi eğitimi yerine Baum-Welch algoritmasını kullanmanın avantajlarının / dezavantajlarının ne olduğunu bilmek istedim.
Şu anda bir görüntü bölümleme sorunu için Viterbi eğitimini kullanıyorum . Viterbi eğitimi yerine Baum-Welch algoritmasını kullanmanın avantajlarının / dezavantajlarının ne olduğunu bilmek istedim.
Yanıtlar:
Baum-Welch algoritması ve Viterbi algoritması farklı şeyleri hesaplar.
Modelinizin gizli kısmı için geçiş olasılıklarını ve modelinizin görünür çıktıları için emisyon olasılıklarını biliyorsanız, Viterbi algoritması size hem çıktılarınızda hem de model spesifikasyonunuzda koşullu olarak gizli durumların en olası tam sırasını verir .
Baum-Welch algoritması size hem en olası gizli geçiş olasılıklarını hem de yalnızca modelin gözlemlenen durumları (ve genellikle gizli durumların sayısının üst sınırı) verildiğinde en olası emisyon olasılıkları kümesini verir. Ayrıca, gizli durumlardaki genel olarak büyük olasılıkla tek gizli diziden biraz farklı olan "noktaya doğru" en yüksek olasılık noktalarını da alırsınız.
Modelinizi biliyorsanız ve sadece gizli durumları istiyorsanız, Baum-Welch algoritmasını kullanmak için bir neden yoktur. Modelinizi bilmiyorsanız, Viterbi algoritmasını kullanamazsınız.
Eklemek için düzenlendi: Peter Smit'in yorumuna bakın; isimlendirmede bir miktar örtüşme / belirsizlik var. Bazıları beni "Patern Tanıma ve Görüntü Analizi" (ISBN 978-3-540-40217-6, s. 845-857) ile Luis Javier Rodrıguez ve Ines Torres'in hızın doğruluk değiş tokuşlarına karşı tartışıldığı bir bölüme yönlendirdi. iki algoritma.
Kısaca, Baum-Welch algoritması esasen bir HMM'ye uygulanan Beklenti-Maksimizasyon (EM) algoritmasıdır; katı bir EM-tipi algoritma olarak en azından yerel bir maksimuma dönüşmeniz garanti edilir ve bu nedenle tek modlu problemler için MLE'yi bulun. Yine de, her adım için verilerinizin üzerinden iki geçiş yapılması gerekir ve karmaşıklık, verilerin uzunluğu ve egzersiz örneği sayısı açısından çok büyük olur. Ancak, gizli parametreleriniz için tam koşullu olasılıkla sonuçlanırsınız.
Viterbi eğitim algoritması ("Viterbi algoritmasının" aksine), doğruluk maliyetiyle hızda bir kazanç elde etmek için MLE'ye yaklaşır. Verileri bölümlere ayırır ve daha sonra segmentte en olası durum sırasını elde etmek için (anladığım gibi) Viterbi algoritmasını uygular, daha sonra gizli parametreleri yeniden tahmin etmek için en olası durum sırasını kullanır. Bu, Baum-Welch algoritmasından farklı olarak, gizli parametrelerin tam koşullu olasılığını vermez ve bu nedenle önemli ölçüde tasarruf sağlarken (bölüm 1 ila 2 büyüklük sırası rapor eder) hesaplama süresinin doğruluğunu azaltır.
İleri-geri 'görünmez şeyleri' saymak istediğinizde kullanılır. Örneğin, denetimsiz veriler aracılığıyla bir modeli geliştirmek için EM kullanılırken. Bence Petrov'un makalesi bir örnek. Düşündüğüm teknikte, ilk olarak oldukça kaba ek açıklamalara sahip açıklamalı verileri olan bir modeli eğitiyorsunuz (örneğin, 'Fiil' etiketi). Daha sonra, bu durumun olasılık kütlesini keyfi olarak iki eşit olmayan miktarda bölünür ve iki eyalet arasındaki kütleyi yeniden dağıtarak olasılığı en üst düzeye çıkarmak için ileri geri koşarak yeniden eğitirsiniz.