खिड़की फिसलने से LSTM में ओवरफिटिंग होती है?


15

अगर मैं इसे स्लाइडिंग-विंडो दृष्टिकोण के माध्यम से प्रशिक्षित करता हूं, तो क्या मैं अपना LSTM ओवरफिट करूंगा? लोग LSTM के लिए इसका उपयोग क्यों नहीं करते हैं?

एक सरल उदाहरण के लिए, मान लें कि हमें पात्रों के अनुक्रम की भविष्यवाणी करनी है:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

क्या यह बुरा (या बेहतर है?) अगर मैं अपने LSTM का प्रशिक्षण निम्न मिनीबचियों से करता रहूँ:

A B C D E F G H I J K L M N, backprop, erase the cell

B C D E F G H I J K L M N O, backprop, erase the cell

 .... and so on, shifting by 1 every time?

पहले, मैंने हमेशा इसे इस रूप में प्रशिक्षित किया:

A B C D E F G H I J K L M N,  backprop, erase the cell

O P Q R S T U V W X Y Z,  backprop, erase the cell

एक के द्वारा स्थानांतरण के बजाय, क्या खिड़की को 2 प्रविष्टियों द्वारा स्लाइड करना बेहतर होगा, आदि? इसका क्या मतलब होगा (परिशुद्धता / ओवरफिटिंग के संदर्भ में)?


इसके अलावा, अगर मैं एक फीड-फॉरवर्ड नेटवर्क में स्लाइडिंग-विंडो दृष्टिकोण करने के लिए था, तो क्या इसका परिणाम ओवरफिटिंग होगा? मैं हां मानूंगा, क्योंकि नेटवर्क बहुत लंबे समय तक एक ही सूचना क्षेत्रों के संपर्क में है। उदाहरण के लिए, यह E F G H I J Kलंबे समय तक उजागर होता है ।


संपादित करें:

कृपया याद रखें कि प्रशिक्षण बैचों के बीच सेल अवस्था को मिटा दिया जाता है, इसलिए LSTM के पास इन समय "हैमर टू हेड" होगा। OPQRSTUVWXYZ से पहले क्या था, यह याद नहीं है । इसका मतलब यह है कि LSTM कभी भी यह जानने में असमर्थ है कि "O" "M" का अनुसरण करता है।

तो, मैंने सोचा (इस प्रकार मेरा पूरा प्रश्न), क्यों नहीं इसे बीच में (ओवरलैपिंग) बैच देना है ... और उस मामले में क्यों नहीं कई अतिव्यापी मिनीबैच का उपयोग करें - मेरे लिए यह एक चिकनी प्रशिक्षण प्रदान करेगा? अंत में, इसका मतलब होगा कि LSTM के लिए एक स्लाइडिंग विंडो।


जवाब के बाद मुझे मिली कुछ उपयोगी जानकारी:

यहां से

अंग्रेजी अनुवाद का पहला शब्द संभवतः स्रोत वाक्य के पहले शब्द के साथ अत्यधिक सहसंबद्ध है। लेकिन इसका मतलब है कि डिकोडर को 50 कदम पहले से जानकारी पर विचार करना होगा, और उस जानकारी को किसी तरह वेक्टर में एनकोड करना होगा। आवर्तक तंत्रिका नेटवर्क को ऐसी लंबी दूरी की निर्भरता से निपटने में समस्याएं होती हैं। सिद्धांत रूप में, LSTM जैसे आर्किटेक्चर को इससे निपटने में सक्षम होना चाहिए, लेकिन व्यवहार में लंबी दूरी की निर्भरताएं अभी भी समस्याग्रस्त हैं।

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

उत्तर स्वीकार करने के बाद संपादित करें:

कई महीनों बाद, मैं स्लाइडिंग विंडो दृष्टिकोण का उपयोग करने के लिए अधिक इच्छुक हूं, क्योंकि यह डेटा का बेहतर उपयोग करता है। लेकिन उस स्थिति में आप शायद ABCDEFGHIJKLMNO के बाद BCDEFGHIJKLMNO को प्रशिक्षित नहीं करना चाहते हैं। इसके बजाय, अपने उदाहरणों में फेरबदल करें, धीरे-धीरे और समान रूप से " LSTM में सभी जानकारी " ब्रश-इन करें। ABCDEFGHIJKLMNO आदि के बाद HIJKLMNOPQRSTU दें जो सीधे तौर पर कैटास्ट्रॉफिक फोर्जिंग से संबंधित है। हमेशा की तरह, सत्यापन और परीक्षण सेट को बारीकी से मॉनिटर करें, और जैसे ही आप देखते हैं कि उनकी त्रुटियां लगातार बढ़ती जा रही हैं

इसके अलावा, सिंथेटिक ग्रेडिएंट का उपयोग करके "हेड टू हेड" मुद्दे को बेहतर बनाया जा सकता है। इसका लाभ यहाँ देखें: (जुड़े हुए उत्तर इसके लंबे अनुक्रमों के लाभ पर चर्चा करते हैं) /datascience//a/32425/43077

जवाबों:


9

हालाँकि @Imran द्वारा पिछला उत्तर सही है, मुझे एक चेतावनी जोड़ना आवश्यक लगता है: वहाँ ऐसे अनुप्रयोग हैं जहाँ लोग LSTM में स्लाइडिंग विंडो को फीड करते हैं। उदाहरण के लिए, यहाँ , एक पर्यवेक्षित अधिगम समस्या के रूप में पूर्वानुमान लगाने के लिए।

4(n+n2+n)n इस पोस्ट के )।

चूंकि LSTM को निश्चित आकार के इनपुट की आवश्यकता नहीं होती है, वे अपने दम पर इष्टतम लुकबैक नंबर पा सकते हैं। हालाँकि, यदि आपने एक पूर्व-निरंकुश विश्लेषण किया है और यह निर्णय लिया है कि, उदाहरण के लिए, वर्तमान समय का चरण 10 वें पिछले समय के कदम के साथ सबसे अधिक सहसंबद्ध है, और अतीत में 11 वें या किसी भी समय कदम के साथ सहसंबद्ध नहीं है, तो आप कर सकते हैं शायद अपने आप को निश्चित लंबाई वाले दृश्यों में खिलाकर कुछ प्रशिक्षण समय बचाएं। हालांकि, उस तरह का एक LSTM के उद्देश्य को हरा देता है।

यदि आपका डेटा एक LSTM के लिए पर्याप्त समृद्ध नहीं है, तो मैं एक ऑटोरोग्रेसिव मॉडल की तरह कुछ सरल बनाने की कोशिश करूंगा, और अपने तरीके से काम करूंगा।

EDIT (एक टिप्पणी का जवाब):

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


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

मैंने अपने प्रश्न को टिप्पणी में शामिल करने के लिए संपादित किया है
कारी

बहुत अच्छी जानकारी!
इमरान

@ करारी मैंने अपना उत्तर संशोधित कर लिया है। क्या उससे मदद हुई?
StatsSorceress

5

LSTM को इनपुट की स्लाइडिंग विंडो की आवश्यकता नहीं होती है। वे याद कर सकते हैं कि उन्होंने अतीत में क्या देखा है, और यदि आप एक बार प्रशिक्षण उदाहरणों में फ़ीड करते हैं, तो वे अपने आप को याद रखने के लिए इनपुट के सही आकार की खिड़की का चयन करेंगे।

LSTM पहले से ही ओवरफिट करने के लिए प्रवण हैं, और यदि आप स्लाइडिंग विंडो के साथ बहुत सारे निरर्थक डेटा फ़ीड करते हैं, तो हाँ, वे ओवरफ़िट होने की संभावना है।

दूसरी ओर, फीडफ़वर्ड न्यूरल नेटवर्क्स के साथ टाइम सीरीज़ फोरकास्टिंग के लिए एक स्लाइडिंग विंडो आवश्यक है, क्योंकि एफएनएन को एक निश्चित आकार के इनपुट की आवश्यकता होती है और इसमें मेमोरी नहीं होती है, इसलिए यह समय श्रृंखला डेटा को खिलाने का सबसे स्वाभाविक तरीका है।

एफएनएन ओवरफिट होगा या नहीं इसकी वास्तुकला और आपके डेटा पर निर्भर करता है, लेकिन यदि यह होता है तो सभी मानक नियमितीकरण तकनीक लागू होंगे। उदाहरण के लिए आप एक छोटा नेटवर्क, L2 नियमितीकरण, ड्रॉपआउट आदि चुनने का प्रयास कर सकते हैं।


धन्यवाद! मेरा तर्क है कि प्रशिक्षण बैचों के बीच सेल राज्य को मिटा दिया जाता है, इसलिए LSTM के पास इन समय "हथौड़ा से सिर" होगा। यह याद करने में असमर्थ है कि OPQRSTUVWXYZ से पहले क्या था। इसका मतलब है कि LSTM कभी भी यह नहीं जान सकता कि "O" "M" का अनुसरण करता है। तो मैंने सोचा, क्यों न इसे बीच में (ओवरलैपिंग) बैच दिया जाए ... और उस मामले में कई अतिव्यापी मिनीबैच का उपयोग क्यों न किया जाए - मेरे लिए यह एक चिकनी प्रशिक्षण प्रदान करेगा?
कारी

अंत में, इसका मतलब होगा कि LSTM के लिए एक स्लाइडिंग विंडो
कारी

प्रशिक्षण बैचों के बीच सेल राज्य को मिटाने के लिए आवश्यक नहीं है, हालांकि बैकप्रोपैजेशन आगे पीछे संभव नहीं है।
Jan van der Vegt

मैंने यह कोशिश की, और - 0 सीखने की दर के साथ भी त्रुटि छोटी मात्रा से ऊपर और नीचे कूद रही थी क्योंकि प्रशिक्षण के दौरान गलत सेल राज्यों को "विरासत" के रूप में फिर से उपयोग किया गया था। मैं इस दृष्टिकोण के साथ 6 से अधिक परतों को ढेर नहीं कर सका - यह बहुत अराजक हो गया और अभिसरण नहीं होगा। हालाँकि, प्रत्येक बैकप्रॉप के बाद सेल की स्थिति को शून्य पर रीसेट करने से मुझे प्रत्येक परत में 64 न्यूरॉन्स के साथ 150 परतों को स्टैक करने और 0.001 सीखने की गति और 0.9 की गति के साथ प्रशिक्षित करने की अनुमति मिलती है (मैं लेयरनॉर्मलाइज़ेशन का उपयोग कर रहा हूं, यही कारण है कि मेरे मामले में सीखने की दर इतनी बड़ी है)
कारी

1
इसका मतलब यह है कि "विरासत सेलस्टेट्स" के साथ LSTM अस्थिर और अविश्वसनीय हो जाता है - यह एक नए मिनीबैच पर काम करना शुरू करता है जो पिछले सेल-स्टेट (पिछले मिनीबैच के) पर अपने निर्णयों को पूरा करता है जिसे पूर्ण सीमा तक सही नहीं किया गया था। तो, कोशिका-अवस्था को मिटाने से यह मौलिक दोष दूर हो जाता है, लेकिन LSTM अनुभव को स्मृतिलोप बनाता है
कारी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.