वैरिएबल स्केलिंग इनिशियलाइज़र और जेवियर इनिशियलाइज़र के बीच अंतर क्या है?


20

की Tensorflow के क्रियान्वयन में ResNet , मैं वे विचरण स्केलिंग प्रारंभकर्ता उपयोग करते हैं, मैं भी जेवियर खोजने के प्रारंभकर्ता लोकप्रिय है पाते हैं। मुझे इस पर बहुत अधिक अनुभव नहीं है, जो अभ्यास में बेहतर है?


ज़ेवियर की आरंभीकरण की अधिक विस्तृत व्याख्या के लिए, आप इस लिंक पर जा सकते हैं: prateekvjoshi.com/2016/03/29/… इसमें ज़ेवियर की आरंभीकरण और इसके पीछे अंतर्ज्ञान की उचित व्युत्पत्ति शामिल है।
हिमांशु सिंह

जवाबों:


31

एेतिहाँसिक विचाराे से

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

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

टेंसोफ़्लो में, वह आरंभीकरण variance_scaling_initializer()फ़ंक्शन में कार्यान्वित किया जाता है (जो वास्तव में, एक अधिक सामान्य इनिशियलाइज़र है, लेकिन डिफ़ॉल्ट रूप से वह इनिशियलाइज़ेशन करता है), जबकि ज़ेवियर इनिशियलाइज़र तार्किक है xavier_initializer()

सारांश

सारांश में, मशीन सीखने वाले चिकित्सकों के लिए मुख्य अंतर निम्नलिखित है:

  • उन्होंने साथ परतों के लिए बेहतर काम करता है आरंभीकरण Relu सक्रियण।
  • सिग्मॉइड सक्रियण के साथ परतों के लिए ज़ेवियर इनिशियलाइज़ेशन बेहतर काम करता है ।

पाइटरॉच में इनिज़ालिटोन का क्या उपयोग किया जाता है? क्या यह सक्रियण पर निर्भर करता है?
चार्ली पार्कर

2
हाय, tanh()सक्रियण फ़ंक्शन के लिए, मुझे किस आरंभीकरण फ़ंक्शन का उपयोग करना चाहिए।
गोइंगमवाय

@GoingMyWay, इस pytorch.org/docs/stable/… के अनुसार , आप 5/3 लाभ के साथ He initialization का उपयोग कर सकते हैं। हालांकि यह सुनिश्चित नहीं है कि यह कहां से आता है।
पॉडगॉर्स्की

3

भिन्न स्केलिंग केवल जेवियर का एक सामान्यीकरण है: http://tflearn.org/initialifications/ । वे दोनों इस सिद्धांत पर काम करते हैं कि ग्रेडिएंट्स का पैमाना सभी परतों के समान होना चाहिए। ज़ेवियर का उपयोग करने के लिए सुरक्षित है क्योंकि यह समय की प्रायोगिक परीक्षा से पीछे हट गया है; विचरण स्केलिंग के लिए अपने स्वयं के मापदंडों को लेने की कोशिश करना प्रशिक्षण को बाधित कर सकता है या आपके नेटवर्क को बिल्कुल भी नहीं कमा सकता है।


धन्यवाद। आप विचरण के लिए अपने स्वयं के मापदंडों को लेने का क्या मतलब है?
हनमची

TF कार्यान्वयन में, यह कारक पैरामीटर होगा (जो आउटपुट विचरण के लिए इनपुट विचरण के अनुपात को निर्धारित करता है)
liangjy
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.