एक तंत्रिका नेटवर्क में अच्छे प्रारंभिक भार क्या हैं?


68

मैंने अभी सुना है, कि रेंज ( - 1) से एक तंत्रिका नेटवर्क के प्रारंभिक भार को चुनना एक अच्छा विचार है, जहांdकिसी दिए गए न्यूरॉन के इनपुट की संख्या है। यह माना जाता है, कि सेट सामान्यीकृत हैं - मतलब 0, विचरण 1 (यह नहीं जानता कि क्या मायने रखता है)।(1d,1d)d

यह एक अच्छा विचार क्यों है?


आरंभिक तकनीकों के अवलोकन के लिए मेरे स्वामी थीसिस, पृष्ठ 81 देखें ।
मार्टिन थॉमा

जवाबों:


47

मुझे लगता है कि आप लॉजिस्टिक न्यूरॉन्स का उपयोग कर रहे हैं, और आप ग्रेडिएंट डिसेंट / बैक-प्रोपगेशन द्वारा प्रशिक्षण ले रहे हैं।

लॉजिस्टिक फ़ंक्शन बड़े सकारात्मक या नकारात्मक इनपुट के लिए फ्लैट के करीब है। के इनपुट पर व्युत्पन्न के बारे में है 1 / 10 , लेकिन कम से 10 व्युत्पन्न के बारे में है 1 / 22000 । इसका मतलब यह है कि यदि किसी दिए गए प्रशिक्षण संकेत के लिए लॉजिस्टिक न्यूरॉन का इनपुट 10 है , तो न्यूरॉन 2200 गुना धीमी गति से सीखेगा कि यदि इनपुट 2 था21/10101/220001022002

यदि आप न्यूरॉन को जल्दी से सीखना चाहते हैं, तो आपको या तो एक विशाल प्रशिक्षण संकेत (जैसे कि एक क्रॉस-एन्ट्रापी लॉस फंक्शन के साथ) का उत्पादन करने की आवश्यकता है या आप चाहते हैं कि व्युत्पन्न बड़ा हो। व्युत्पन्न को बड़ा करने के लिए, आप प्रारंभिक भार निर्धारित करते हैं ताकि आपको अक्सर [ - 4 , 4 ] रेंज में इनपुट मिले।[4,4]

आपके द्वारा दिया जाने वाला प्रारंभिक वजन काम नहीं कर सकता है या नहीं। यह इस बात पर निर्भर करता है कि इनपुट कैसे सामान्य किए जाते हैं। आदानों मतलब है की सामान्यीकृत रहे हैं, तो और मानक विचलन 1 , की तो एक यादृच्छिक राशि पर भार वर्दी के साथ शर्तों ( - 101dका मतलब0और विचरण1 होगा(1d,1d)0 ,d सेस्वतंत्र। [-,] केबाहर आपको एक राशि मिलने की संभावनाकम है। इसका मतलब है कि जैसे-जैसे आपdबढ़ते हैं13d[4,4]d , आप न्यूरॉन्स को संतृप्त करना शुरू नहीं कर रहे हैं ताकि वे सीखें नहीं।

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


1
इसलिए मूल रूप से, किसी को हमेशा कम से कम डेटा को सामान्य करने पर विचार करना चाहिए .. यह अब समझ में आता है। क्या आप बता सकते हैं कि std विचलन 1/3 क्यों होगा और सीमा <-4,4> के बाहर इनपुट योग की संभावना कितनी छोटी है?
elmes

1
विचरण के कुछ मूल गुण हैं जो इसका अर्थ है: यदि और Y स्वतंत्र हैं, तो Var ( X + Y ) = Var ( X ) + Var ( Y ) और यदि X और Y स्वतंत्र हैं और इसका अर्थ 0 है , तो Var ( एक्स वाई ) = वार ( एक्स ) वार ( वाई )XYVar(X+Y)=Var(X)+Var(Y)XY0Var(XY)=Var(X)Var(Y)
डगलस ज़ारे

1
आप इस संभावना का अनुमान लगा सकते हैं कि चेम्बिशव असमानता का उपयोग कर एक यादृच्छिक चर कम से कम मानक विचलन है। व्यवहार में यह तेज नहीं है, लेकिन सटीक परिणाम वितरण पर निर्भर करता है। 12
डगलस ज़रे १४'१३

वैसे, मैंने मिसकॉल किया। विचरण तो मानक विचलनiation है1313
डगलस ज़ारे

1
"लॉजिस्टिक फ़ंक्शन बड़े सकारात्मक या नकारात्मक इनपुट के लिए फ्लैट के करीब है। एक इनपुट पर व्युत्पन्न ..." क्या प्रासंगिक विषय को लॉजिस्टिक प्रतिगमन की लागत फ़ंक्शन का व्युत्पन्न नहीं होना चाहिए ? जिससे लागत फ़ंक्शन के व्युत्पन्न के लिए इनपुट पहले से ही उपस्कर और संकेतों के आकार की परवाह किए बिना लॉजिस्टिक फ़ंक्शन (0,1) तक बढ़ाया जाता है?
Moobie

28

[१] प्रश्न को संबोधित करता है:

सबसे पहले, बैकग्राउंडिंग करते समय समरूपता को तोड़ने के लिए वजन शून्य पर सेट नहीं किया जाना चाहिए:

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

कुछ आरंभिक रणनीतियाँ:

  • [२] और [३] प्रशंसक के वर्गमूल के व्युत्क्रम से स्केलिंग की सलाह देते हैं
  • ग्लोरोट और बेंगियो (2010) और डीप लर्निंग ट्युटोरियल्स में फैन-इन और फैन-आउट के संयोजन का उपयोग किया जाता है:
    • हाइपरबोलिक स्पर्शरेखा इकाइयों के लिए: साथ एक समान (-r, r) का नमूना लेंr=6fan-in+fan-out
    • सिग्मॉइड इकाइयों के लिए: साथ एक समान (-r, r) का नमूना लेंr=46fan-in+fan-out
  • आरबीएम के मामले में, एक शून्य मतलब गौसियन एक छोटे मानक विचलन के साथ लगभग 0.1 या 0.01 अच्छी तरह से काम करता है (हिंटन, 2010) वजन को कम करने के लिए।
  • ऑर्थोगोनल रैंडम मैट्रिक्स इनिशियलाइज़ेशन, यानी W = np.random.randn(ndim, ndim); u, s, v = np.linalg.svd(W)तब uअपने इनिशियलाइज़ेशन मैट्रिक्स के रूप में उपयोग करें।

इसके अलावा, बिना पूर्व-प्रशिक्षण के कुछ स्थितियों में मदद मिल सकती है:

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

कुछ ANN पुस्तकालयों में भी कुछ रोचक सूचियाँ हैं, जैसे Lasagne :

Constant([val]) Initialize weights with constant value.
Normal([std, mean]) Sample initial weights from the Gaussian distribution.
Uniform([range, std, mean]) Sample initial weights from the uniform distribution.
Glorot(initializer[, gain, c01b])   Glorot weight initialization.
GlorotNormal([gain, c01b])  Glorot with weights sampled from the Normal distribution.
GlorotUniform([gain, c01b]) Glorot with weights sampled from the Uniform distribution.
He(initializer[, gain, c01b])   He weight initialization.
HeNormal([gain, c01b])  He initializer with weights sampled from the Normal distribution.
HeUniform([gain, c01b]) He initializer with weights sampled from the Uniform distribution.
Orthogonal([gain])  Intialize weights as Orthogonal matrix.
Sparse([sparsity, std]) Initialize weights as sparse matrix.

[१] बेंगियो, योशुआ। " गहरे आर्किटेक्चर के ग्रेडिएंट-आधारित प्रशिक्षण के लिए व्यावहारिक सिफारिशें। " तंत्रिका नेटवर्क: ट्रिक्स ऑफ़ द ट्रेड। स्प्रिंगर बर्लिन हीडलबर्ग, 2012. 437-478।

[२] लेकुन, वाई।, बोटाउ, एल।, ओआरआर, जीबी और मुलर, के। (१ ९९ un ए)। कुशल बैकप्रॉप। तंत्रिका नेटवर्क में, व्यापार के गुर

[३] ग्लोरोट, जेवियर और योशुआ बेंगियो। " गहरी फीडफ़ॉर्मल तंत्रिका नेटवर्क के प्रशिक्षण की कठिनाई को समझना ।" कृत्रिम बुद्धिमत्ता और सांख्यिकी पर अंतर्राष्ट्रीय सम्मेलन। 2010।


2
मैं `d दो उपयोगी संदर्भ जोड़ना चाहते हैं: 1) रेक्टिफायर्स में गहरी delving: ImageNet वर्गीकरण पर मानव-स्तरीय प्रदर्शन को पार करते - सक्रियण अवगत स्केलिंग के महत्व के बारे arxiv.org/abs/1502.01852 2) के nonlinear गतिशीलता के लिए सटीक समाधान डीप लीनियर न्यूरल नेटवर्क्स में सीखते हुए arxiv.org/abs/1312.6120 - ऑर्थोनॉर्मल मैट्रिसेस सिर्फ गॉसियन के शोर से बहुत बेहतर हैं
पुराने-ऊफो

1
एक संपादक का सुझाव है कि सिग्मॉइड के लिए इनिशियलाइज़ेशन और हाइपरबोलिक स्पर्शरेखा को मूल पेपर से मेल खाने के लिए स्विच किया जाना चाहिए।
गंग

2
क्या आप इसे संपादित करना चाहते हैं, फ्रैंक? यदि नहीं, तो आप इसे वापस ला सकते हैं।
गंग

मेरा कुछ छूट रहा है। ग्लोरॉट और बेंगियो (2010) के पेपर में यह कहां कहा गया है कि वे लॉजिस्टिक सिग्माइड एक्टिवेशन फंक्शन्स का उपयोग करते समय समीकरण 16 मान का 4 गुना उपयोग करने की सलाह देते हैं? समीकरण 16 समीकरण 12 और एक समान वितरण के विचरण का उपयोग करने से होता है, लेकिन समीकरण 16 को व्युत्पन्न इकाई के साथ एक सममित सक्रियण माना जाता है। 0. इस प्रकार, एक तन सक्रियण फ़ंक्शन, लेकिन लॉजिस्टिक सक्रियण फ़ंक्शन (गैर-सममित) नहीं। इसके अलावा, वे लॉजिस्टिक सिग्मोइड के साथ इस प्रस्तावित आरंभीकरण का परीक्षण भी नहीं करते हैं; वे केवल इसे तन्ह और सोफिग्नेंट के साथ परखते हैं।
टॉमी एल

10

<xi>=0
<xi2>=1

सवाल यह है: कैसे सबसे अच्छा वजन का चयन करने के लिए ?. विचार एक वितरण के बाद यादृच्छिक पर भार के मूल्यों को लेने का है जो अनुकूलन प्रक्रिया को एक सार्थक समाधान में परिवर्तित करने में मदद करता है।

y=g(a)
a=i=0dwixi
<a>=i=0d<wixi>=i=0d<wi><xi>=0
<a2>=(i=0dwixi)(i=0dwixi)=i=0d<wi2><xi2>=σ2d
<wiwj>=δij

<xi2>=10

σααα

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

10

अच्छी तरह से सिर्फ एक अद्यतन के रूप में, डेलिंग डीप इन रेक्टिफायर्स: सर्फिंग ह्यूमन-लेवल परफॉरमेंस एन इमेजनेट क्लासिफिकेशन बाय हे एट अल ने विशेष रूप से इनिशियलाइज़ेशन के साथ एक इनिशियलाइज़ेशन पेश किया है w = U([0,n]) * sqrt(2.0/n)जहाँ nआपके एनएन के इनपुट की संख्या है। मैंने इस आरंभीकरण को कई हालिया कामों में इस्तेमाल किया है (ReLU के साथ भी)। वे वास्तव में दिखाते हैं कि यह कैसे (-1 / n, 1 / n) की तुलना में त्रुटि दर को बहुत तेजी से कम करना शुरू करता है। पूरी तरह से स्पष्टीकरण के लिए, कागज देखें, लेकिन यहां बताया गया है कि यह कितनी तेजी से परिवर्तित होता है: 22-परत बड़े मॉडल का अभिसरण


वाह! मेरे लिए महत्वपूर्ण सुधार।
थॉमस डब्ल्यू

हालांकि बड़ी संख्या में इनपुट्स के लिए नहीं ... MNIST के साथ विफल।
थॉमस डब्ल्यू

ध्यान दें कि He-initialisation को विशेष रूप से (P) ReLUs के लिए डिज़ाइन किया गया है और इस तथ्य के लिए जिम्मेदार है कि यह सममित नहीं है (जो जेवियर-आरंभीकरण में मान्यताओं में से एक है)। इस ग्राफ के संदर्भ से मूर्ख मत बनो!
श्री Tsjolder

5

विचार यह है कि आप वेट को इस तरह से इनिशियलाइज़ करना चाहते हैं जो नेटवर्क के माध्यम से अच्छे फॉरवर्ड और बैकवर्ड डेटा फ्लो को सुनिश्चित करता है। यही है, आप नहीं चाहते कि सक्रियता लगातार सिकुड़ती या बढ़ती जाए क्योंकि आप नेटवर्क के माध्यम से आगे बढ़ रहे हैं।

यह छवि नेटवर्क के माध्यम से MNIST के एक पास के बाद 3 अलग-अलग इनिशियलाइज़ेशन रणनीतियों के तहत एक 5 लेयर ReLU मल्टी-लेयर पर्सेप्ट्रॉन की सक्रियता को दिखाती है।

एक ReLU MLP में विभिन्न आरंभीकरण रणनीतियों के साथ सक्रियण

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

मैंने वजन घटाने के बारे में एक ब्लॉग पोस्ट लिखा था अधिक विस्तार में है, लेकिन मूल विचार इस प्रकार है।

x(i)iniw(i)(i+1)ff(s)1

Var(x(i+1))=niVar(x(i))Var(w(i))

Var(x(i+1))=Var(x(i))

Var(w(i))=1ni.

Lxj(i)Δj(i)

Var(Δ(i))=ni+1Var(Δ(i+1))Var(w(i)).

ni=ni+1

Var(w(i))=2ni+ni+1.

N(0,σ)σ=2ni+ni+1U(a,a)a=6ni+ni+1Var(U(a,a))=a2/3

tanhReLUf(s)=ReLU(s)

Var(w(i))=2ni.

3

μB=1mi=1Mxi   and   σB2=1mi=1m(xiμB)2x^i=xiμBσB2+ϵ   and   BN(xi)=γx^i+β
xiBN(xi)x^iγβ

γβx^ixixix^iβγप्रशिक्षण के दौरान। इस प्रकार, बैच सामान्यीकरण सीखने को स्थिर करता है।

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

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