गहरे तंत्रिका जाल में कैसे लड़ना है


50

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

मैं कुछ बहुत ही सामान्य या सामान्य सलाह नहीं मांग रहा हूं कि किसी व्यक्ति को एनएन को डेटा में ट्रेंड कैप्चर करना शुरू करने के लिए क्या करना चाहिए।

एनएन को लागू करने के लिए, मैं एमएनआईएसटी डेटासेट को वर्गीकृत करने के लिए महान (कम से कम 5% त्रुटि दर) काम करने वाले ट्यूटोरियल से कोड के साथ थीनो स्टैक्ड ऑटो एनकोडर का उपयोग करता हूं । यह एक बहुपरत पर्सेप्ट्रॉन है, जिसके शीर्ष पर सॉफ्टमैक्स परत होती है, जिसे बाद में प्रत्येक छिपे हुए ऑटोकारोडर (पूरी तरह से ट्यूटोरियल , अध्याय 8 में वर्णित ) के रूप में प्रशिक्षित किया जाता है । ~ 50 इनपुट सुविधाएँ और ~ 10 आउटपुट क्लासेस हैं। NN में सिग्मॉइड न्यूरॉन्स होते हैं और सभी डेटा को सामान्य कर दिया जाता है [0,1]। मैंने बहुत सारे अलग-अलग विन्यासों की कोशिश की: उनमें छिपी परतों और न्यूरॉन्स की संख्या (100-> 100-> 100, 60-> 60-> 60, 60-> 30-> 15, आदि), अलग-अलग सीखने और पूर्व-ट्रेन दर, आदि

और सबसे अच्छी चीज जो मुझे मिल सकती है वह है सत्यापन सेट पर 20% त्रुटि दर और परीक्षण सेट पर 40% त्रुटि दर।

दूसरी ओर, जब मैं रैंडम फ़ॉरेस्ट (स्किकिट-लर्न से) का उपयोग करने का प्रयास करता हूं, तो मुझे आसानी से सत्यापन सेट पर 12% त्रुटि दर और परीक्षण सेट पर 25% (!) मिलता है।

यह कैसे हो सकता है कि पूर्व प्रशिक्षण के साथ मेरा गहरा एनएन इतनी बुरी तरह से व्यवहार करता है? मुझे क्या प्रयास करना चाहिए?

जवाबों:


34

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

इसके अलावा मुझे निम्नलिखित कागजात बहुत उपयोगी लगे:

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


14

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

रेक्टिफाइड रेखीय सक्रियण

आपके मामले में मदद करने वाली पहली चीज़ लॉजिस्टिक सिग्मॉइड - - से आपके मॉडल के सक्रियण फ़ंक्शन को स्विच करना है रेक्टिफाइड लीनियर (उर्फ रिले) - ।f(z)=(1+ez)1f(z)=max(0,z)

रिले सक्रियण के दो बड़े फायदे हैं:

  • इसका आउटपुट और के लिए एक सच्चा शून्य (शून्य के करीब न केवल एक छोटा मूल्य है) और हैz0
  • इसका व्युत्पन्न स्थिर है, या तो लिए या लिए 1 है ।z0z>0

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

इन विषयों के बारे में अच्छे पेपर के लिए Glorot, Bordes, & Bengio ( http://jmlr.csail.mit.edu/proceedings/papers/v15/glorot11a/glorot11a.pdf ) द्वारा "डीप स्पार्स रेक्टिफायर न्यूरल नेटवर्क्स" देखें ।

ड्रॉप आउट

पिछले कुछ वर्षों में कई शोध समूह ओवरट्रेनिंग से बचने के लिए क्लासिफायर नेटवर्क में "ड्रॉपआउट" के उपयोग की वकालत कर रहे हैं। (उदाहरण के लिए देखें "श्रीवास्तव, हिंटन, क्रिज़हेवस्की, सुत्स्क्वर, और सलाखुटिनडोव http: //www.cs.toronto.edu-hhhin/absps/JMLRdropout.pdf द्वारा" ड्रॉपआउट: तंत्रिका नेटवर्क को रोकने के लिए एक सरल तरीका " । ड्रॉपआउट, प्रशिक्षण के दौरान, एक निश्चित परत में इकाइयों के कुछ निरंतर अनुपात बेतरतीब ढंग से नेटवर्क इनपुट की प्रक्रिया के लिए प्रत्येक इनपुट के लिए 0 पर सेट होते हैं। यह उन इकाइयों को मजबूर करता है जो "लापता" इकाइयों के लिए "मेक अप" पर सेट नहीं हैं। वर्गीकरण कार्यों में तंत्रिका नेटवर्क मॉडल के लिए ड्रॉपआउट एक बेहद प्रभावी नियमित उपाय है। Http: // fastml पर इस बारे में एक ब्लॉग लेख देखें


7
लेकिन सवाल अंडरफिटिंग का है, ओवरफिटिंग का नहीं।
वैलेंटाइन

8

आप Microsoft अनुसंधान के शोधकर्ताओं द्वारा निम्नलिखित पत्र पढ़ने में रुचि हो सकती है:

कैमिंग हे, जियानग्यु झांग, शाओकिंग रेन, जियान सन: डीप अवशिष्ट लर्निंग फॉर इमेज रिकग्निशन ऑन आरएक्सिव, 2015।

आपके पास भी उनकी जैसी समस्याएं थीं:

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

समस्या को हल करने के लिए, उन्होंने एक स्किप आर्किटेक्चर का उपयोग किया है। इसके साथ, उन्होंने बहुत गहरे नेटवर्क (1202 परत) को प्रशिक्षित किया और ILSVRC 2015 चुनौती में सबसे अच्छा परिणाम प्राप्त किया।


आपके एन्स के लिए धन्यवाद, आप लुप्त होती क्रमिक समस्या के बारे में ले रहे हैं, अगर मामले में मान्यता एसीसी प्रशिक्षण एसीसी की तुलना में अधिक है तो जोर से क्या करें ?? यह वैल सेट में कम संख्या में डेटा के लिए खुश हो सकता है लेकिन कभी-कभी यह वैल सेट पर निर्भर नहीं करता है। मैं पूछ रहा हूँ कि क्या कोई अन्य कारण है जहाँ वैल एसीसी प्रशिक्षण एसीसी से अधिक है ??
सुदीप दास
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.