अगर मैं इसे स्लाइडिंग-विंडो दृष्टिकोण के माध्यम से प्रशिक्षित करता हूं, तो क्या मैं अपना 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