फीडफॉरवर्ड न्यूरल नेटवर्क में छिपी हुई परतों और नोड्स की संख्या कैसे चुनें?


540

क्या फीड-फॉरवर्ड न्यूरल नेटवर्क में परतों की संख्या, और प्रत्येक परत में नोड्स की संख्या का चयन करने के लिए एक मानक और स्वीकृत तरीका है? मुझे तंत्रिका नेटवर्क के निर्माण के स्वचालित तरीकों में दिलचस्पी है।


4
सभी शानदार उत्तरों के बीच, मुझे यह पेपर सहायक dstath.users.uth.gr/papers/IJRS2009_Stathakis.pdf
डेबप्रिया सील

@DebpriyaSeal हालांकि वह उपयोगी नहीं है ...
DarkCygnus

जवाबों:


467

मुझे लगता है कि इस प्रश्न का उत्तर दिया गया है, लेकिन मुझे नहीं लगता कि मौजूदा उत्तर वास्तव में प्रश्न को किसी विषय की विषय वस्तु से संबंधित लिंक की ओर इशारा करते हुए आगे बढ़ाता है। विशेष रूप से, लिंक प्रोग्रामेटिक नेटवर्क कॉन्फ़िगरेशन के लिए एक तकनीक का वर्णन करता है, लेकिन यह नेटवर्क कॉन्फ़िगरेशन के लिए " [ए] मानक और स्वीकृत विधि " नहीं है।

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

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

इसलिए हर NN में तीन प्रकार की परतें होती हैं: इनपुट , हिडन और आउटपुट


एनएन वास्तुकला का निर्माण इसलिए इसका मतलब है कि प्रत्येक प्रकार की परतों की संख्या और इन परतों में से प्रत्येक में नोड्स की संख्या के लिए मूल्यों के साथ आना।

इनपुट परत

सरल - प्रत्येक एनएन में उनमें से बिल्कुल एक है - कोई अपवाद नहीं जो मुझे पता है।

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


आउटपुट परत

इनपुट लेयर की तरह, हर NN में एक आउटपुट लेयर होती है। इसका आकार निर्धारित करना (न्यूरॉन्स की संख्या) सरल है; यह पूरी तरह से चुने हुए मॉडल कॉन्फ़िगरेशन द्वारा निर्धारित किया जाता है।

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

यदि एनएन एक प्रतिगामी है, तो आउटपुट परत में एक नोड है।

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

द हिडन लेयर्स

तो उन कुछ नियमों ने इनपुट और आउटपुट परतों दोनों के लिए परतों और आकार (न्यूरॉन्स / परत) की संख्या निर्धारित की। जो छिपी हुई परतों को छोड़ देता है।

कितनी छिपी परतें? ठीक है अगर आपका डेटा रैखिक रूप से अलग है (जिसे आप अक्सर उस समय तक जानते हैं जब आप एक एनएन कोडिंग शुरू करते हैं) तो आपको किसी भी छिपी हुई परतों की आवश्यकता नहीं है। बेशक, आपको अपने डेटा को हल करने के लिए एनएन की आवश्यकता नहीं है, लेकिन यह अभी भी काम करेगा।

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

तो छिपी हुई परत के आकार के बारे में क्या है - कितने न्यूरॉन्स? कुछ अनुभवजन्य रूप से व्युत्पन्न नियम हैं, इनमें से, सबसे अधिक भरोसेमंद है ' छिपी हुई परत का इष्टतम आकार आमतौर पर इनपुट और आउटपुट परतों के आकार के बीच होता है '। जावा में न्यूरल नेटवर्क्स के परिचय के लेखक जेफ हेटन कुछ और प्रदान करते हैं।

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


नेटवर्क कॉन्फ़िगरेशन का अनुकूलन

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

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


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

13
आप लिखते हैं यदि NN एक रेजिस्टर है, तो आउटपुट लेयर में एक नोड है। । केवल एक ही नोड क्यों? मेरे पास कई निरंतर आउटपुट क्यों नहीं हो सकते हैं?
Gerrit

5
यदि आपका लक्ष्य आउटपुट वेक्टर-वैल्यू है, तो निश्चित रूप से आपके पास कई निरंतर आउटपुट हो सकते हैं। वेक्टर-वैल्यू आउटपुट के लिए एक उपयुक्त नुकसान फ़ंक्शन को परिभाषित करना एक आउटपुट के मुकाबले थोड़ा पेचीदा हो सकता है।
lmjohns3

5
मैंने सोचा कि यह इसके विपरीत था: यदि एनएन एक क्लासिफायरियर है, तो इसमें एक नोड भी है जब तक कि सॉफ्टमैक्स का उपयोग नहीं किया जाता है, इस मामले में आउटपुट परत में आपके मॉडल में प्रति वर्ग लेबल में एक नोड होता है।
viyps

2
@doug इस अद्भुत उत्तर के लिए धन्यवाद। इसने मुझे अपनी एएनएन को 3 छिपी हुई परतों से 1 तक कम करने और छिपी हुई न्यूरॉन्स की सही संख्या निर्धारित करके समान वर्गीकरण सटीकता प्राप्त करने की अनुमति दी ... मैंने बस इनपुट और आउटपुट के औसत का एक साथ उपयोग किया। धन्यवाद!
21

129

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

Nh=Ns(α(Ni+No))

Ni
No
Ns
α

alpha

Ns(Ni+No)α

एक स्वचालित प्रक्रिया के लिए आप 2 के अल्फा के साथ शुरू करेंगे (अपने प्रशिक्षण डेटा में स्वतंत्रता के कई डिग्री के रूप में अपने मॉडल के रूप में) और 10 तक अपने तरीके से काम करें यदि आपके प्रशिक्षण डेटासेट के लिए त्रुटि (हानि) की तुलना में काफी छोटा है आपका परीक्षण डेटासेट।


7
यह सूत्र बहुत ही रोचक और सहायक है। क्या इस फॉर्मूले का कोई संदर्भ है? यह अधिक सहायक होगा।
प्रशान्त

2
@ नृपशांत I ने ऊपर निर्दिष्ट एनएन डिज़ाइन पाठ में कई सिद्धांतों और सूत्रों को संयुक्त किया। लेकिन मुझे नहीं लगता कि यह स्पष्ट रूप से मेरे द्वारा दिखाए गए फॉर्म में है। और मेरा संस्करण बहुत सरल अनुमानों के साथ एक बहुत ही कच्चा सन्निकटन है। तो YMMV।
होब्स

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

3
Nh(Ni+No)

2
@मेटस, कई परतों के लिए अंगूठे का शायद थोड़ा बेहतर नियम है N_h(प्रति परत छिपे न्यूरॉन्स की औसत संख्या) इसका समाधान N_s = (N_i + N_o) * N_h ^ N_hidden_layers। लेकिन मैं अभी भी इस सूत्र का उपयोग नहीं करूंगा। यह केवल बहुत ही बुनियादी समस्याओं (खिलौना समस्याओं) के लिए है जब आप किसी अन्य नियमितीकरण दृष्टिकोण को लागू करने की योजना नहीं बनाते हैं।
हॉब्स

60

से जावा के लिए तंत्रिका नेटवर्क का परिचय (द्वितीय संस्करण) द्वारा जेफ हीटन - पर स्वतंत्र रूप से उपलब्ध पूर्वावलोकन Google पुस्तकें और पहले से लेखक की वेबसाइट :

छिपे हुए परतों की संख्या

छिपी हुई परतों के संबंध में वास्तव में दो निर्णय होने चाहिए: तंत्रिका नेटवर्क में वास्तव में कितनी छिपी हुई परतें हैं और इनमें से प्रत्येक परत में कितने न्यूरॉन्स होंगे। हम पहले जांच करेंगे कि तंत्रिका नेटवर्क के साथ उपयोग करने के लिए छिपी हुई परतों की संख्या कैसे निर्धारित की जाए।

दो छिपी परतों की आवश्यकता वाली समस्याओं का सामना शायद ही कभी किया जाता है। हालांकि, दो छिपे हुए परतों वाले तंत्रिका नेटवर्क किसी भी प्रकार के आकार के साथ कार्यों का प्रतिनिधित्व कर सकते हैं। वर्तमान में दो से अधिक छिपी हुई परतों के साथ तंत्रिका नेटवर्क का उपयोग करने का कोई सैद्धांतिक कारण नहीं है। वास्तव में, कई व्यावहारिक समस्याओं के लिए, एक से अधिक छिपी हुई परत का उपयोग करने का कोई कारण नहीं है। तालिका 5.1 विभिन्न छिपे हुए परतों के साथ तंत्रिका नेटवर्क आर्किटेक्चर की क्षमताओं को संक्षेप में प्रस्तुत करता है।

तालिका 5.1: छिपे हुए परतों की संख्या का निर्धारण

| छिपे हुए परतों की संख्या | परिणाम |

 0 - केवल रैखिक वियोज्य कार्यों या निर्णयों का प्रतिनिधित्व करने में सक्षम।

 1 - किसी भी फ़ंक्शन को अनुमानित कर सकता है जिसमें एक निरंतर मानचित्रण होता है
एक परिमित स्थान से दूसरे में।

 2 - मनमानी सटीकता के लिए एक मनमाना निर्णय सीमा का प्रतिनिधित्व कर सकता है
तर्कसंगत सक्रियण कार्यों के साथ और किसी भी चिकनी को अनुमानित कर सकते हैं
किसी भी सटीकता के लिए मानचित्रण।

छिपी हुई न्यूरॉन परतों की संख्या का निर्णय करना समस्या का केवल एक छोटा सा हिस्सा है। आपको यह भी निर्धारित करना होगा कि इन छिपी हुई परतों में से प्रत्येक में कितने न्यूरॉन होंगे। यह प्रक्रिया अगले भाग में शामिल है।

हिडन लेयर्स में न्यूरॉन्स की संख्या

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

छिपी हुई परतों में बहुत कम न्यूरॉन्स का उपयोग करने से परिणाम कुछ कम हो जाएगा। जब एक जटिल डेटा सेट में संकेतों का पर्याप्त रूप से पता लगाने के लिए छिपी हुई परतों में बहुत कम न्यूरॉन्स होते हैं, तो अंडरफ़िटिंग होता है।

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

छिपी हुई परतों में उपयोग करने के लिए न्यूरॉन्स की सही संख्या निर्धारित करने के लिए अंगूठे के कई नियम हैं, जैसे कि निम्नलिखित:

  • छिपे हुए न्यूरॉन्स की संख्या इनपुट परत के आकार और आउटपुट परत के आकार के बीच होनी चाहिए।
  • छिपे हुए न्यूरॉन्स की संख्या इनपुट परत का आकार 2/3 होनी चाहिए, साथ ही आउटपुट परत का आकार भी।
  • छिपे हुए न्यूरॉन्स की संख्या इनपुट परत के आकार से दोगुने से कम होनी चाहिए।

ये तीन नियम आपको विचार करने के लिए एक प्रारंभिक बिंदु प्रदान करते हैं। अंततः, आपके तंत्रिका नेटवर्क के लिए वास्तुकला का चयन परीक्षण और त्रुटि के लिए नीचे आ जाएगा। लेकिन वास्तव में परीक्षण और त्रुटि का क्या मतलब है? आप अपने नेटवर्क पर परतों और न्यूरॉन्स की यादृच्छिक संख्या फेंकना शुरू नहीं करना चाहते हैं। ऐसा करने में बहुत समय लगता है। अध्याय 8, "एक तंत्रिका नेटवर्क का प्रसार" एक तंत्रिका नेटवर्क के लिए एक इष्टतम संरचना निर्धारित करने के विभिन्न तरीकों का पता लगाएगा।


मैं निम्नलिखित जवाबों को भी पसंद करता हूं , जो मुझे शोधगेट.नेट में मिले उत्तर से मिले , जो कुछ ही शब्दों में बहुत कुछ बताता है:

स्टीफन बी पीटर्सन · अलबोर्ग विश्वविद्यालय

[...]

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


क्या आप स्टीफन बी पीटरसन के उद्धरण के स्रोत को जानते हैं?
सेबेस्टियन नीलसन

मुझे खेद है कि मैं नहीं। मैंने इसे खोजने की कोशिश की, लेकिन मुझे यह नहीं मिला ... मुझे लगता है कि लेख को वेब से हटा दिया गया है। शायद आप उससे सीधे संपर्क कर सकते हैं?
jj_

क्या प्रशिक्षण सेट का आकार ध्यान में नहीं रखा जाना चाहिए? मेरे पास ~ 300,000 अद्वितीय नमूनों (कार की कीमतों) के साथ एक सारणीबद्ध डेटासेट है। इनपुट लेयर में 89 नोड हैं। बिना किसी नियमितीकरण के एक नेटवर्क का प्रशिक्षण और एक ही छिपी हुई परत में केवल 89 नोड्स, मुझे कुछ हॉर्मोन्स के बाद पठार को प्रशिक्षण हानि मिलती है। RMSE पठार ~ $ 1,800 (एकल उत्पादन नोड इस प्रतिगमन समस्या में मूल्य है)।
रॉडरिगो-सिल्वेरा

मुझे लगता है कि स्टीफन बी पीटर्सन द्वारा बोली का स्रोत यहां था: researchgate.net/post/…
ट्रिपलएन्जेन

43

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

आर्किटेक्चर चयन के साथ समस्याओं में से एक यह है कि यह एक असतत है, न कि निरंतर, मॉडल की जटिलता पर नियंत्रण, और इसलिए एक कुंद साधन का एक सा हो सकता है, खासकर जब आदर्श जटिलता कम होती है।

हालांकि, यह सब "नो लंच लंच" प्रमेयों के अधीन है, जबकि नियमितीकरण ज्यादातर मामलों में प्रभावी है, हमेशा ऐसे मामले होंगे जहां आर्किटेक्चर का चयन बेहतर तरीके से काम करता है, और यह पता लगाने का एकमात्र तरीका है कि हाथ में समस्या का सच है या नहीं। दृष्टिकोण और क्रॉस-वैलिडेट दोनों का प्रयास करना है।

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


"मैं इस समय एक अनुभवजन्य अध्ययन पर काम कर रहा हूं" - क्या कोई अद्यतन है?
मार्टिन थोमा

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

17

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

कई दृष्टिकोण हैं, कम या ज्यादा आधुनिक जो अच्छे परिणाम देने वाला लग रहा था वह NEAT (संवर्धित टोपोलॉजी का न्यूरो इवोल्यूशन) था



6

वैश्विक हाइपर-पैरामीटर खोज का उपयोग करके तंत्रिका नेटवर्क के निर्माण के स्वचालित तरीके:

इनपुट और आउटपुट लेयर्स निश्चित आकार के होते हैं।

क्या भिन्न हो सकते हैं:

  • परतों की संख्या
  • प्रत्येक परत में न्यूरॉन्स की संख्या
  • परत के प्रकार

इस असतत अनुकूलन समस्या के लिए एकाधिक तरीकों का उपयोग किया जा सकता है, लागत समारोह के रूप में नमूना त्रुटि के नेटवर्क से बाहर

  • 1) थोड़ा बेहतर स्थिति से शुरू करने के लिए, पैरामीटर स्थान पर ग्रिड / यादृच्छिक खोज
  • 2) इष्टतम वास्तुकला खोजने के लिए बहुत सारे तरीकों का इस्तेमाल किया जा सकता है। (हां, इसमें समय लगता है)।
  • 3) कुछ नियमितीकरण करें, कुल्ला, दोहराएं।

6

क्षमा करें, मैं अभी तक एक टिप्पणी पोस्ट नहीं कर सकता इसलिए कृपया मेरे साथ सहन करें। वैसे भी, मैं इस चर्चा सूत्र में टकरा गया, जिसने मुझे एक कागज की याद दिला दी जो मैंने हाल ही में देखा था। मुझे लगता है कि यहां भाग लेने वाले लोगों के लिए यह रुचि हो सकती है:

AdaNet: कृत्रिम तंत्रिका नेटवर्क के अनुकूली संरचनात्मक अध्ययन

कोरिन्ना कोर्टेस, जेवियर गोनज़ाल्वो, विटाली कुज़नेत्सोव, मेहरियर मोहरी, स्कॉट यांग; मशीन लर्निंग पर 34 वें अंतर्राष्ट्रीय सम्मेलन की कार्यवाही, पीएमएलआर 70: 874-883, 2017।

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


5

मैंने अपने स्वामी थीसिस, अध्याय 3 में टोपोलॉजी सीखने के कई तरीके सूचीबद्ध किए हैं । बड़ी श्रेणियां हैं:

  • बढ़ता हुआ दृष्टिकोण
  • प्रूनिंग दृष्टिकोण
  • आनुवंशिक दृष्टिकोण
  • सुदृढीकरण सीखना
  • संवादी तंत्रिका कपड़े

3

मैं एक कम सामान्य लेकिन सुपर प्रभावी विधि का सुझाव देना चाहता हूं ।

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

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

10-50 पीढ़ियों को एक सभ्य आकार के नेटवर्क के लिए शानदार परिणाम प्राप्त करने चाहिए।


एक और बहुत ही दिलचस्प तरीका है बायेसियन ऑप्टिमाइज़ेशन जो अपेक्षाकृत कम मापदंडों के लिए एक अत्यंत प्रभावी ब्लैक-बॉक्स ऑप्टिमाइज़ेशन विधि है। arxiv.org/pdf/1206.2944.pdf
दान इरेज़

2

छिपे हुए परतों की संख्या और वे क्या हासिल कर सकते हैं:

0 - केवल रैखिक वियोज्य कार्यों या निर्णयों का प्रतिनिधित्व करने में सक्षम।

1 - किसी भी फ़ंक्शन को अनुमानित कर सकता है जिसमें एक परिमित स्थान से दूसरे तक निरंतर मानचित्रण होता है।

2 - तर्कसंगत सक्रियण कार्यों के साथ मनमानी सटीकता के लिए एक मनमाना निर्णय सीमा का प्रतिनिधित्व कर सकते हैं और किसी भी सटीकता के लिए किसी भी चिकनी मानचित्रण अनुमानित कर सकते हैं।

2 से अधिक - अतिरिक्त परतें परतों के लिए जटिल अभ्यावेदन (स्वचालित फीचर इंजीनियरिंग का प्रकार) सीख सकती हैं।


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