मैं अपने तंत्रिका नेटवर्क स्थिरता में सुधार कैसे करूं?


11

मैं 14 इनपुट और एक आउटपुट के साथ एनएन बनाने के लिए आर में न्यूरलनेट का उपयोग कर रहा हूं। मैं एक ही इनपुट प्रशिक्षण डेटा और एक ही नेटवर्क आर्किटेक्चर / सेटिंग्स का उपयोग करके कई बार नेटवर्क का निर्माण / प्रशिक्षण करता हूं।

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

मैं समझता हूं कि प्रत्येक बार एनएन के भीतर उत्पादित भार में अंतर होगा और यह कि कोई दो तंत्रिका नेटवर्क समान नहीं होंगे, लेकिन क्या मैं समान डेटा को देखते हुए प्रत्येक ट्रेन में अधिक संगत नेटवर्क का उत्पादन करने का प्रयास कर सकता हूं?


क्या आप हमें सीखने के एल्गोरिथ्म और वास्तुकला पर थोड़ा और अधिक विवरण दे सकते हैं जिसे आपने (या आर पैकेज) इस्तेमाल किया था? NN की कितनी परतें हैं?
लुकास

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

जवाबों:


8

सामान्य तौर पर आप छिपे हुए नोड्स की संख्या में वृद्धि करके और उचित वजन क्षय (उर्फ रिज दंड) का उपयोग करके अधिक स्थिरता प्राप्त करेंगे।

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

मैं यह भी सुनिश्चित करूंगा कि आपके इनपुट सभी ठीक से वातानुकूलित हैं। क्या आपने ऑर्थोगोनाइज्ड किया है और फिर उन्हें फिर से बढ़ाया है? यह pcaNNetकार्य आपके द्वारा कार्य के माध्यम से कैरेट भी कर सकता है ।

अंत में आप कुछ स्किप लेयर कनेक्शन में टॉसिंग पर विचार कर सकते हैं। आपको यह सुनिश्चित करने की आवश्यकता है कि उन कनेक्शनों को तिरछा करने के लिए आपके डेटा में कोई आउटलेयर / लीवरेज पॉइंट नहीं हैं।


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

में nnetप्रारंभिक वजन सभी 0.7 के बीच -0.7 और एक समान यादृच्छिक संख्या के लिए शुरू कर रहे हैं अगर मैं सही ढंग से याद करते हैं। और आप एक पैरामीटर में परिमाण को नियंत्रित कर सकते हैं। मैंने ईमानदारी से nnetपैकेज के साथ ठोस किस्मत पाई है और कभी भी अन्य विकल्पों में से कोई भी प्रयास नहीं किया है। शुभकामनाएँ!
शिया पार्क्स

1

मैंने R के साथ काम नहीं किया है, इसलिए मैं केवल अधिक सामान्य सुझाव दे सकता हूं।

क्या आपने जाँच की थी कि क्या एल्गोरिथम अभिसरित है? एक संभावित व्याख्या यह हो सकती है कि अलग-अलग पैरामीटर सेट सभी एक ही इष्टतम के लिए कहीं आधे रास्ते हैं।

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


बस एक फी के रूप में, जब तक वह nnetआधार R से उपयोग कर रहा है , वह R के से BFGS अनुकूलन विधि का उपयोग करता है optim। यह वास्तव में सतह की एक तस्वीर पाने के लिए ग्रेडिएंट्स की गणना करता है। इसके कार्यान्वयन में कोई बैच प्रसंस्करण और कोई निश्चित गति पैरामीटर नहीं है। यह सब कहने के बाद, यह आसानी से अभिसरण करने में विफल हो सकता है; विशेष रूप से कचरे के साथ।
शीआ पार्क्स

@SheaParkes टिप्पणी के लिए धन्यवाद और शी का जवाब देता है। मैं वास्तव में न्यूरलनेट पैकेज का उपयोग कर रहा हूं - ऊपर टिप्पणी देखें। यह वजन पीछे करने के साथ एक लचीला
बैकप्रोपैजेशन

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