सीएनएन जेवियर वजन आरंभीकरण


14

कुछ ट्यूटोरियल्स में मैंने पाया कि "जेवियर" वेट इनिशियलाइज़ेशन (पेपर: डीप फीडफोरवर्ड न्यूरल नेटवर्क के प्रशिक्षण की कठिनाई को समझना ) न्यूरल नेटवर्क के वज़न को कम करने का एक कारगर तरीका है।

पूरी तरह से जुड़ी हुई परतों के लिए उन ट्यूटोरियल में अंगूठे का एक नियम था:

Var(W)=2nin+nout,simpler alternative:Var(W)=1nin

जहाँ एक परत के लिए भार का प्रसरण है, जिसे एक सामान्य वितरण के साथ प्रारंभ किया जाता है और , जनक और वर्तमान परत में न्यूरॉन्स की मात्रा है।n i n n o u tVar(W)ninnout

क्या संकेंद्रित परतों के लिए अंगूठे के समान नियम हैं?

मैं यह पता लगाने के लिए संघर्ष कर रहा हूं कि एक दृढ़ परत के भार को शुरू करने के लिए सबसे अच्छा क्या होगा। उदाहरण के लिए, एक परत में जहां वज़न का (5, 5, 3, 8)आकार होता है , इसलिए कर्नेल का आकार 5x5, तीन इनपुट चैनलों (आरजीबी इनपुट) को फ़िल्टर करना और 8फ़ीचर मैप बनाना ... 3इनपुट न्यूरॉन्स की मात्रा माना जाएगा ? या बल्कि 75 = 5*5*3, क्योंकि इनपुट 5x5प्रत्येक रंग चैनल के लिए पैच हैं ?

मैं दोनों को स्वीकार करता हूं, समस्या को स्पष्ट करने वाला एक विशिष्ट उत्तर या अधिक "जेनेरिक" जवाब है, जो वजन के सही प्रारंभ और सामान्य रूप से लिंक करने वाले स्रोतों को खोजने की सामान्य प्रक्रिया को समझाता है।

जवाबों:


13

इस मामले में न्यूरॉन्स की मात्रा होनी चाहिए 5*5*3

मुझे यह विशेष रूप से दृढ़ परतों के लिए उपयोगी लगा। अक्सर अंतराल पर एक समान वितरण काम करता है। [c/(in+out),c/(in+out)]

यह लगभग सभी तंत्रिका नेटवर्क पुस्तकालयों में एक विकल्प के रूप में लागू किया गया है। यहाँ आप क्वास के ज़ेवियर ग्लोरॉट के आरंभ के कार्यान्वयन का स्रोत कोड पा सकते हैं।


1
1106[0.1,0.01]

@ कैसेंटर सॉरी मुझे इस बारे में ज्यादा जानकारी नहीं है कि प्रशिक्षण के दौरान वज़न कैसे बदलता है। हालांकि कभी-कभी अजीब परिणाम बहुत बड़ी / छोटी सीखने की दर से आ सकते हैं।
फेलो

106103

0

मैं यहां एरिक का दूसरा जवाब देता हूं। मैं भी शब्द का "sqrt" लेता हूं और केवल उस शब्द का नहीं। इसके बावजूद, जब आप अपने नेट में "सिचुएशन" आउटपुट के लिए सिग्मॉइड को गहराई से जोड़ते हैं .... तो यह स्टाल के लिए प्रशिक्षण का कारण बन सकता है। यह अनबाउंड "रिलु" आउटपुट के कारण है जो कि सिग्मोइड में 0 से गिरने के लिए ढाल बना सकता है और कोई सीख नहीं होती है। तो, मामलों में, मेरे पास मेरे नेट के लिए "स्केलडाउन" कारक है जो उस कारक द्वारा आरंभीकरण विचलन को कम करेगा। जब तक सीखने नहीं होता तब तक मैं वजन को पूरी तरह से नियंत्रित रखता हूं। खोजने का एक सरल तरीका यह है कि 1 पुनरावृत्ति के तुरंत बाद मॉडल को बचाया जाए और RELU आउटपुट (जो सिग्मोइड से जुड़ा हो) पर एक नज़र डालें। जब तक यह RELU आउटपुट उचित नहीं हो जाता तब तक वेट को ट्यून करते रहें। और फिर प्रशिक्षण के लिए उन भार का उपयोग करें। यह एक अच्छी शुरुआत है। यदि यह कुछ पुनरावृत्तियों के बाद भी ढह जाता है, जब तक आप स्थिरता तक नहीं पहुँचते, तब तक उन्हें थोड़ा और कम करें। इसका सिर्फ एक हैक मैंने इस्तेमाल किया। इसने मेरे सेटअप के लिए मेरे लिए काम किया। इसलिए अपना अनुभव साझा कर रहा हूं। अलग-अलग चीजें अलग-अलग सेटअप के लिए काम करती हैं।

इतनी अच्छी किस्मत!

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