डीप न्यूरल नेटवर्क्स में बैजिंग बनाम ड्रॉपआउट


17

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

जवाबों:


21

बैगिंग और ड्रॉपआउट एक ही चीज़ को प्राप्त नहीं करते हैं, हालांकि दोनों औसत मॉडल के प्रकार हैं।

बैगिंग आपके संपूर्ण डेटासेट में एक ऑपरेशन है जो प्रशिक्षण डेटा के सबसेट पर मॉडल को प्रशिक्षित करता है। इस प्रकार कुछ प्रशिक्षण उदाहरण किसी दिए गए मॉडल को नहीं दिखाए जाते हैं।

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


एक अच्छी व्याख्या के लिए +1। क्या आप किसी भी लिंक के बारे में जानते हैं जहां पायथन कार्यान्वयन किया जाता है? कोई ब्लॉग या शायद गितुब?
Dawny33

यहाँ एक सभ्य एक है: deeplearning.net/tutorial/lenet.html , हालांकि मैं इस एक की शैली को पसंद करता हूं: neuralnetworksanddeeplearning.com/chap6.html । कार्यान्वयन और महान डेमो के लिए, मुझे केरस (पाइप स्थापित करने के लिए काफी आसान) keras.io पसंद है
jamesmf

2

मुझे मैक्स आउट नेटवर्क्स में दो तरह के नेट्स की तुलना मिली, जो कहते हैं:

ड्रॉपआउट प्रशिक्षण बैगिंग (ब्रेमेन, 1994) के समान है, जहां कई अलग-अलग मॉडलों को डेटा के विभिन्न सबसेट पर प्रशिक्षित किया जाता है। ड्रॉपआउट प्रशिक्षण इस बात से अलग है कि प्रत्येक मॉडल को केवल एक चरण के लिए प्रशिक्षित किया जाता है और सभी मॉडल मापदंडों को साझा करते हैं। इस प्रशिक्षण प्रक्रिया के लिए (ड्रॉपआउट) ऐसा व्यवहार करें जैसे कि यह एक एकल मॉडल के बजाय एक पहनावा को प्रशिक्षित कर रहा है, प्रत्येक अपडेट का एक बड़ा प्रभाव होना चाहिए, ताकि यह उप-मॉडल को प्रेरित करे जिससे कि मौजूदा इनपुट अच्छी तरह से फिट हो।

आशा है कि यह उपयोगी होगा।


0

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

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

इस सवाल को देखें

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