मैं यह जानना चाहता हूं कि छिपे हुए मार्कोव मॉडल (HMM) में अनुमान के लिए फॉरवर्ड-बैकवर्ड एल्गोरिथम और विटर्बी एल्गोरिदम में क्या अंतर हैं।
मैं यह जानना चाहता हूं कि छिपे हुए मार्कोव मॉडल (HMM) में अनुमान के लिए फॉरवर्ड-बैकवर्ड एल्गोरिथम और विटर्बी एल्गोरिदम में क्या अंतर हैं।
जवाबों:
पहले थोड़ा सा बैकग्राउंड शायद यह चीजों को थोड़ा साफ करता है।
जब HMMs (हिडन मार्कोव मॉडल्स) के बारे में बात की जा रही है तो आम तौर पर 3 समस्याओं पर विचार किया जाना चाहिए:
मूल्यांकन की समस्या
डिकोडिंग की समस्या
प्रशिक्षण समस्या
इसे योग करने के लिए, आप डिकोडिंग समस्या और बॉम वेल्च / फॉरवर्ड-बैकवर्ड के लिए विटर्बी एल्गोरिथ्म का उपयोग करते हैं जब आप अपने मॉडल को क्रम के सेट पर प्रशिक्षित करते हैं।
बॉम वेल्च निम्नलिखित तरीके से काम करता है।
अनुक्रम के प्रशिक्षण सेट में प्रत्येक अनुक्रम के लिए।
यदि आपको Viterbi डिकोडिंग के लिए समीकरणों का पूरा विवरण चाहिए और प्रशिक्षण एल्गोरिथ्म मुझे बताए और मैं आपको सही दिशा में इंगित कर सकता हूं।
फॉरवर्ड-बैकवर्ड प्रत्येक व्यक्तिगत राज्य के लिए सीमांत संभावना देता है , विटर्बी राज्यों के सबसे संभावित अनुक्रम की संभावना देता है । उदाहरण के लिए यदि आपका एचएमएम कार्य प्रत्येक दिन के लिए धूप बनाम बारिश के मौसम की भविष्यवाणी करना है, तो फॉरवर्ड बैकवर्ड आपको प्रत्येक दिन के लिए "धूप" होने की संभावना बताएगा, विटर्बी धूप / बरसात के दिनों की सबसे अधिक संभावित अनुक्रम देगा, और इस क्रम की संभावना।
मुझे लगता है कि एचएमएम के साथ उपयोग किए जाने वाले अन्य सभी विशिष्ट एल्गोरिदम के बीच फॉरवर्ड-बैकवर्ड और विटर्बी एल्गोरिदम को स्वस्थ करने के लिए ये दो स्लाइड्स {2} से बहुत अच्छे हैं:
टिप्पणियाँ:
संदर्भ:
मोरट का उत्तर एक बिंदु पर गलत है: बॉम-वेल्च एक उम्मीद-अधिकतमकरण एल्गोरिथ्म है, जिसका उपयोग एचएमएम के मापदंडों को प्रशिक्षित करने के लिए किया जाता है। यह प्रत्येक पुनरावृत्ति के दौरान फॉरवर्ड-बैकवर्ड एल्गोरिदम का उपयोग करता है। फॉरवर्ड-बैकवर्ड एल्गोरिदम वास्तव में फॉरवर्ड और बैकवर्ड एल्गोरिदम का एक संयोजन है: एक फॉरवर्ड पास, एक बैकवर्ड पास। अपने दम पर, एचएमएम के मापदंडों को प्रशिक्षित करने के लिए फॉरवर्ड-बैकवर्ड एल्गोरिदम का उपयोग नहीं किया जाता है, लेकिन केवल स्मूथिंग के लिए: राज्यों के अनुक्रम के सीमांत संभावना की गणना करता है।
https://en.wikipedia.org/wiki/Forward%E2%80%93backward_algorithm
@ यारोस्लाव बुलटोव के पास सटीक जवाब था। मैं इसका एक उदाहरण आगे-पीछे और Viterbi एल्गोरिदम के बीच अंतर बताने के लिए जोड़ूंगा।
मान लीजिए हमारे पास यह HMM है (विकिपीडिया HMM पेज से)। ध्यान दें, मॉडल पहले से ही दिया गया है, इसलिए यहां डेटा टास्क से कोई सीख नहीं ली गई है।
मान लीजिए कि हमारा डेटा 4 क्रम की लंबाई है। (Walk, Shop, Walk, Clean)
। दो एल्गोरिथम अलग-अलग चीजें देंगे।
Sunny
Rainy
यहाँ 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))