आगे-पिछड़े और विटर्बी एल्गोरिदम के बीच अंतर क्या है?


44

मैं यह जानना चाहता हूं कि छिपे हुए मार्कोव मॉडल (HMM) में अनुमान के लिए फॉरवर्ड-बैकवर्ड एल्गोरिथम और विटर्बी एल्गोरिदम में क्या अंतर हैं।


2
Algortihms (की चाहेंगे वर्णन यहाँ और यहाँ ) अपने प्रश्न का उत्तर या आप कुछ और की तलाश में हैं? क्या आप सोच रहे हैं कि किस एल्गोरिथ्म का उपयोग कब करें? उनकी संबंधित खूबियों की चर्चा खोज रहे हैं?
मॉन्सट

जवाबों:


65

पहले थोड़ा सा बैकग्राउंड शायद यह चीजों को थोड़ा साफ करता है।

जब HMMs (हिडन मार्कोव मॉडल्स) के बारे में बात की जा रही है तो आम तौर पर 3 समस्याओं पर विचार किया जाना चाहिए:

  1. मूल्यांकन की समस्या

    • मूल्यांकन समस्या सवाल का जवाब देती है: क्या संभावना है कि प्रतीकों का एक विशेष अनुक्रम किसी विशेष मॉडल द्वारा निर्मित होता है?
    • मूल्यांकन के लिए हम दो एल्गोरिदम का उपयोग करते हैं : फॉरवर्ड अल्गोरिद्म या बैकवर्ड अल्गोरिथम (आगे-पीछे की एल्गोरिथ्म के साथ उन्हें भ्रमित न करें)।
  2. डिकोडिंग की समस्या

    • डिकोडिंग समस्या सवाल का जवाब देती है: प्रतीकों के अनुक्रम (आपकी टिप्पणियों) और एक मॉडल को देखते हुए, राज्यों का सबसे संभावित अनुक्रम क्या है जिसने अनुक्रम का उत्पादन किया।
    • डिकोडिंग के लिए हम विटर्बी एल्गोरिथ्म का उपयोग करते हैं ।
  3. प्रशिक्षण समस्या

    • प्रशिक्षण समस्या सवाल का जवाब देती है: एक मॉडल संरचना और अनुक्रमों के एक सेट को देखते हुए, उस मॉडल को ढूंढें जो डेटा को सबसे अच्छी तरह से फिट करता है।
    • इस समस्या के लिए हम निम्नलिखित 3 एल्गोरिदम का उपयोग कर सकते हैं:
      1. MLE (अधिकतम संभावना अनुमान)
      2. Viterbi प्रशिक्षण (Viterbi डिकोडिंग के साथ भ्रमित न करें)
      3. बॉम वेल्च = आगे-पीछे की एल्गोरिथ्म

इसे योग करने के लिए, आप डिकोडिंग समस्या और बॉम वेल्च / फॉरवर्ड-बैकवर्ड के लिए विटर्बी एल्गोरिथ्म का उपयोग करते हैं जब आप अपने मॉडल को क्रम के सेट पर प्रशिक्षित करते हैं।


बॉम वेल्च निम्नलिखित तरीके से काम करता है।

अनुक्रम के प्रशिक्षण सेट में प्रत्येक अनुक्रम के लिए।

  1. आगे एल्गोरिथ्म के साथ आगे की संभावनाओं की गणना करें
  2. पिछड़े एल्गोरिथ्म के साथ पिछड़ी संभावनाओं की गणना करें
  3. मॉडल के संक्रमण के लिए वर्तमान अनुक्रम के योगदान की गणना करें, मॉडल के उत्सर्जन संभावनाओं के लिए वर्तमान अनुक्रम के योगदान की गणना करें।
  4. नए मॉडल मापदंडों की गणना करें (संभाव्यताएं शुरू करें, संक्रमण संभावनाएं, उत्सर्जन संभावनाएं)
  5. मॉडल की नई लॉग संभावना की गणना करें
  6. जब लॉग संभावना में परिवर्तन किसी दिए गए सीमा से छोटा हो या जब अधिक से अधिक पुनरावृत्तियों को पारित कर दिया जाए तो रोकें।

यदि आपको Viterbi डिकोडिंग के लिए समीकरणों का पूरा विवरण चाहिए और प्रशिक्षण एल्गोरिथ्म मुझे बताए और मैं आपको सही दिशा में इंगित कर सकता हूं।


24

फॉरवर्ड-बैकवर्ड प्रत्येक व्यक्तिगत राज्य के लिए सीमांत संभावना देता है , विटर्बी राज्यों के सबसे संभावित अनुक्रम की संभावना देता है । उदाहरण के लिए यदि आपका एचएमएम कार्य प्रत्येक दिन के लिए धूप बनाम बारिश के मौसम की भविष्यवाणी करना है, तो फॉरवर्ड बैकवर्ड आपको प्रत्येक दिन के लिए "धूप" होने की संभावना बताएगा, विटर्बी धूप / बरसात के दिनों की सबसे अधिक संभावित अनुक्रम देगा, और इस क्रम की संभावना।


15

मुझे लगता है कि एचएमएम के साथ उपयोग किए जाने वाले अन्य सभी विशिष्ट एल्गोरिदम के बीच फॉरवर्ड-बैकवर्ड और विटर्बी एल्गोरिदम को स्वस्थ करने के लिए ये दो स्लाइड्स {2} से बहुत अच्छे हैं:

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

टिप्पणियाँ:

  • πx मनाया एमिशन है, के पैरामीटर हैं।π
  • पथ = उत्सर्जन का एक क्रम
  • डिकोडिंग = इंजेक्शन
  • सीखना = प्रशिक्षण = पैरामीटर आकलन
  • कुछ कागजात (जैसे, {1}) दावा करते हैं कि बॉम-वेल्च फॉरवर्ड-बैकवर्ड एल्गोरिदम के समान है, लेकिन मैं मास्टरफूल और विकिपीडिया से सहमत हूं: बॉम-वेल्च एक उम्मीद-अधिकतमकरण एल्गोरिथ्म है जो फॉरवर्ड बैक-बैक एल्गोरिथम का उपयोग करता है। दो दृष्टांत भी आगे-पिछड़े एल्गोरिथ्म से बॉम-वेल्च को अलग करते हैं।

संदर्भ:


12

मोरट का उत्तर एक बिंदु पर गलत है: बॉम-वेल्च एक उम्मीद-अधिकतमकरण एल्गोरिथ्म है, जिसका उपयोग एचएमएम के मापदंडों को प्रशिक्षित करने के लिए किया जाता है। यह प्रत्येक पुनरावृत्ति के दौरान फॉरवर्ड-बैकवर्ड एल्गोरिदम का उपयोग करता है। फॉरवर्ड-बैकवर्ड एल्गोरिदम वास्तव में फॉरवर्ड और बैकवर्ड एल्गोरिदम का एक संयोजन है: एक फॉरवर्ड पास, एक बैकवर्ड पास। अपने दम पर, एचएमएम के मापदंडों को प्रशिक्षित करने के लिए फॉरवर्ड-बैकवर्ड एल्गोरिदम का उपयोग नहीं किया जाता है, लेकिन केवल स्मूथिंग के लिए: राज्यों के अनुक्रम के सीमांत संभावना की गणना करता है।

https://en.wikipedia.org/wiki/Forward%E2%80%93backward_algorithm

https://en.wikipedia.org/wiki/Baum%E2%80%93Welch_algorithm


2

@ यारोस्लाव बुलटोव के पास सटीक जवाब था। मैं इसका एक उदाहरण आगे-पीछे और Viterbi एल्गोरिदम के बीच अंतर बताने के लिए जोड़ूंगा।

मान लीजिए हमारे पास यह HMM है (विकिपीडिया HMM पेज से)। ध्यान दें, मॉडल पहले से ही दिया गया है, इसलिए यहां डेटा टास्क से कोई सीख नहीं ली गई है।

यहाँ छवि विवरण दर्ज करें


मान लीजिए कि हमारा डेटा 4 क्रम की लंबाई है। (Walk, Shop, Walk, Clean)। दो एल्गोरिथम अलग-अलग चीजें देंगे।

  • फॉरवर्ड बैकवर्ड एल्गोरिदम प्रत्येक छिपे हुए राज्यों की संभावना देगा । यहाँ एक उदाहरण है। ध्यान दें, तालिका में प्रत्येक कॉलम ।1

यहाँ छवि विवरण दर्ज करें

  • विटर्बी एल्गोरिदम छिपे हुए राज्यों का सबसे संभावित अनुक्रम देगा । यहाँ एक उदाहरण है। ध्यान दें, इस छिपे हुए राज्य अनुक्रम से जुड़ी एक संभावना भी है। इस क्रम में अधिकतम संभावना है। अन्य सभी दृश्यों से अधिक (जैसे, सब से दृश्यों सभी )।24=16SunnyRainy

यहाँ छवि विवरण दर्ज करें


यहाँ Rडेमो के लिए कुछ कोड है

library(HMM)
# in education setting,
# hidden state: Rainy and Sunny
# observation: Walk, Shop, Clean

# state transition
P <- as.matrix(rbind(c(0.7,0.3),
                     c(0.4,0.6)))

# emission prob
R <- as.matrix(rbind(c(0.1, 0.4, 0.5),
                     c(0.6,0.3, 0.1)))


hmm = initHMM(States=c("Rainy","Sunny"),
              Symbols=c("Walk","Shop", "Clean"),
              startProbs=c(0.6,0.4),
              transProbs=P,
              emissionProbs=R)
hmm


obs=c("Walk","Shop","Walk", "Clean")
print(posterior(hmm,obs))
print(viterbi(hmm, obs))
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.