मेरा तंत्रिका नेटवर्क यूक्लिडियन दूरी भी नहीं सीख सकता है


9

इसलिए मैं खुद को तंत्रिका नेटवर्क (प्रतिगमन अनुप्रयोगों के लिए, बिल्लियों की तस्वीरों को वर्गीकृत नहीं करना) सिखाने की कोशिश कर रहा हूं।

मेरे पहले प्रयोग एक नेटवर्क को एक एफआईआर फिल्टर और एक असतत फूरियर ट्रांसफॉर्म ("सिग्नल से पहले" और "सिग्नल" के बाद प्रशिक्षण) को लागू करने के लिए प्रशिक्षित कर रहे थे, क्योंकि वे दोनों रेखीय ऑपरेशन हैं जो बिना किसी सक्रियण फ़ंक्शन के एक एकल परत द्वारा कार्यान्वित किए जा सकते हैं। दोनों ने ठीक काम किया।

तो फिर मैं देखना चाहता था कि क्या मैं एक जोड़ सकता हूं abs()और इसे एक आयाम स्पेक्ट्रम सीख सकता हूं । पहले मैंने इस बारे में सोचा कि छिपी हुई परत में कितने नोड्स की आवश्यकता होगी, और यह महसूस किया कि 3 ReLUs एक कच्चे सन्निकटन के लिए पर्याप्त हैं abs(x+jy) = sqrt(x² + y²), इसलिए मैंने उस ऑपरेशन को अकेले जटिल संख्याओं पर परीक्षण किया (2 इनपुट → 3 ReLU नोड्स छिपे हुए) → उत्पादन)। कभी-कभी यह काम करता है:

3 उल्टे हेक्सागोनल पिरामिड के रूप में यूक्लिडियन दूरी को लागू करने वाले ReLUs

लेकिन ज्यादातर बार मैं इसे आज़माता हूं, यह एक स्थानीय न्यूनतम में फंस जाता है और सही आकार खोजने में विफल रहता है:

घाटी के आकार का नेटवर्क बनाने वाले 3 ReLUs

नुकसान बनाम युग

मैंने Keras में सभी ऑप्टिमाइज़र और ReLU वेरिएंट आज़माए हैं, लेकिन उनमें बहुत अंतर नहीं है। क्या ऐसा कुछ और है जो मैं इस तरह से सरल नेटवर्क बनाने के लिए कर सकता हूं? या मैं सिर्फ गलत रवैये के साथ ऐसा कर रहा हूं, और आपको समस्या पर जरूरत से ज्यादा नोड्स फेंकने की जरूरत है और अगर उनमें से आधे मर जाते हैं तो यह एक बड़ी बात नहीं मानी जाती?


1
आपका प्लॉट दिखाता है कि कई अलग-अलग प्रयोग किए गए हैं, जिनमें से कुछ काम करते हैं और कुछ नहीं। अंतर के लिए क्या खाते हैं?
साइकोरैक्स का कहना है कि मोनिका

@ साइकोरेक्स वे एक ही चीज़ के बार-बार किए गए परीक्षण हैं। कभी-कभी यह एक हेक्सागोनल पिरामिड समाधान पाता है, लेकिन आमतौर पर यह नहीं होता है।
एंडोलिथ

क्या आपने सक्रिय गतिविधि के रूप में दो छिपी हुई परतों और एक तन के साथ प्रयास किया?
केतन

@KetanNo, क्यों? मैंने यहां एक सरल भिन्नता पोस्ट की है: आंकड़े
एंडोलिथ

आप इसे देखना चाहते हैं। आंकड़े.स्टैकएक्सचेंज . com/q/375655/27556 । लेकिन क्या आप बता सकते हैं कि आपको क्यों लगता है कि आपको केवल 3 रिलेस की आवश्यकता है? 'नेचुरल' अपघटन एक छिपी हुई परत होगी जो कि स्क्वेरिंग सन्निकटन को रिलस के साथ करती है और दूसरी लेयर को वर्गाकार जड़ को करने के लिए - मूल रूप से रिलस वियर वियर लीनियर कर रही है।
seanv507

जवाबों:


6

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

मुझे संदेह है कि इसका एक संभावित कारण तब है जब को एक समन्वय की ओर तिरछा किया जाता है, जैसे , जिस स्थिति में आप पहचान को पुन: उत्पन्न करने का प्रयास कर रहे हैं, जैसे कि तब । वहाँ वास्तव में बहुत ज्यादा नहीं है आप यहाँ यह उपाय कर सकते हैं। एक विकल्प अधिक न्यूरॉन्स जोड़ने का है जैसा कि आपने कोशिश की है। दूसरा विकल्प एक निरंतर सक्रियण की कोशिश करना है, जैसे कि सिग्मोइड, या शायद एक घातीय की तरह अनबाउंड। आप ड्रॉपआउट (10% संभावना के साथ) भी आज़मा सकते हैं। आप करैस में नियमित ड्रॉपआउट कार्यान्वयन का उपयोग कर सकते हैं, जो परिस्थितियों को अनदेखा करने के लिए पर्याप्त रूप से स्मार्ट है जब आपके सभी 3 न्यूरॉन्स बाहर निकल जाते हैं।एक्स+मैंyएक्स»yरों(एक्स+मैंy)एक्स


1
+1, लगभग निश्चित रूप से यह। जब आप इतनी कम संख्या में वेट मरे हुए न्यूरॉन्स के साथ ReLU का उपयोग करते हैं तो लगभग हमेशा खेल में आते हैं।
kbrose

1
यह ReLU के मामले में एक प्रशंसनीय अनुमान है। लेकिन ओपी लिखते हैं कि उन्होंने कुछ अलग-अलग ReLU वेरिएंट आज़माए हैं - क्या मरे हुए न्यूरॉन भी ELU या लीक रेलु या PReLU जैसे वेरिएंट में होते हैं?
साइकोरैक्स का कहना है कि मोनिका

3 shadowy splits in the center when you converge to the more reasonable solution.हाँ, यह मेरे लिए कच्चा सन्निकटन है; एक औंधा षट्कोणीय पिरामिड। or perhaps something unbounded like an exponential मैंने एलु और सेलु की कोशिश की, जो ज्यादा बेहतर नहीं था। two neurons collapse to the same pair of weightsआह, मैंने ऐसा नहीं सोचा था; मैंने सिर्फ यह मान लिया कि वे मर चुके हैं।
एंडोलिथ

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

1
@endolith Dropout स्पष्ट रूप से स्वतंत्र न्यूरॉन्स के निर्माण के आसपास डिज़ाइन किया गया है। ELUs कभी भी "मर" नहीं जाते हैं, लेकिन उनके पास बाईं तरफ गायब होने वाली ढाल है।
साइकोरैक्स का कहना है कि मोनिका
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.