तंत्रिका नेटवर्क में न्यूरॉन्स और परतों की संख्या कैसे निर्धारित करें


26

मैं तंत्रिका नेटवर्क का आरंभक हूं और दो अवधारणाओं को समझने में परेशानी हुई है:

  1. किसी दिए गए तंत्रिका नेटवर्क की मध्य परतों की संख्या कैसे तय होती है? 1 बनाम 10 या जो भी हो।
  2. प्रत्येक मध्य परत में न्यूरॉन्स की संख्या कैसे तय होती है? क्या प्रत्येक मध्य परत में एक समान संख्या में न्यूरॉन्स होने की सिफारिश की जाती है या क्या यह अनुप्रयोग के साथ भिन्न होता है?

जवाबों:


19

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

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

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

मान लीजिए कि आपको निम्नलिखित डेटा को अलग करने के लिए कहा गया है। आपको आवश्यकता होगी d1जो ऊपरी निर्णय सीमा को निर्दिष्ट करता है और किसी तरह यह ANDनिर्धारित करने के लिए ऑपरेशन कर रहा है कि इनपुट डेटा इसके बाईं ओर है या दाईं ओर। लाइन d2एक और ANDऑपरेशन कर रही है जो यह जांच करती है कि इनपुट डेटा ऊपरी है d2या नहीं। इस मामले में d1जानने के लिए कि इनपुट लाइन के रूप में वर्गीकृत करने के लिए इनपुट के बाईं ओर स्थित है कोशिश कर रहा है चक्र भी, d2यह पता लगाने के लिए कि क्या इनपुट के रूप में वर्गीकृत करने के लिए इनपुट लाइन के दाईं ओर है कोशिश कर रहा है चक्र । अब हमें दूसरे की जरूरत हैANDदो मापदंडों के परिणामों को लपेटने के लिए संचालन जो उनके मापदंडों के प्रशिक्षण के बाद निर्मित होते हैं। यदि इनपुट बाईं ओर है d1और दाईं ओर d2, इसे सर्कल के रूप में वर्गीकृत किया जाना चाहिए ।

यहाँ छवि विवरण दर्ज करें

अब मान लीजिए कि आपको निम्नलिखित समस्या है और आपको कक्षाओं को अलग करने के लिए कहा गया है। इस मामले में औचित्य उपर्युक्त की तरह ही है।

यहाँ छवि विवरण दर्ज करें

निम्नलिखित डेटा के लिए:

यहाँ छवि विवरण दर्ज करें

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

यहाँ छवि विवरण दर्ज करें


मान लीजिए कि आपको निम्नलिखित सर्किल निर्णय सीमा को खोजने के लिए कहा गया है ।

यहाँ छवि विवरण दर्ज करें

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

यहाँ छवि विवरण दर्ज करें


11

बहुत अच्छा सवाल है, क्योंकि अभी तक इस सवाल का सटीक जवाब मौजूद नहीं है। यह शोध का एक सक्रिय क्षेत्र है।

अंततः, आपके नेटवर्क की वास्तुकला आपके डेटा की गतिशीलता से संबंधित है। चूंकि तंत्रिका नेटवर्क सार्वभौमिक सन्निकटनकर्ता होते हैं, जब तक आपका नेटवर्क पर्याप्त बड़ा होता है, इसमें आपके डेटा को फिट करने की क्षमता होती है।

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

क्या होगा अगर मेरा नेटवर्क "बहुत बड़ा" है

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

क्या होगा अगर मेरा नेटवर्क "बहुत छोटा" है

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

नेटवर्क के आकार का अनुमान लगाना

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

हालाँकि, यह उतना सरल नहीं है। दरअसल, यदि आपके नेटवर्क को 64-आयामी होने की आवश्यकता है, तो क्या आप आकार 64 की एक छिपी हुई परत या आकार 8 की दो परतों का निर्माण करते हैं? यहां, मैं आपको कुछ अंतर्ज्ञान देने जा रहा हूं कि दोनों मामलों में क्या होगा।

गहराई तक जा रहे हैं

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

यदि आपका डेटा बहुत ही असंरचित (एक छवि की तरह) है तो आपको आमतौर पर गहराई तक जाने की आवश्यकता है और उपयोगी जानकारी को इससे निकालने से पहले काफी संसाधित होने की आवश्यकता है।

व्यापक हो रहा है

गहराई में जाने का अर्थ है अधिक जटिल सुविधाएँ बनाना, और "व्यापक" जाने का अर्थ है कि इनमें से अधिक सुविधाएँ बनाना। यह हो सकता है कि आपकी समस्या को बहुत सरल सुविधाओं द्वारा समझाया जा सकता है, लेकिन उनमें से कई होने की आवश्यकता है। आमतौर पर, परतें नेटवर्क के अंत की ओर सरल कारण के लिए संकीर्ण होती जा रही हैं कि जटिल विशेषताएं साधारण लोगों की तुलना में अधिक जानकारी लेती हैं, और इसलिए आपको उतने की आवश्यकता नहीं है।


आप अपनी समस्या के लिए प्रासंगिक आयामों की संख्या का पता लगाने के लिए आंतरिक आयाम की अवधारणा का उपयोग कर सकते हैं । आंतरिक आयाम इस बात का उत्तर देने की कोशिश करते हैं कि किसी संकेत को पूरी तरह से बताने के लिए कितने चरों की आवश्यकता है और यह उस संकेत के यादृच्छिक स्रोत में चर की संख्या से संबंधित है।
पेड्रो हेनरिक मोनफोर्ट

8

संक्षिप्त उत्तर: यह आपके डेटा के आयाम और एप्लिकेशन के प्रकार से संबंधित है।

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

सूचना टोंटी एक दोधारी तलवार है:

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

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

उदाहरण और अधिक खोज के लिए उपयोगी लिंक:

[१] https: //livebook.manning.com#! / बुक / डीप-लर्निंग-विद-पाइथन / अध्याय -३ / बिंदु -११३०-२३२-२२-०

[२] https://www.quantamagazine.org/new-theory-cracks-open-the-black-box-of-deep-learning-20170921/


4

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

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

सामान्य दृष्टिकोण विभिन्न आर्किटेक्चर की कोशिश करना, परिणामों की तुलना करना और सर्वोत्तम कॉन्फ़िगरेशन लेना है। अनुभव आपको पहले आर्किटेक्चर अनुमान में अधिक अंतर्ज्ञान देता है।


1

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

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