Algoritmanın Çalışma Prensibi
Viterbi algoritması, bir Gizli Markov Modeli (HMM) içindeki en olası gizli durum dizisini bulmak için dinamik programlamayı kullanır. Olası tüm yolları kaba kuvvetle denemek O(Nᵀ) zaman alır ve pratikte olanaksızdır; Viterbi bunu O(T × N²)'ye indirerek çözülebilir kılar. Algoritma, her zaman adımında δ(t, s) değerini — o adıma kadar s durumuna ulaşan en yüksek olasılıklı yolu — ve ψ(t, s) iz işaretçisini — bu yolun hangi önceki durumdan geldiğini — günceller. Tüm adımlar tamamlandıktan sonra son adımın en yüksek δ değerine sahip durumundan başlanarak ψ tablosu geriye taranır ve en olası durum dizisi (en iyi yol) elde edilir. Bu geri izleme adımı algoritmanın ikinci aşamasını oluşturur.
Başlıca Uygulama Alanları
🎙️ Konuşma Tanıma (ASR)
HMM tabanlı akustik modellerde fonem sıralamasını belirler. Her ses çerçevesinin MFCC özellikleri akustik olasılıklara dönüştürülür; Viterbi en olası fonem — ve dolayısıyla kelime — dizisini türetir. Kaldi ve ESPnet gibi araç setleri bu yaklaşımı üretimde kullanmaktadır.
📝 Doğal Dil İşleme
POS etiketleme, NER ve morfolojik analiz görevlerinde CRF (Koşullu Rastsal Alan) modellerinin çözümleme adımı Viterbi ile yapılır. Cümledeki her kelimeye en uygun sözcük türünü ya da varlık etiketini tahmin eder. spaCy ve sklearn-crfsuite bu yaklaşımı kullanır.
🧬 Biyoinformatik
DNA dizi segmentasyonu, gen bölgesi tespiti ve protein yapısı tahmini için profile HMM ile birlikte kullanılır. HMMER aracı, biyolojik dizi analizi için Viterbi tabanlı çözümleme uygular. Gizli evrimsel durumlar gözlemlenen dizi pozisyonlarından çıkarsanır.
📡 Dijital Haberleşme
Algoritmanın doğduğu alan: evrişimli kodlar ve gürültülü kanal üzerinden iletilen sembollerin hatasız çözülmesi. 4G/LTE ve kablosuz ağlarda hata düzeltme kodlayıcılarının çözme (decoding) aşamasında hâlâ kullanılmaktadır.
HMM ile İlişkisi
Gizli Markov Modeli (HMM), üç temel hesaplama problemini çözmek zorundadır: (1) Değerlendirme — verili gözlem dizisinin bu model tarafından üretilme olasılığını İleri Algoritma ile hesaplamak, (2) Çözümleme — en olası gizli durum dizisini Viterbi ile bulmak, (3) Öğrenme — parametreleri Baum-Welch (EM) ile gözlemlerden tahmin etmek. Viterbi, bu üç problemin ikincisini çözer ve HMM'in 'inference' adımının merkezinde yer alır. CTC tabanlı modern derin öğrenme modellerinde bile Viterbi, çıktı olasılıklarını en tutarlı transkripte dönüştürmek için kullanılmaya devam etmektedir.
Beam Search ile Karşılaştırma
Viterbi algoritması, Markov zinciri varsayımı altında kesin optimal çözümü garanti eder. Buna karşılık Beam Search, arama uzayını genişlik olarak kırparak (beam width = k) verimlilik kazanır ancak optimalliği garanti edemez. Büyük kelime dağarcığı ve açık-kelime (open-vocabulary) senaryolarında HMM tabanlı Viterbi hesaplama açısından ölçeklenemez hale gelir; bu durumda Beam Search tercih edilir. Transformer tabanlı dil modelleriyle birlikte çalışırken Beam Search baskın olsa da küçük ve kapalı durum uzaylarında Viterbi hâlâ optimal seçimdir.
Sık Sorulan Sorular
- check_circle Viterbi algoritması neden 'dinamik programlama' olarak sınıflandırılır?: Dinamik programlamanın temel ilkesi olan 'optimal alt yapı' özelliğini kullanır: en olası yolun her alt yolu da kendi bağlamında olasıdır. Bu sayede aynı durum-zaman çifti için tekrar hesaplama yapmak yerine önceki adımda hesaplanan δ değerlerini doğrudan kullanır. Kaba kuvvete göre üstel farkla daha hızlıdır.
- check_circle Viterbi ile Forward algoritması arasındaki fark nedir?: Forward algoritması, tüm olası gizli yollar üzerinden toplam olasılığı hesaplar — P(gözlemler | model). Viterbi ise yalnızca en yüksek olasılıklı tek yolu bulur — argmax P(durumlar, gözlemler | model). İkisi benzer dinamik programlama yapısını paylaşır; ancak Forward 'topla', Viterbi 'maksimum al' operasyonunu kullanır.
- check_circle CRF modellerinde Viterbi nasıl kullanılır?: CRF (Koşullu Rastsal Alan), gözlemler veriliyken etiket dizisi üzerindeki koşullu dağılımı modelleyen bir yapıdır. Tahmin aşamasında en yüksek puanlı etiket dizisini bulmak için Viterbi kullanılır. Lineer zincir CRF'de bu, HMM'deki Viterbi ile neredeyse aynı hesaplamaya karşılık gelir; fark, CRF'nin yayılım ve geçiş potansiyellerini doğrudan logliner olarak tanımlamasıdır.
- check_circle Viterbi algoritmasının kısıtları nelerdir?: Markov varsayımına dayanır — bir sonraki durum yalnızca mevcut duruma bağlıdır, daha uzun bağımlılıkları modelleyemez. Büyük durum uzaylarında (geniş kelime dağarcığı) hesaplama maliyeti artar. Sürekli gözlem dağılımlarında Gaussian HMM ile birleştirildiğinde ayrık durumların belirlenmesi gerekir. Bu kısıtlar yüzünden açık-kelime ASR'de yerini Beam Search ve RNN/Transformer hibrit yaklaşımlarına bırakmıştır.
- check_circle Türkçe NLP'de Viterbi kullanılır mı?: Türkçe morfolojik analiz ve sözcük türü etiketleme araştırmalarında HMM tabanlı Viterbi çözümleme tarihsel olarak kullanılmıştır. Türkçe'nin eklemeli yapısı geniş bir morfolojik durum uzayı gerektirdiğinden modern Türkçe NLP araçları büyük ölçüde derin öğrenme tabanlı mimarilere geçmiş olsa da akademik referans olarak HMM-Viterbi yaklaşımı yerini korumaktadır.