न्यूरल नेटवर्क्स के वज़न को यादृच्छिक संख्याओं के लिए क्यों शुरू किया जाना चाहिए? [बन्द है]


105

मैं खरोंच से एक तंत्रिका नेटवर्क बनाने की कोशिश कर रहा हूं। सभी एआई साहित्य में सर्वसम्मति है कि नेटवर्क को तेजी से रूपांतरित करने के लिए वजन को यादृच्छिक संख्याओं के लिए आरंभीकृत किया जाना चाहिए।

लेकिन तंत्रिका नेटवर्क प्रारंभिक वजन को यादृच्छिक संख्या के रूप में क्यों आरंभ किया जाता है?

मैंने कहीं पढ़ा था कि यह "समरूपता को तोड़ने" के लिए किया जाता है और इससे तंत्रिका नेटवर्क तेजी से सीखता है। समरूपता को तोड़ने से यह तेजी से कैसे सीखता है?

0 से वजन कम करना बेहतर विचार नहीं होगा? इस तरह से वेट तेजी से अपने मूल्यों (चाहे सकारात्मक या नकारात्मक) को खोजने में सक्षम होगा?

क्या उम्मीद के अलावा वज़न को बेतरतीब करने के पीछे कुछ अन्य अंतर्निहित दर्शन हैं जो कि आरंभीकृत होने पर अपने इष्टतम मूल्यों के निकट होंगे?


8
यह क्रॉस वैलिडेट के लिए एक बेहतर फिट की तरह लगता है ।
साइकोरैक्स

2
मैं इस प्रश्न को बंद करने के लिए मतदान कर रहा हूं क्योंकि यह प्रोग्रामिंग के बारे में नहीं है जैसा कि सहायता केंद्र में परिभाषित किया गया है, लेकिन सामान्य एमएल सिद्धांत और कार्यप्रणाली के बारे में।
सुनसान

जवाबों:


140

यहां समरूपता को तोड़ना आवश्यक है, न कि प्रदर्शन के कारण। मल्टीलेयर परसेप्ट्रॉन (इनपुट और छिपी परतें) की पहली 2 परतों की कल्पना करें:

यहां छवि विवरण दर्ज करें

आगे प्रसार के दौरान छिपी परत में प्रत्येक इकाई को संकेत मिलता है:

यहां छवि विवरण दर्ज करें

यही है, प्रत्येक छिपी इकाई को संबंधित वजन से गुणा किए गए इनपुट का योग मिलता है।

अब कल्पना करें कि आप एक ही मूल्य (जैसे शून्य या एक) के लिए सभी वज़न को इनिशियलाइज़ करते हैं। इस मामले में, प्रत्येक छिपी इकाई को ठीक उसी संकेत मिलेगा । उदाहरण के लिए, यदि सभी भारों को 1 से प्रारंभ किया जाता है, तो प्रत्येक इकाई को इनपुट (और आउटपुट sigmoid(sum(inputs))) के योग के बराबर संकेत मिलता है । यदि सभी भार शून्य हैं, जो और भी बदतर है, तो प्रत्येक छिपी इकाई को शून्य संकेत मिलेगा। कोई फर्क नहीं पड़ता कि इनपुट क्या था - यदि सभी भार समान हैं, तो छिपी हुई परत में सभी इकाइयां समान होंगी

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


1
महान व्याख्या। लेकिन शब्द का उपयोग क्यों symmetryनहीं correlation? शब्द का प्रयोग सबसे पहले किसने किया था?
एनएन ० पी

1
@ nn0p: सहसंबंध का अर्थ है कि 2 संकेत एक समान दिशा में बदलते हैं, लेकिन हमेशा और एक ही परिमाण के साथ नहीं। कम से कम जहां तक ​​मुझे पता है, समरूपता की औपचारिक परिभाषा नहीं है और यहां नोड्स के बीच सभी लिंक पर बिल्कुल समान संकेतों का प्रतिनिधित्व करने के लिए उपयोग किया जाता है , जो प्रशिक्षण को बेकार बनाता है।
दोस्ती

@ ड्रॉप-आउट का उपयोग करने की स्थिति में, रैंडमाइजेशन की अधिक आवश्यकता नहीं है। क्या मै गलत हु?
इमानुएल

1
@मैन्यूले ड्रॉपआउट अपने आप में एक तरह का यादृच्छिककरण है, इसलिए हां, यह काम करना चाहिए। फिर भी, प्रत्येक कनेक्शन पर "ड्रॉप आउट" नहीं होने वाले सभी कनेक्शनों को अभी भी सममित अद्यतन मिलेगा, इसलिए मुझे लगता है कि सीखना काफी धीमा होगा और इस प्रकार किसी भी व्यावहारिक नेटवर्क में अभी भी यादृच्छिक आरंभीकरण का उपयोग करने की सलाह देते हैं।
दोस्त

यह फ़ॉरवर्डप्रॉप को अच्छी तरह से समझाता है, लेकिन बैकप्रॉप के बारे में क्या?
ज़ेल

74

सादृश्य:

मुझे आशा है कि यह एक अच्छा सादृश्य है। मैंने इसे यथासंभव सरल रूप में समझाने की कोशिश की है।

कल्पना कीजिए कि किसी ने आपको हेलीकॉप्टर से एक अज्ञात पहाड़ की चोटी पर गिरा दिया है और आप वहां फंस गए हैं। हर जगह धूम मची हुई है। केवल एक चीज जो आप जानते हैं कि आपको समुद्र के स्तर पर किसी तरह उतरना चाहिए। आपको सबसे कम संभव बिंदु पर उतरने के लिए कौन सी दिशा लेनी चाहिए?

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

हालांकि, हर बार हेलीकॉप्टर आपको पहाड़ पर कहीं बेतरतीब ढंग से गिराता है, आप अलग-अलग दिशा और कदम उठाते हैं। इसलिए, आपके लिए सबसे कम संभव बिंदु तक पहुंचने का एक बेहतर मौका होगा।

समरूपता को तोड़ने का मतलब यही है । इनिशियलाइज़ेशन है असममित है ( जो अलग है ) ताकि आप एक ही समस्या के विभिन्न समाधान पा सकें।

इस सादृश्य में, जहाँ आप भूमि हैं, वज़न है । इसलिए, विभिन्न भारों के साथ, सबसे कम ( या निम्न ) बिंदु तक पहुंचने का एक बेहतर मौका है ।

इसके अलावा, यह सिस्टम में एन्ट्रापी को बढ़ाता है इसलिए सिस्टम आपको कम अंक ( स्थानीय या वैश्विक न्यूनतम ) खोजने में मदद करने के लिए अधिक जानकारी बना सकता है ।

यहां छवि विवरण दर्ज करें


10
ऐसा लगता है कि हेलिकॉप्टर आपको कई बार पहाड़ पर बेतरतीब ढंग से गिराता है, हालाँकि गहरी सीख में हम केवल एक बार ही बेतरतीब ढंग से वज़न उठाते हैं।
युफेंग शेन

1
यह एक वास्तविक सहज व्याख्या है। हमें यह भी ध्यान देना चाहिए कि एनएन लगभग कभी उत्तल नहीं होते हैं - इसलिए रैंडमाइजेशन जाने का आदर्श तरीका है - लेकिन अगर आपके पास उत्तल हानि फ़ंक्शन है, तो निश्चित रूप से यह कोई फर्क नहीं पड़ता कि आप अपने वज़न को किस प्रकार मापते हैं।
किंग्ज़

4
यह एक अच्छा सादृश्य है - लेकिन यह अधिक समझ में आता है कि आपको और आपके दोस्तों को पहाड़ पर गिराया जा रहा है (यानी एक नेटवर्क में नोड्स) - या तो एक ही स्थान पर या विभिन्न स्थानों पर अलग-अलग लोग। और मान लें कि आप सभी एक दूसरे के साथ संवाद कर सकते हैं। संचार के साथ विभिन्न स्पॉट एक तेजी से वंश की अनुमति देगा। समान स्थान का अर्थ है कि सभी को समान पथ नीचे ले जाने की संभावना है।
अहमेधोसानी

26

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

यही तर्क अन्य एल्गोरिदम पर लागू होता है, जो एक वैश्विक इष्टतम (k- साधन, EM, आदि) खोजने में सक्षम नहीं हैं और वैश्विक अनुकूलन तकनीकों (जैसे SVM ​​के लिए SMO एल्गोरिदम) पर लागू नहीं होता है।


तो, यह गारंटी नहीं है कि यह यादृच्छिक रूप से स्थानीय मिनीमा में फंस नहीं जाएगा? लेकिन विभिन्न यादृच्छिक वजन के साथ कई रन के बाद यह वैश्विक न्यूनतम हो सकता है?
शयन आरसी

1
इसकी कोई गारंटी नहीं है, लेकिन कई इनिशियलाइज़ेशन कम से कम सच्चे इष्टतम के पास पहुंचने में मदद कर सकते हैं।
lejlot

क्या कोई मानक सूत्र या नियम है जो वजन को शुरू करने के लिए मूल्य निर्धारित करता है ?? मेरे पास फीड-फ़ॉर्वर्ड, मल्टी-लेयर, बैक-प्रोपगेशन न्यूरल नेटवर्क है, जहाँ सिग्मॉइड फ़ंक्शन का उपयोग किया जाता है।
lkkkk

S.Haykin पुस्तक "न्यूरल नेटवर्क" में अंगूठे के कुछ नियम हैं
lejlot

3
यही कारण है कि लोग यादृच्छिक आरंभीकरण का उपयोग नहीं करते हैं क्योंकि अधिकांश लोग विभिन्न यादृच्छिक प्रारंभिकताओं के साथ कई बार प्रशिक्षण को पुनरारंभ नहीं करते हैं और नेट अभी भी एक अच्छा स्थानीय ऑप्टिमा प्राप्त करने में सक्षम है।
cesarsalgado

4

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


2
  1. 0 से वजन कम करना बेहतर विचार नहीं होगा? इस तरह से वेट तेजी से अपने मूल्यों (चाहे सकारात्मक या नकारात्मक) को खोजने में सक्षम होगा?

  2. समरूपता को तोड़ने से यह तेजी से कैसे सीखता है?

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

एक ही इनपुट से जुड़ी एक छिपी हुई परत में साइड-बाय-साइड वाले नोड्स को वज़न अपडेट करने के लिए लर्निंग एल्गोरिदम के लिए अलग-अलग वज़न होना चाहिए।

वेट को नॉन जीरो (लेकिन 0 से करीब 0.1 आदि की तरह) बनाकर, एल्गोरिथम अगले पुनरावृत्तियों में वेट सीख लेगा और अटक नहीं जाएगा। इस तरह, समरूपता को तोड़ने से होता है।

  1. क्या उम्मीद के अलावा वज़न को बेतरतीब करने के पीछे कुछ अन्य अंतर्निहित दर्शन हैं जो कि आरंभीकृत होने पर अपने इष्टतम मूल्यों के निकट होंगे?

स्टोचस्टिक ढाल के रूप में स्टोकेस्टिक अनुकूलन एल्गोरिदम खोज के लिए एक प्रारंभिक बिंदु का चयन करने और खोज की प्रगति में यादृच्छिकता का उपयोग करते हैं।

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

एक स्थानीय ऑप्टिमा पर निर्भर होने के बजाय, यदि आप अपने एल्गोरिथ्म को कई बार अलग-अलग यादृच्छिक भार के साथ चलाते हैं, तो स्थानीय ऑप्टिमा पर अटकने के बिना वैश्विक ऑप्टिमा खोजने की सबसे अच्छी संभावना है।

2015 के बाद से, मशीन सीखने के अनुसंधान में प्रगति के कारण, हेम-एट-अल एनिलीज़ियोतो एन को यादृच्छिक आरंभीकरण को बदलने के लिए पेश किया गया है

w=np.random.randn(layer_size[l],layer_size[l-1])*np.sqrt(2/layer_size[l-1])

वजन अभी भी यादृच्छिक हैं लेकिन न्यूरॉन्स की पिछली परत के आकार के आधार पर सीमा में भिन्न होते हैं।

सारांश में, गैर-शून्य यादृच्छिक वजन हमारी मदद करते हैं

  1. स्थानीय ऑप्टिमा से बाहर आओ
  2. समरूपता को तोड़ना
  3. आगे पुनरावृत्तियों में वैश्विक ऑप्टिमा तक पहुंचें

1

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


1

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

तंत्रिका नेटवर्क वजन को जानने और अद्यतन करने के लिए बैक-प्रचार का उपयोग करते हैं, और समस्या यह है कि इस विधि में, वज़न स्थानीय इष्टतम (स्थानीय न्यूनतम लागत / हानि) में परिवर्तित होता है , न कि वैश्विक इष्टतम में।

रैंडम वेटिंग नेटवर्क को उपलब्ध स्थान में प्रत्येक दिशा के लिए मौके लेने में मदद करता है और धीरे-धीरे बेहतर उत्तर पर पहुंचने के लिए उन्हें सुधारता है और एक दिशा या उत्तर तक सीमित नहीं होता है

[नीचे दी गई छवि अभिसरण का एक आयामी उदाहरण दिखाती है। प्रारंभिक स्थान को देखते हुए, स्थानीय अनुकूलन प्राप्त किया जाता है, लेकिन वैश्विक अनुकूलन नहीं। उच्च आयामों पर, यादृच्छिक भार सही जगह पर होने या बेहतर शुरू होने की संभावना को बढ़ा सकते हैं, जिसके परिणामस्वरूप वजन को बेहतर मूल्यों में परिवर्तित कर सकते हैं।] [१]

[१]: https://i.stack.imgur.com/2dioT.png [कलहोर, ए। (२०२०)। वर्गीकरण और प्रतिगमन एनएन। भाषण।]

सबसे सरल मामले में, नया वजन इस प्रकार है:

W_new = W_old + D_loss

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

यह एक बहुत ही सरल उदाहरण था, लेकिन यह सीखने पर यादृच्छिक भारोत्तोलन के प्रभाव को दर्शाता है। यह तंत्रिका नेटवर्क को एक तरफ जाने के बजाय विभिन्न स्थानों पर जाने में सक्षम बनाता है। नतीजतन, सीखने की प्रक्रिया में, इन स्थानों में से सबसे अच्छा करने के लिए जाओ


0

अधिक गणितीय होने दें। वास्तव में, मैं इसका उत्तर देता हूं कि मुझे अन्य उत्तरों में यह कमी महसूस हुई। मान लें कि आपके पास 2 परतें हैं। अगर हम पीछे के प्रचार एल्गोरिथ्म को देखें, की गणना

dZ2 = A2 - Y

dW2 = (1 / m) * dZ2 * A2.T

Db2 को नजरअंदाज करते हैं। (क्षमा करें मुझे अवसोस नहीं है ;) )

dZ1 = W2.T * dZ2। * g1 '(Z1)

...

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


0

मैंने एक बात सीखी: यदि आप वजन को शून्य से शुरू करते हैं, तो यह स्पष्ट है कि एक ही परत में सक्रियण इकाइयां समान होंगी, इसका मतलब है कि उनके समान मूल्य होंगे। जब आप बैकब्रॉप करते हैं, तो आप पाएंगे कि ग्रेडिएंट dW की सभी पंक्तियाँ भी समान हैं, इसलिए ग्रेडिएंट डीसेंट अपडेट के बाद वेट मैट्रिक्स W की सभी पंक्तियाँ समान हैं। सामान्य तौर पर, नेटवर्क को शून्य करने के लिए सभी भारों को प्रारंभ करना, समरूपता को तोड़ने में विफल रहा। इसका मतलब है कि प्रत्येक परत में प्रत्येक न्यूरॉन एक ही चीज सीखेगा, और आप n[l]=1n[l]=1हर परत के साथ एक तंत्रिका नेटवर्क का प्रशिक्षण ले सकते हैं , और नेटवर्क लोजिस्टिक क्लासिफायर जैसे लॉजिस्टिक रिग्रेशन से अधिक शक्तिशाली नहीं है। एंड्रयू एनजी पाठ्यक्रम:

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