कितनी छिपी हुई परतें ?
शून्य छिपी परतों वाला एक मॉडल रैखिक रूप से वियोज्य डेटा को हल करेगा । इसलिए जब तक आप पहले से ही यह नहीं जानते कि आपका डेटा रैखिक रूप से अलग नहीं है, तब तक यह सत्यापित करने में कोई हर्ज नहीं है - कार्य की आवश्यकता से अधिक जटिल मॉडल का उपयोग क्यों करें? यदि यह रैखिक रूप से अलग है, तो एक सरल तकनीक काम करेगी, लेकिन एक Perceptron काम भी करेगा।
अपने डेटा को मानते हुए एक गैर-रेखीय तकनीक द्वारा अलगाव की आवश्यकता होती है, फिर हमेशा एक छिपी हुई परत के साथ शुरू करें । लगभग निश्चित रूप से आप सभी की आवश्यकता होगी। यदि आपका डेटा किसी MLP का उपयोग करने योग्य है, तो उस MLP को शायद केवल एक छिपी हुई परत की आवश्यकता है। इसके लिए सैद्धांतिक औचित्य है, लेकिन मेरा कारण विशुद्ध रूप से अनुभवजन्य है: एकल-छिपे-परत-एमएल एमएलपी का उपयोग करके कई कठिन वर्गीकरण / प्रतिगमन समस्याएं हल की जाती हैं, फिर भी मुझे याद नहीं है कि डेटा को सफलतापूर्वक मॉडल करने के लिए उपयोग किए जाने वाले कई-छिपे-लेयर एमएलपी का सामना करना पड़ता है- एमएल बुलेटिन बोर्ड, एमएल पाठ्यपुस्तक, अकादमिक पेपर, आदि पर वे मौजूद हैं, निश्चित रूप से, लेकिन उनके उपयोग को सही ठहराने वाली परिस्थितियां आनुभविक रूप से काफी दुर्लभ हैं।
छिपी हुई परत में कितने नोड हैं?
एमएलपी अकादमिक साहित्य से। मेरा अपना अनुभव वगैरह, मैंने इकट्ठा किया है और अक्सर अंगूठे ( RoT ) के कई नियमों पर भरोसा किया है , और जो मुझे विश्वसनीय मार्गदर्शक भी लगे हैं (यानी, मार्गदर्शन सटीक था, और तब भी जब यह नहीं था। आमतौर पर स्पष्ट था कि आगे क्या करना है):
अभिसरण में सुधार के आधार पर RoT :
जब आप मॉडल बिल्डिंग शुरू करते हैं, तो छिपी हुई परत में अधिक नोड्स की तरफ ।
क्यों? सबसे पहले, छिपी हुई परत में कुछ अतिरिक्त नोड्स किसी भी नुकसान की संभावना नहीं है - आपका एमएलपी अभी भी अभिसरण करेगा। दूसरी ओर, छिपी हुई परत में बहुत कम नोड अभिसरण को रोक सकते हैं। इस तरह से सोचें, अतिरिक्त नोड कुछ अतिरिक्त क्षमता प्रदान करते हैं - पुनरावृत्ति (प्रशिक्षण, या मॉडल निर्माण) के दौरान नेटवर्क को सिग्नल को स्टोर / रिलीज करने के लिए अतिरिक्त भार। दूसरा, यदि आप अपनी छिपी हुई परत में अतिरिक्त नोड्स के साथ शुरू करते हैं, तो बाद में उन्हें पुनरावृत्ति करना आसान है (पुनरावृत्ति प्रगति के दौरान)। यह आम है और आपकी सहायता करने के लिए नैदानिक तकनीकें हैं (उदाहरण के लिए, हिंटन आरेख, जो कि सिर्फ वेट मैट्रिसेस का दृश्य चित्रण है, जो वजन मानों का 'हीट मैप' है)।
इनपुट लेयर के आकार और आउटपुट लेयर के आकार के आधार पर RoTs :
अंगूठे का एक नियम इस [छिपी] परत के आकार के लिए इनपुट परत के आकार के बीच कहीं है ... और आउटपुट परत के आकार के लिए है ...।
छिपे हुए नोड्स की संख्या की गणना करने के लिए हम एक सामान्य नियम का उपयोग करते हैं: (इनपुट्स की संख्या + आउटपुट) x 2/3
मुख्य घटकों के आधार पर RoT :
आमतौर पर, हम इनपुट डेटा सेट के विचरण के 70-90% को पकड़ने के लिए आयाम [प्रमुख घटकों] के रूप में कई छिपे हुए नोड्स को निर्दिष्ट करते हैं ।
और फिर भी एनएन एफएक्यू लेखक इन नियमों को "बकवास" कहते हैं (शाब्दिक रूप से) क्योंकि वे: प्रशिक्षण उदाहरणों की संख्या, लक्ष्यों में शोर (प्रतिक्रिया चर के मान), और सुविधा स्थान की जटिलता को अनदेखा करते हैं।
उनके विचार में (और यह हमेशा मुझे लगता था कि वह जानते हैं कि वह किस बारे में बात कर रहे हैं), छिपी हुई परत में न्यूरॉन्स की संख्या चुनें कि क्या आपके एमएलपी में नियमितीकरण के कुछ रूप शामिल हैं, या शुरुआती रोक ।
हिडन लेयर में न्यूरॉन्स की संख्या के अनुकूलन के लिए एकमात्र वैध तकनीक:
अपने मॉडल निर्माण के दौरान, जुनूनी रूप से परीक्षण करें; परीक्षण "गलत" नेटवर्क आर्किटेक्चर के हस्ताक्षर को प्रकट करेगा। उदाहरण के लिए, यदि आप एक MLP के साथ शुरू होते हैं जिसमें एक छिपी हुई परत होती है जिसमें छोटी संख्या में नोड्स होते हैं (जो कि आप धीरे-धीरे आवश्यकतानुसार बढ़ेंगे, परीक्षण के परिणामों के आधार पर) आपका प्रशिक्षण और सामान्यीकरण त्रुटि दोनों पूर्वाग्रह और कम होने के कारण उच्च होंगे।
फिर छिपी हुई परत में नोड्स की संख्या में वृद्धि करें, एक बार में, जब तक सामान्यीकरण की त्रुटि बढ़नी शुरू नहीं हो जाती, इस बार ओवरफिटिंग और उच्च विचरण के कारण।
व्यवहार में, मैं इसे इस तरह से करता हूं:
इनपुट लेयर : मेरे डेटा वैक्टर का आकार (मेरे मॉडल में सुविधाओं की संख्या) + 1 पूर्वाग्रह नोड के लिए और प्रतिक्रिया चर सहित, बिल्कुल नहीं
आउटपुट परत : मेरे मॉडल द्वारा निर्धारित की गई मिट्टी: प्रतिगमन (एक नोड) बनाम वर्गीकरण (नोड्स की संख्या वर्गों के बराबर, सॉफ्टमैक्स मानते हुए)
छिपी परत : शुरू करने के लिए , एक छिपी हुई परतइनपुट परत के आकार के बराबर नोड्स की संख्या के साथ। "आदर्श" आकार छोटा होने की अधिक संभावना है (यानी, इनपुट परत में संख्या के बीच नोड की कुछ संख्या और आउटपुट परत में संख्या) बड़ी के बजाय - फिर से, यह सिर्फ एक अनुभवजन्य अवलोकन है, और थोक इस अवलोकन का मेरा अपना अनुभव है। यदि परियोजना में आवश्यक अतिरिक्त समय को उचित ठहराया जाता है, तो मैं एक छिपी हुई परत के साथ शुरू करता हूं, जिसमें छोटी संख्या में नोड्स शामिल होते हैं, फिर (जैसा कि मैंने अभी ऊपर बताया गया है) मैं छिपे हुए परत में नोड्स जोड़ता हूं, एक बार सामान्यीकरण की गणना करते हुए त्रुटि, प्रशिक्षण त्रुटि, पूर्वाग्रह, और विचरण। जब सामान्यीकरण की त्रुटि समाप्त हो गई है और फिर से बढ़ना शुरू होने से ठीक पहले, उस बिंदु पर नोड्स की संख्या मेरी पसंद है। नीचे आंकड़ा देखें।