जब मेरा तंत्रिका नेटवर्क अच्छी तरह से सामान्य नहीं होता है तो मुझे क्या करना चाहिए?


37

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


सवाल के रूप में

जब मेरा तंत्रिका नेटवर्क नहीं सीखता है तो मुझे क्या करना चाहिए?

जिस से यह प्रश्न प्रेरित होता है, यह प्रश्न जानबूझकर सामान्य छोड़ दिया जाता है ताकि तंत्रिका नेटवर्क की सामान्यीकरण त्रुटि को कम करने के बारे में अन्य प्रश्न एक स्तर तक कम हो जाएं जो प्राप्य साबित हो गया है , को इस एक के डुप्लिकेट के रूप में बंद किया जा सकता है।

मेटा पर समर्पित धागा भी देखें:

क्या कोई सामान्य प्रश्न है, जिस पर हम इस प्रकार के प्रश्नों को पुनर्निर्देशित कर सकते हैं "मेरा तंत्रिका नेटवर्क अच्छी तरह से सामान्य क्यों नहीं है?"


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

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

जवाबों:


37

सबसे पहले, आइए उल्लेख करते हैं कि "मेरा तंत्रिका नेटवर्क अच्छी तरह से सामान्य नहीं करता है" क्या मतलब है और "मेरे तंत्रिका नेटवर्क के ठीक नहीं होने" के साथ अंतर क्या है

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

आपका मॉडल ठीक से सामान्य क्यों नहीं हो रहा है?

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

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

उदाहरण के लिए, नीचे दी गई छवि में हम देख सकते हैं कि नीली रेखा कैसे स्पष्ट रूप से ओवरफिट है।

लेकिन यह बुरा क्यों है?

नए, पहले अनदेखे डेटा (यानी सत्यापन / परीक्षण सेट) पर हमारे मॉडल का मूल्यांकन करने का प्रयास करते समय , मॉडल का प्रदर्शन बहुत बुरा होगा हमारी अपेक्षा से ।

ओवरफिटिंग को कैसे रोकें?

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

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

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

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

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

व्यावहारिक सुझाव:

  • अब तक सबसे प्रभावी नियमितीकरण तकनीक ड्रॉपआउट है , जिसका अर्थ है कि यह पहला होना चाहिए जिसका आपको उपयोग करना चाहिए। हालाँकि, आपको हर जगह ड्रॉपआउट करने की आवश्यकता नहीं है (और शायद नहीं) ओवरफिटिंग के लिए सबसे अधिक प्रवण परत पूरी तरह से कनेक्टेड (एफसी) परतें हैं, क्योंकि उनमें सबसे अधिक पैरामीटर हैं। इन परतों पर ड्रॉपआउट लागू किया जाना चाहिए (अगली परत के लिए उनके कनेक्शन को प्रभावित करना)।
  • एक सामान्य प्रभाव के अलावा बैच सामान्यीकरण , आपके मॉडल को कई अन्य तरीकों से जोड़ देता है (जैसे कि गति में वृद्धि, उच्च शिक्षण दर के उपयोग की अनुमति देता है)। यह भी एफसी परतों में इस्तेमाल किया जाना चाहिए।
  • जैसा कि पहले उल्लेख किया गया है, यह आपके मॉडल को पहले की तुलना में प्रशिक्षण चरण में निर्धारित करने के लिए फायदेमंद हो सकता है। शुरुआती रोक के साथ समस्या यह है कि कोई गारंटी नहीं है कि किसी भी बिंदु पर, मॉडल फिर से सुधार शुरू नहीं करेगा। शुरुआती रोक की तुलना में अधिक व्यावहारिक दृष्टिकोण मॉडल के वजन को संग्रहीत कर रहा है जो सत्यापन सेट पर सबसे अच्छा प्रदर्शन प्राप्त करता है। हालांकि, सतर्क रहें, क्योंकि यह आपके मॉडल के प्रदर्शन का निष्पक्ष अनुमान नहीं है (बस प्रशिक्षण सेट से बेहतर है)। आप सत्यापन सेट पर ओवरफिट भी कर सकते हैं। उस पर और बाद में।
    केरसा कार्यान्वयन
  • कुछ अनुप्रयोगों में (उदाहरण के लिए छवि संबंधी कार्य), पहले से स्थापित आर्किटेक्चर (जैसे वीजीजी, रेसनेट, इनसेप्शन) का पालन करने के लिए अत्यधिक अनुशंसा की जाती है, जिसके लिए आप इमेजनेट वेट पा सकते हैं। इस डेटासेट का सामान्य स्वभाव, किसी भी छवि से संबंधित कार्य के लिए उपयोग की जाने वाली सुविधाओं को सामान्य रूप से चालू रखने की अनुमति देता है। ओवरफिटिंग के लिए मजबूत होने के अलावा, यह प्रशिक्षण समय को बहुत कम कर देगा।
    इसी तरह की अवधारणा का एक और उपयोग निम्नलिखित है: यदि आपके कार्य में अधिक डेटा नहीं है, लेकिन आप एक और समान कार्य पा सकते हैं, तो आप सीखना कर सकते हैं ओवरफिटिंग को कम करने के लिए का । पहले अपने नेटवर्क को उस कार्य के लिए प्रशिक्षित करें जिसमें बड़ा डेटासेट है और फिर ठीक-ठीक करने का प्रयास करेंशुरू में आप चाहते थे कि मॉडल। प्रारंभिक प्रशिक्षण, ज्यादातर मामलों में, आपके मॉडल को ओवरफिटिंग के लिए अधिक मजबूत बनाता है।
  • डेटा वृद्धि । जबकि यह हमेशा एक बड़ा डेटासेट बनाने में मदद करता है, डेटा वृद्धि तकनीकों में उनकी कमियाँ होती हैं। विशेष रूप से, आपको सावधान रहना होगा कि आप बहुत दृढ़ता से वृद्धि न करें , क्योंकि इससे डेटा की शब्दार्थ सामग्री बर्बाद हो सकती है। उदाहरण के लिए छवि वृद्धि में यदि आप अनुवाद / शिफ्ट / स्केल करते हैं या ब्रिगनेस / कंट्रास्ट को समायोजित करते हैं तो बहुत अधिक जानकारी जिसमें आप बहुत अधिक जानकारी खो देते हैं। इसके अलावा, वृद्धि की योजनाओं को प्रत्येक कार्य के लिए एक तदर्थ फैशन में लागू करने की आवश्यकता होती है (जैसे हस्तलिखित अंकों की मान्यता में अंकों को आम तौर पर गठबंधन किया जाता है और उन्हें बहुत अधिक घुमाया नहीं जाना चाहिए; क्योंकि उन्हें किसी भी दिशा में फ़्लिप नहीं किया जाना चाहिए; क्षैतिज / अनुलंब रूप से सममित नहीं हैं। चिकित्सा छवियों के लिए समान है)।
    0

9

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

सामान्यीकरण त्रुटि के लिए चीजें काफी भिन्न हैं । हम यह सुनिश्चित नहीं कर सकते हैं कि प्रत्येक सीखने की समस्या के लिए, एक सीखने योग्य एनएन मॉडल मौजूद है जो सामान्यीकरण त्रुटि को कम कर सकता है। इस कारण से पहला कदम है

1. अपनी उम्मीदों को सही ढंग से सेट करें

एक सम्मानित संदर्भ खोजें जो आपको बताता है कि एक आर्किटेक्चर मौजूद है जो आपके डेटा सेट पर या सबसे समान एक सामान्य त्रुटि पर पहुंच सकता है जिसके लिए आप संदर्भ पा सकते हैं। उदाहरण के लिए, यहां देखें

वर्तमान अत्याधुनिक अत्याधुनिक तंत्रिका नेटवर्क क्या हैं?

विभिन्न कार्यों पर सीएनएन के लिए वर्तमान (उत्तरों के समय) एसओटीए (द स्टेट ऑफ द आर्ट) प्रदर्शन के लिए। इन संदर्भ डेटा सेटों पर ऐसे परिणामों को पुन: पेश करने का प्रयास करना एक अच्छा विचार है, इससे पहले कि आप अपने स्वयं के डेटा सेट पर प्रशिक्षण दें, एक परीक्षण के रूप में कि आपके सभी बुनियादी ढांचे ठीक से हैं।

2. सुनिश्चित करें कि आपकी प्रशिक्षण प्रक्रिया निर्दोष है

प्रश्न के उत्तर में वर्णित सभी जांचें

जब मेरा तंत्रिका नेटवर्क नहीं सीखता है तो मुझे क्या करना चाहिए?

यह सुनिश्चित करने के लिए कि आपकी प्रशिक्षण प्रक्रिया ठीक है, सामान्यीकरण त्रुटि की सफल कमी के लिए एक शर्त है (यदि आपका एनएन नहीं सीख रहा है, तो यह सामान्यीकरण नहीं सीख सकता है)। इन चेक में अन्य सामान शामिल हैं:

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

3. सुपरकंवरेज हासिल करने की कोशिश करें

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

4. MAXXX के लिए अपने नियमितीकरण की स्थापना

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

सबसे पुराने नियमितीकरण के तरीके शायद जल्दी रुकने वाले और वजन घटाने वाले हैं। कुछ अन्य:

  • मीटर=16
  • अनुकूली ऑप्टिमाइज़र के बजाय SGD का उपयोग करें: यह पहले से ही @shimao द्वारा कवर किया गया है, इस प्रकार मैं केवल पूर्णता के लिए इसका उल्लेख करता हूं
  • ड्रॉपआउट का उपयोग करें: यदि आप LSTM का उपयोग करते हैं, तो LSTM परत के इनपुट और आउटपुट इकाइयों के लिए केवल मानक ड्रॉपआउट का उपयोग करें। आवर्तक इकाइयों के लिए (द्वार) आवर्तक ड्रॉपआउट का उपयोग करते हैं, जैसा कि पहली बार यारिन गाल ने अपने पीएच.डी. थीसिस । हालाँकि, यदि आप CNN का उपयोग करते हैं, तो ड्रॉपआउट का उपयोग अब कम किया जाता है। इसके बजाय, आप…
  • ... बैच के सामान्यीकरण का उपयोग करें: बैच के सामान्यीकरण के पक्ष में सबसे हालिया CNN आर्किटेक्चर ने ड्रॉपआउट किया। यह सिर्फ एक सनक हो सकती है, या यह इस तथ्य के कारण हो सकता है कि जाहिरा तौर पर ड्रॉपआउट और बैच सामान्यीकरण एक साथ नहीं खेलते हैं (जियांग ली, शुओ चेन, शियाओलिन हू, जियान यांग, ड्रॉपआउट और बैच सामान्यीकरण के बीच के विवाद को समझना शिफ्ट )। चूंकि बैच मानदंड ड्रॉपआउट की तुलना में अधिक प्रभावी है जब आपके पास विशाल डेटा सेट होते हैं, तो यह एक कारण हो सकता है कि ड्रॉपआउट सीएनएन आर्किटेक्चर के पक्ष में गिर गया है। यदि आप बैच सामान्यीकरण का उपयोग करते हैं, तो सत्यापित करें कि प्रत्येक परत के लिए वजन और गैसों का वितरण लगभग मानक सामान्य दिखता है। RNN के लिए, बैच मानक लागू करना जटिल है: वजन सामान्यीकरण (टिम सलीमन्स, डिडेरिक पी। किंग्मा,वजन सामान्यीकरण: गहरी तंत्रिका नेटवर्क के प्रशिक्षण को सरल बनाने के लिए एक सरल पुनर्संरचना ) एक व्यवहार्य विकल्प है।
  • डेटा वृद्धि का उपयोग करें: इसका एक नियमित प्रभाव भी है।

5. हाइपरपरमीटर / वास्तुकला खोज

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

एक गण के लिए PS यह सामान्यीकरण त्रुटि के बारे में बात करने के लिए बहुत अधिक समझ में नहीं आता है: उपरोक्त उदाहरण केवल एक संकेत के रूप में था कि डीप लर्निंग में अभी भी बहुत अधिक कीमिया है, और ऐसी चीजें जो आप ठीक काम करने की उम्मीद करेंगे, कभी-कभी डॉन 't, या इसके विपरीत, जो कई बार ठीक काम करता है, अचानक एक नए डेटा सेट के लिए आप पर तरस खा जाता है।


5

सामान्य रूप से प्रयुक्त नियमितीकरण तकनीकों की एक सूची जो मैंने साहित्य में देखी है वे हैं:

  1. बैच सामान्यीकरण का उपयोग करना, जो उस बिंदु पर आश्चर्यजनक रूप से प्रभावी नियमित रूप से प्रभावी है जहां मैं शायद ही कभी ड्रॉपआउट का उपयोग करता हूं, क्योंकि यह बस आवश्यक नहीं है।
  2. वजन का एक छोटा सा क्षय।
  3. कुछ और हालिया नियमितीकरण तकनीकों में शेक-शेक (ज़ेवियर गेतलडी द्वारा शेक-शेक नियमितीकरण) और कटआउट (टेरेंस डीव्रीस और ग्राहम डब्ल्यू। टेलर द्वारा कटऑफ़ के साथ संवादात्मक तंत्रिका नेटवर्क का बेहतर नियमितीकरण ) शामिल हैं। विशेष रूप से, जिस आसानी से कटआउट लागू किया जा सकता है वह इसे बहुत आकर्षक बनाता है। मेरा मानना ​​है कि ये काम ड्रॉपआउट से बेहतर हैं - लेकिन मुझे यकीन नहीं है।
  4. यदि संभव हो तो, पूरी तरह से जुड़े परतों के साथ आर्किटेक्चर के लिए पूरी तरह से दृढ़ आर्किटेक्चर को प्राथमिकता दें। वीजीजी -16 की तुलना करें, जिसमें एक ही पूरी तरह से जुड़ी परत में 100 मिलियन पैरामीटर हैं, Resnet-152 के लिए, जिसमें परतों की संख्या 10 गुना है और अभी भी कम पैरामीटर हैं।
  5. RMSprop और एडम जैसे अन्य ऑप्टिमाइज़र के लिए SGD को प्राथमिकता दें। यह बेहतर सामान्यीकरण करने के लिए दिखाया गया है। ("नीतीश शिरीष केसकर और रिचर्ड सोचर द्वारा एडम को स्वदेश में स्विच करके सामान्यीकरण प्रदर्शन में सुधार")

0

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

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

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

  1. फ़ीचर सेलेक्शन डिटेक्शन : आपके मॉडल में मापदंडों की कम संख्या और कम सुविधाएँ बेहतर हैं। इसलिए यदि आप केवल 100 मिलियन में से किसी एक को शामिल करते हैं (शायद इसके बजाय 75 मिलियन हो), तो आपके पास एक बेहतर सामान्य मॉडल होगा। समस्या यह है कि कई तंत्रिका नेटवर्क फीचर चयन में सही नहीं हैं, खासकर जब # 2 मौजूद हो। मूल रूप से बूटस्ट्रैप या बूस्टिंग दोनों को ठीक नहीं कर सकता (केवल एक संस्करण जिसे जंगली बूटस्ट्रैप कहा जा सकता है)। सरल शब्दों में, यदि आप आपको न्यूरल नेटवर्क जंक डेटा देते हैं तो यह आपको जंक आउट देने वाला है। (L2 सामान्यीकरण ऊपर वर्णित है यह मदद करने में बहुत अच्छा है)

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

  3. स्तरीकृत नमूनाकरण, Oversampling, और सांख्यिकीय या नैतिक विचारों के आधार पर अंडरसम्पलिंग : काश मैं अंडर और ओवरसैंपलिंग का विशेषज्ञ था, लेकिन मैं नहीं हूं लेकिन मैं स्तरीकृत नमूने के बारे में जानता हूं। महत्वपूर्ण कारक जैसे (दौड़, लिंग, लिंग) और फिर क्लस्टर द्वारा स्तरीकृत नमूनाकरण करना महत्वपूर्ण है जब कोई बड़ा डेटा नहीं मानता है। छवि का पता लगाने के दौरान, जातीय भेदभाव से बचने के लिए कुछ क्षेत्रों में क्लस्टरिंग के साथ संयोजन में स्तरीकृत नमूने की आवश्यकता होती है। ऊपर दी गई पुस्तक संक्षेप में ऐसा करने के तरीकों के बारे में बात करती है।

PS क्या मुझे और लिंक शामिल करने चाहिए?

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