मौजूदा मल्टी-इनपुट अधिकतम एन्ट्रॉपी क्लासिफायर से अधिकतम एन्ट्रापी मार्कोव मॉडल बनाना


9

मैं एक अधिकतम एन्ट्रॉपी मार्कोव मॉडल (एमईएमएम) की अवधारणा से प्रेरित हूं, और मैं इसे पार्ट ऑफ स्पीच (पीओएस) टैगर के लिए उपयोग करने के बारे में सोच रहा हूं। फिलहाल, मैं प्रत्येक व्यक्ति को टैग करने के लिए एक पारंपरिक अधिकतम एन्ट्रॉपी (ME) क्लासिफायरियर का उपयोग कर रहा हूं। यह पूर्ववर्ती दो टैग सहित कई विशेषताओं का उपयोग करता है।

MEMMs मार्कोव चैन के माध्यम से इष्टतम पथ खोजने के लिए Viterbi एल्गोरिथ्म का उपयोग करते हैं (यानी प्रत्येक शब्द के लिए व्यक्तिगत ऑप्टिमस के बजाय वाक्य के लिए टैग का एक पूर्ण इष्टतम सेट खोजने के लिए)। इसके बारे में पढ़ना, यह एक अद्भुत लालित्य और सरलता प्रतीत होता है। हालांकि, प्रत्येक चरण केवल पिछले चरण के "परिणाम" (यानी एक मार्कोव श्रृंखला के अनुसार) पर निर्भर करता है।

हालाँकि, मेरा ME मॉडल पिछले दो चरणों का उपयोग करता है (यानी पूर्ववर्ती दो शब्दों के लिए टैग)। ऐसा लगता है कि मेरे पास दो संभावित दृष्टिकोण हैं:

  • एक पारंपरिक विटर्बी कार्यान्वयन के साथ, एक (पिछले) चरण के अनुसार संग्रहीत रास्तों का एक सेट का उपयोग करें। मेरा एमई क्लासिफायर यह और ट्रांसफर फ़ंक्शन का उत्पादन करने के लिए इससे पहले एक 'फ्रोजन' चरण का उपयोग करेगा (विचार के तहत पथ में जमे हुए)।

  • या मैं दो चरणों का ट्रैक रखने के लिए एल्गोरिथ्म लिखता हूं। यह अधिक जटिल है और अब एक सही मार्कोव मॉडल नहीं होगा क्योंकि प्रत्येक हस्तांतरण फ़ंक्शन (यानी एमई मॉडल से) पूर्ववर्ती दो चरणों पर निर्भर करेगा और एक चरण नहीं।

यह मुझे बताता है कि दूसरा अधिक सटीक होगा, हालांकि यह अधिक जटिल होगा।

मुझे अपने साहित्य खोज के दौरान इसका कोई उदाहरण नहीं मिला है। क्या इसे आजमाया गया है? क्या दो चरणों के दृष्टिकोण ने समग्र सटीकता में सुधार किया है?

जवाबों:


4

(यह वास्तव में एक वास्तविक प्रश्न है जिसका मैं सामना कर रहा हूँ और एमएल StackExchange साइट का लाइव होना बहुत अधिक सही समय था: मैंने किताब पढ़ने और ऑनलाइन शोध के कुछ दिन किए थे और इसे लागू करना शुरू किया था। यहाँ मेरे परिणाम हैं। हालांकि वे कठोर नहीं हैं मुझे लगता है कि वे मेरे स्वयं के प्रश्न का उत्तर देते हैं। मैं इस प्रश्न को अभी के लिए खुला छोड़ दूंगा कि किसी के पास कोई उपयोगी इनपुट है, कुछ इसी तरह की कोशिश की है, या कुछ उपयोगी संदर्भ हैं।)

पिछले कुछ दिनों में ठीक है, मैंने इसे कोडित किया है। कोड बहुत कुशल नहीं है - संग्रह निर्माण और नकल के बहुत सारे, लेकिन अभ्यास का उद्देश्य यह देखना था कि क्या यह काम करेगा, और यह कितना अच्छा काम करता है।

मैं अपने डेटा को दो सूचियों में बेतरतीब ढंग से विभाजित कर रहा हूं: प्रशिक्षण डेटा, और परीक्षण डेटा। मैं पारंपरिक अधिकतम एन्ट्रोपी पीओएस टैगर के माध्यम से परीक्षण डेटा चला रहा हूं; और मेरा नया MEMM टैगर। इसलिए वे एक ही परीक्षण डेटा देखते हैं, प्रत्यक्ष तुलना की अनुमति देते हैं - डेटा में यादृच्छिकता के कारण, मुझे परीक्षण के बीच कुछ भिन्नता दिखाई देती है (आमतौर पर लगभग 0.2-0.4%)।

पहला परीक्षण एक एकल चरण (यानी एक सही मार्कोव श्रृंखला) के साथ एक MEMM टैगर का उपयोग करता है। इसने लगभग 0.1-0.25% की तुलना में साधारण ME टैगर से बेहतर प्रदर्शन किया।

आगे मैंने दो चरण के दृष्टिकोण की कोशिश की जो ऐसा लगता है कि यह अधिक सही होना चाहिए। हालाँकि परिणाम और भी मामूली थे। अक्सर परिणाम समान होते हैं, कभी-कभी यह थोड़ा हीन होता है, लेकिन शायद कई बार यह थोड़ा बेहतर था (इसलिए +/- 0.05%)।

MEMM टैगर धीमा है। ठीक है मैंने कोई अनुकूलन लागू नहीं किया है, लेकिन 1 चरण (सही मार्कोव चेन) एन बार धीमा है (जहां एन = लेबल की संख्या) क्योंकि यह उन रास्तों की संख्या है जो प्रत्येक चरण के बीच स्थानांतरित होते हैं। 2 चरण कार्यान्वयन एन * एन धीमी है (हस्तांतरित पथों की अधिक संख्या के कारण)। हालांकि अनुकूलन चीजों को बेहतर बना सकता है, लेकिन मैं शायद अधिकांश व्यावहारिक अनुप्रयोगों के लिए बहुत धीमा हूं।

एक बात मैं कोशिश कर रहा हूं कि रास्तों के लिए कम संभावना सीमा लागू की जाए। अर्थात। Viterbi पथों को प्रत्येक पुनरावृत्ति के दौरान एक निश्चित संभाव्यता के नीचे सभी रास्तों से भरा जाता है (वर्तमान में लॉग (कुल पथ P) <- 20.0) प्रुन किया जाता है। यह काफी तेजी से चलता है, लेकिन सवाल यह है कि क्या यह इसके लायक है। मुझे लगता है कि यह शायद नहीं है।

हमें कोई सुधार क्यों नहीं दिख रहा है? मुझे लगता है कि यह मुख्य रूप से पीओएस टैग के व्यवहार और अधिकतम एन्ट्रापी मॉडल के कारण है। हालाँकि मॉडल पिछले दो टैग के आधार पर सुविधाएँ लेता है, लेकिन इससे पहले की तुलना में तत्काल पिछला टैग बहुत महत्वपूर्ण है। वास्तव में यह अंग्रेजी भाषा के लिए समझ में आता है (उदाहरण के लिए, एक विशेषण आमतौर पर एक संज्ञा या किसी अन्य विशेषण के बाद होता है लेकिन यह वास्तव में विशेषण से पहले क्या था पर निर्भर नहीं करता है)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.