ड्रॉपआउट परत को जोड़ने से गहरी / मशीन सीखने के प्रदर्शन में सुधार क्यों होता है, यह देखते हुए कि ड्रॉपआउट मॉडल से कुछ न्यूरॉन्स को दबा देता है?


13

यदि कुछ न्यूरॉन्स को हटाने से बेहतर प्रदर्शन करने वाला मॉडल होता है, तो पहली परत में कम परतों और कम न्यूरॉन्स के साथ एक सरल तंत्रिका नेटवर्क का उपयोग क्यों नहीं किया जाता है? शुरुआत में एक बड़ा, अधिक जटिल मॉडल क्यों बनाएं और बाद में इसके कुछ हिस्सों को दबा दें?

जवाबों:


31

ड्रॉपआउट का कार्य मॉडल की मजबूती को बढ़ाने और न्यूरॉन्स के बीच किसी भी सरल निर्भरता को दूर करना है।

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

मैं माइकल नील्सन की डीप लर्निंग बुक (फ्री और ऑनलाइन) में ड्रॉपआउट सेक्शन को पढ़ने की सलाह दूंगा , जो अच्छा अंतर्ज्ञान देता है और इसमें बहुत उपयोगी चित्र / स्पष्टीकरण भी है। वह बताते हैं कि:

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

यहाँ एक अच्छा सारांश लेख है । उस लेख से:

कुछ अवलोकन:

  • ड्रॉपआउट एक तंत्रिका नेटवर्क को और अधिक मजबूत विशेषताओं को सीखने के लिए मजबूर करता है जो अन्य न्यूरॉन्स के कई अलग-अलग यादृच्छिक सबसेट के साथ संयोजन में उपयोगी होते हैं।
  • ड्रॉपआउट मोटे तौर पर जुटने के लिए आवश्यक पुनरावृत्तियों की संख्या को दोगुना कर देता है। हालांकि, प्रत्येक युग के लिए प्रशिक्षण का समय कम है।
  • एच छिपी हुई इकाइयों के साथ, जिनमें से प्रत्येक को गिराया जा सकता है, हमारे पास 2 ^ एच संभव मॉडल हैं। परीक्षण चरण में, पूरे नेटवर्क पर विचार किया जाता है और प्रत्येक सक्रियण को कारक p द्वारा कम किया जाता है।

उदाहरण

कल्पना कीजिए कि मैं आपसे एक कप चाय बनाने के लिए कहता हूं - आप हमेशा पानी डालने के लिए अपने दाहिने हाथ का उपयोग कर सकते हैं, पानी के स्तर को मापने के लिए अपनी बाईं आंख और फिर चम्मच से चाय को हिलाएं। इसका मतलब होगा कि आपका बायां हाथ और दाईं आंख थोड़ा उद्देश्य से काम करेगी। ड्रॉपआउट का उपयोग करना, जैसे अपने दाहिने हाथ को अपनी पीठ के पीछे बाँधना - आपको अपने बाएं हाथ का उपयोग करने के लिए मजबूर करना। अब मुझे 20 कप चाय बनाने के बाद, एक आंख या एक हाथ से कार्रवाई करने के बाद, आप उपलब्ध हर चीज का उपयोग करने में बेहतर प्रशिक्षित हैं। हो सकता है कि आपको बाद में एक छोटी सी रसोई में चाय बनाने के लिए मजबूर किया जाएगा, जहां केवल अपने बाएं हाथ के साथ केतली का उपयोग करना संभव है ... और ड्रॉपआउट का उपयोग करने के बाद, आपको ऐसा करने का अनुभव होगा! आप अनदेखी डेटा के लिए और अधिक मजबूत हो गए हैं।


मल्टी क्लास वर्गीकरण के लिए सर्वश्रेष्ठ ड्रॉपआउट मूल्य कैसे निर्धारित करें? और ड्रॉपआउट परत की सबसे अच्छी संख्या कैसे निर्धारित करें?
N.IT

2
@ एन.आईटी - जहां तक ​​मुझे जानकारी है, अच्छी तरह से परिभाषित विधि नहीं है जो ड्रॉपआउट का सबसे अच्छा स्तर या कितनी परतें पाएगी - इसके अलावा कई संयोजनों को आज़माने वाले जूट के अलावा। नियमितीकरण और वास्तुकला की खोज के अन्य तरीकों के साथ, आपको एक मॉडल को प्रशिक्षित करने और प्रशिक्षण / सत्यापन हानि की तुलना की तुलना में सर्वोत्तम परिणाम प्राप्त होंगे। इस स्पष्टीकरण को विषय के चारों ओर देखें
n1k31t4

बहुत बढ़िया जवाब। अपनी रसोई सादृश्य के संबंध में अधिक ठोस होने के लिए, ड्रॉपआउट का उपयोग केवल प्रशिक्षण के दौरान किया जाता है, न कि अनुमान के दौरान। इसलिए, जटिल मॉडल का आंशिक उपयोग नहीं किया जाता है।
वैभव गर्ग

मैं इस उत्तर को टाइप करना चाहता हूं जिससे मेरी आंखें बंद हो जाएं। gyes अधिक प्रशिक्षण की जरूरत है। nwws moew seopour।
VHanded

3

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

उदाहरण - मान लीजिए कि 8 लेन की सड़क है - जब ट्रक आते हैं, तो वे गलियों से होकर गुजरते हैं 1,2,4,6,7, जब कारें आती हैं, तो वे गलियों से होकर गुजरती हैं 2,3,4,7,8 और जब बाइक आती हैं , वे 1,2,5,8 लेन से गुजरते हैं। इसलिए किसी भी वाहन की परवाह किए बिना, सभी लेन वहां हैं, लेकिन उनमें से केवल कुछ का उपयोग किया जाता है।

इसी तरह, सभी न्यूरॉन्स पूरे मॉडल में उपयोग किए जाते हैं, लेकिन डेटा के एक विशेष बैच के लिए केवल न्यूरॉन्स का एक सबसेट सक्रिय होता है। और मॉडल को बाद में नहीं काटा जाता है, मॉडल जटिलता वैसी ही बनी रहती है जैसी वह है।

ड्रॉपआउट का उपयोग क्यों करें?

जैसा कि दीप लर्निंग बुक में इयान गुडफेलो द्वारा दिया गया है,

ड्रॉपआउट अन्य मानक कम्प्यूटेशनल रूप से सस्ती नियमितताओं की तुलना में अधिक प्रभावी है, जैसे कि वजन क्षय, फिल्टर मानक बाधाओं और विरल गतिविधि नियमितीकरण।

वह भी कहता है-

ड्रॉपआउट का एक फायदा यह है कि यह कम्प्यूटेशनल रूप से बहुत सस्ता है।

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

यह पुस्तक कहती है-

मुख्य विचार यह है कि एक परत के आउटपुट मानों में शोर को पेश करने से घटना के पैटर्न को तोड़ा जा सकता है जो महत्वपूर्ण नहीं हैं, जो कि नेटवर्क शोर को याद नहीं होने पर याद करना शुरू कर देगा।


मैंने प्रश्न को दबाने और हटाने के लिए नहीं शब्द का उपयोग करने के लिए संपादित किया है। सवाल बना हुआ है। इतने सारे गलियों का निर्माण क्यों करें जब उनमें से कुछ का ही अंत में उपयोग किया जाए?
user781486

@ user781486 उनमें से कुछ के अनुसार, इसका मतलब है कि डेटा के प्रत्येक बैच के लिए उनमें से कुछ हैं, लेकिन यदि आप किसी डेटा पर विचार करते हैं तो उन सभी का उपयोग किया जाएगा। मेरे उदाहरण की तरह, यदि आप प्रत्येक वाहन के लिए लेन संख्याओं का संयुक्त सेट लेते हैं, तो सभी लेन 1-8 का उपयोग किया जाता है।
अंकित सेठ

3

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

यहाँ ऐसा क्यों है के लिए एक संक्षिप्त हाथ लहराते तर्क है:

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

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


अच्छी बात। उत्तर को अपडेट करेगा।
ब्योर्न

2

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


0

ड्रॉपआउट निम्नलिखित कारणों से मशीन लर्निंग मॉडल के प्रदर्शन को बेहतर बनाने में मदद करता है:

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