फ़िल्टर मैट्रिक्स के तत्वों को कैसे आरंभ करें?


24

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

मैं सीएनएन की परतों को दिखाने के नीचे छवि में फीचर मैप्स के बीच के चरण में कार्यान्वयन विवरणों को समझने की कोशिश कर रहा हूं ।

संवेदी तंत्रिका नेटवर्क परतें

इस चित्र के अनुसार:

एक छवि का रूपांतरण

कर्नेल मैट्रिक्स कर्नेल छवि के ऊपर "स्टेप्स" करता है, एक फीचर मैप बनाता है, जहां प्रत्येक पिक्सेल कर्नेल (या फिल्टर मैट्रिक्स) के प्रत्येक वजन और इनपुट छवि के संबंधित पिक्सेल मूल्य के बीच सभी तत्व-वार उत्पादों का योग होता है।

मेरा सवाल है: हम कर्नेल (या फ़िल्टर) मैट्रिक्स के भार को कैसे शुरू करते हैं?

ऊपर के प्रदर्शन में, वे केवल 1s और 0s हैं, लेकिन मुझे लगता है कि यह आरेख के लिए सरल है।

क्या ये वज़न कुछ प्रीप्रोसेसिंग चरण में प्रशिक्षित हैं? या उपयोगकर्ता द्वारा स्पष्ट रूप से चुना गया है?

जवाबों:


19

आम तौर पर एक नेटवर्क को यादृच्छिक वितरण से आरंभ किया जाता है, आमतौर पर शून्य का मतलब होता है और इसके विचरण को चुनने के संबंध में कुछ ध्यान रखा जाता है। इन दिनों ऑप्टिमाइज़ेशन तकनीकों (अन्य तरीकों के बीच SGD + मोमेंटम) और सक्रियण nonlinearities (ReLUs और ReLU जैसी गतिविधियाँ, जो ग्रैडिएंट सिग्नल के बेहतर बैकप्रोगैज़ेशन की अनुमति देती हैं, यहाँ तक कि गहरे नेटवर्क में भी), एक वास्तव में कला के राज्य को प्रशिक्षित करने में सक्षम है। एक यादृच्छिक आरंभीकरण से तंत्रिका नेटवर्क।

प्रमुख गुण निम्नलिखित हैं:

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

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

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

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

    दो बहुत ही लोकप्रिय वज़न आरंभीकरण योजनाएँ हैं: ग्लोरोट यूनिफ़ॉर्म (गहन फीडफॉर्वर्ड न्यूरल नेटवर्क्स के प्रशिक्षण की कठिनाई को समझना ) और हे नॉर्मल इनिशियलाइज़र ( डेल्फ़्टिंग डीप इन रेक्टीफायर्स: सर्फ़िंग ह्यूमन-लेवल परफॉर्मेंस ऑन इमेजनेट क्लासिफिकेशन )।

    इन दोनों का निर्माण निम्नलिखित मूल सिद्धांत के साथ गहरे नेटवर्क के प्रशिक्षण के इरादे से किया गया है (उद्धरण डेलिंग डेपर से रेक्टीफायर्स में है):

    "एक उचित आरंभीकरण विधि को इनपुट संकेतों के परिमाणों को तेजी से घटाने या बढ़ाने से बचना चाहिए।"

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

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


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

2

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

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