रेक्टिलाइनियर सक्रियण फ़ंक्शन तंत्रिका नेटवर्क में लुप्त हो रही ढाल समस्या को कैसे हल करता है?


40

मैंने पाया कि रैखिक नेटवर्क (ReLU) ने कई स्थानों पर तंत्रिका नेटवर्क के लिए लुप्त हो रही ढाल समस्या के समाधान के रूप में प्रशंसा की । यही है, एक सक्रियण फ़ंक्शन के रूप में अधिकतम (0, x) का उपयोग करता है। जब सक्रियण सकारात्मक होता है, तो यह स्पष्ट है कि यह सिग्मॉइड सक्रियण फ़ंक्शन की तुलना में बेहतर है, क्योंकि इसकी व्युत्पत्ति हमेशा बड़े एक्स के लिए मनमाने ढंग से छोटे मूल्य के बजाय 1 होती है। दूसरी ओर, व्युत्पत्ति ठीक 0 होती है जब x 0. से छोटा होता है। सबसे खराब स्थिति में, जब कोई इकाई कभी सक्रिय नहीं होती है, तो इस इकाई का भार भी कभी नहीं बदलेगा, और इकाई हमेशा के लिए बेकार हो जाएगी - जो लगता है यहां तक ​​कि गायब छोटे ग्रेडिएंट की तुलना में बहुत खराब। जब वे ReLU का उपयोग करते हैं तो लर्निंग एल्गोरिदम उस समस्या से कैसे निपटते हैं?


2
आप सबसे खराब स्थिति के रूप में जो वर्णन करते हैं उसे एक मरते हुए ReLU
मार्टिन थोमा

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

(मुझे यकीन नहीं है कि अगर यह "हमेशा के लिए" है, तो क्या यह अधिक प्रशिक्षण के बाद गैर-शून्य नहीं हो सकता? अन्य नोड्स और / या वर्तमान डेटा-मिनी-बैच पर निर्भरता से? - (स्टोकेस्टिक ग्रेडिएंट वंश के लिए)
Geoattatt22

जवाबों:


33

यहाँ एक पेपर है जो इस मुद्दे की व्याख्या करता है। मैं इस मुद्दे को स्पष्ट करने के लिए इसका कुछ हिस्सा उद्धृत कर रहा हूं।

रेक्टिफायर एक्टिवेशन फंक्शन एक नेटवर्क को आसानी से स्पार्स रिप्रेजेंटेशन प्राप्त करने की अनुमति देता है। उदाहरण के लिए, वजन के एकसमान प्रारंभिककरण के बाद, लगभग 50% छिपी हुई इकाइयां निरंतर आउटपुट मान वास्तविक शून्य होती हैं, और यह अंश आसानी से स्पार्सिटी-उत्प्रेरण नियमितीकरण के साथ बढ़ सकता है।

तो रेक्टिफायर एक्टिवेशन फंक्शन नेटवर्क पर स्पार्सिटी इफेक्ट का परिचय देता है। यहाँ एक ही पेपर से स्पार्सिटी के कुछ फायदे हैं;

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

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

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

  • वितरित लेकिन विरल । सघन रूप से वितरित प्रतिनिधित्व सबसे धनी अभ्यावेदन हैं, संभावित रूप से विशुद्ध रूप से स्थानीय लोगों की तुलना में अधिक कुशल हैं (बेंगियो, 2009)। स्पार्स अभ्यावेदन की दक्षता अभी भी बहुत अधिक है, जिसमें प्रतिपादक की शक्ति गैर-शून्य विशेषताओं की संख्या है। वे उपरोक्त मानदंडों के संबंध में एक अच्छा व्यापार बंद का प्रतिनिधित्व कर सकते हैं।

यह आपके द्वारा पूछे गए प्रश्न का उत्तर भी देता है:

softplus(x)=log(1+ex)(दुगास एट अल।, 2001), गैर-रैखिकता को सुधारने का एक सहज संस्करण। हम सटीक स्पार्सिटी खो देते हैं, लेकिन आसान प्रशिक्षण प्राप्त करने की उम्मीद कर सकते हैं। हालांकि, प्रयोगात्मक परिणाम उस परिकल्पना का खंडन करते हैं, यह सुझाव देते हुए कि कठिन शून्य वास्तव में पर्यवेक्षित प्रशिक्षण में मदद कर सकते हैं। हम परिकल्पना करते हैं कि कठिन गैर-रेखीय इतने लंबे समय तक चोट नहीं पहुंचाते हैं जब कि ढाल कुछ रास्तों के साथ प्रचार कर सकते हैं, अर्थात, प्रत्येक परत में छिपी हुई कुछ इकाइयां गैर-शून्य हैं और वितरित की तुलना में इन इकाइयों को दिए गए क्रेडिट और दोष के साथ। अधिक समान रूप से, हम अनुमान लगाते हैं कि अनुकूलन आसान है।

आप अधिक विवरण के लिए पेपर पढ़ सकते हैं ।


18

यही कारण है कि शायद PReLU, ELU, या अन्य टपका हुआ ReLU जैसी सक्रियताओं का उपयोग करना बेहतर विचार है, जो केवल 0 से नहीं मरते हैं, लेकिन जब सीखने को रखने के लिए x नकारात्मक हो जाता है, तो 0.1 * x की तरह कुछ गिर जाता है। यह मुझे लंबे समय से लग रहा था कि ReLUs सिग्मॉइड की तरह इतिहास हैं, हालांकि किसी कारण से लोग अभी भी इन के साथ पेपर प्रकाशित करते हैं। क्यूं कर? मुझे नहीं पता।

Dmytro Mishkin और अन्य लोगों ने वास्तव में विभिन्न सक्रियण प्रकारों के साथ एक नेटवर्क का परीक्षण किया, आपको विभिन्न सक्रियण कार्यों और अन्य सामानों के प्रदर्शन पर उनके निष्कर्षों पर गौर करना चाहिए। XOR जैसे कुछ कार्य, हालांकि सादे ReLU के साथ बेहतर सीखे जाते हैं। हठधर्मिता के संदर्भ में किसी भी तंत्रिका सामग्री के बारे में मत सोचो, क्योंकि तंत्रिका जाल बहुत काम कर रहे हैं। दुनिया में कोई भी वास्तव में उन्हें नहीं जानता है और उन्हें अच्छी तरह से समझता है कि वह दिव्य सत्य को बताता है। कोई भी नहीं। चीजों को आज़माएं, अपनी खुद की खोज करें। माइंड जो कि ReLU का उपयोग कर रहा है, वह हाल ही में किया गया विकास है और दशकों से क्षेत्र के सभी अलग-अलग PhD लोगों ने ओवर-कॉम्प्लेक्स ऐक्टिवेशन फ़ंक्शंस का उपयोग किया है, जिसे अब हम केवल हंस सकते हैं। बहुत बार "जानने" से आपको बहुत बुरे परिणाम मिल सकते हैं। यह समझना महत्वपूर्ण है कि तंत्रिका नेटवर्क एक सटीक विज्ञान नहीं हैं। गणित में कुछ भी नहीं कहता है कि तंत्रिका नेटवर्क वास्तव में उतना अच्छा काम करेंगे जितना वे करते हैं। यह हेयुरिस्टिक है। और इसलिए यह बहुत निंदनीय है।

FYI करें यहां तक ​​कि पूर्ण-मूल्य सक्रियण से कुछ समस्याओं पर अच्छे परिणाम मिलते हैं, उदाहरण के लिए XOR जैसी समस्याएं। विभिन्न कार्यों के लिए अलग-अलग सक्रियण कार्य बेहतर हैं। मैंने एब्स के साथ Cifar-10 की कोशिश की () और यह खराब प्रदर्शन करने लगा। हालाँकि, मैं यह नहीं कह सकता कि "यह दृश्य मान्यता के लिए एक बदतर सक्रियण कार्य है", क्योंकि मुझे यकीन नहीं है, उदाहरण के लिए, अगर मेरी पूर्व-शुरुआत इसके लिए इष्टतम थी, आदि बहुत तथ्य यह है कि यह अपेक्षाकृत सीख रहा था। मुझे अचंभित कर दिया।

इसके अलावा, वास्तविक जीवन में, "डेरिवेटिव" जिसे आप बैकप्रॉप पास करते हैं, जरूरी नहीं कि वह वास्तविक गणितीय डेरिवेटिव से मेल खाता हो।

मैं यहां तक ​​कहूंगा कि हमें उन्हें "डेरिवेटिव" कहने पर प्रतिबंध लगाना चाहिए और उन्हें कुछ और कॉल करना शुरू करना चाहिए, उदाहरण के लिए, error activation functionsउनके साथ छेड़छाड़ की संभावनाओं के लिए हमारे दिमाग को बंद न करें। आप वास्तव में, उदाहरण के लिए, ReLU सक्रियण का उपयोग कर सकते हैं, लेकिन x <0 के लिए व्युत्पन्न के रूप में 0 के बजाय 0.1, या ऐसा कुछ प्रदान करते हैं। एक तरह से, आपके पास एक सादा ReLU है, लेकिन न्यूरॉन्स "अनुकूलन क्षमता से बाहर नहीं" होने में सक्षम नहीं हैं। मैं इस नेक्रेलु को बुलाता हूं, क्योंकि यह एक ReLU है जो मर नहीं सकता है। और कुछ मामलों में (निश्चित रूप से अधिकांश में, हालांकि नहीं), जो सादे LeakyReLU से बेहतर काम करता है, जो वास्तव में x <0 पर 0.1 व्युत्पन्न है और सामान्य ReLU से बेहतर है। मुझे नहीं लगता कि बहुत से अन्य लोगों ने इस तरह के फ़ंक्शन की जांच की है, हालांकि, यह, या ऐसा ही कुछ वास्तव में एक आम तौर पर शांत सक्रियण फ़ंक्शन हो सकता है जिसे किसी ने सिर्फ इसलिए नहीं माना क्योंकि वे गणित पर बहुत ध्यान केंद्रित कर रहे हैं।

जैसा कि आम तौर पर इस्तेमाल किया जाता है, tanH (x) सक्रियण फ़ंक्शन के लिए 1 - tanH (x) of के बजाय 1 - x² पास करना एक सामान्य बात है ताकि चीजों की तेज़ी से गणना की जा सके।

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

ध्यान दें कि एक सक्रियण होना महत्वपूर्ण है जो आपके सक्रियण फ़ंक्शन के प्रकार से मेल खाता है। उदाहरण के लिए, लीकी रेयुल्स को अन्य init की आवश्यकता होती है जो सादे ReLUs है।

संपादित करें: वास्तव में, मानक ReLU आधुनिक आर्किटेक्चर के साथ लीक से हटकर होने की संभावना कम है। कम से कम छवि पहचान में। ऐसा लगता है कि यदि आप मापदंडों के एक बड़े भार के साथ बहुत अधिक सटीकता वाले जाल के लिए जा रहे हैं, तो सादे ReLU बनाम टपका विकल्पों के साथ रहना बेहतर हो सकता है। लेकिन, निश्चित रूप से, यह सब अपने आप से परीक्षण करें। हो सकता है, अधिक नियमितीकरण दिए जाने पर कुछ टपका हुआ सामान बेहतर काम करेगा।


मुझे आपके NecroReLU में दिलचस्पी है, लेकिन जो आपने लिखा है उससे यह नहीं हो सकता कि यह LeakyReLU से कैसे अलग है। क्या आप स्पष्ट कर सकते हैं?
टॉम हेल

अलग है कि सक्रियण ReLU है, लेकिन व्युत्पन्न LReLU है
thehor Mé

@ ÍhorMé, आप के बारे में उल्लेख किया initialization that corresponds to a type of activation function one is usingएक में NOTEअपनी पोस्ट में, आप अपने सुझावों उपलब्ध कराएं इस के लिए , उसी तर्ज पर मैं पूरी तरह से आश्वस्त नहीं हूँ कि अवग्रह से अधिक Relu सक्रियण का उपयोग कर / tanh गायब हो जाने / विस्फोट ढाल समस्या के लिए एक समाधान है ।
अनु

16

यहाँ एक व्याख्यात्मक व्याख्या है:

  • बैकप्रॉप में प्रत्येक क्रमिक अद्यतन में कई गुणा कारक होते हैं।
  • आगे आप नेटवर्क की शुरुआत की ओर बढ़ते हैं, धीरे-धीरे अद्यतन प्राप्त करने के लिए इनमें से अधिक कारकों को एक साथ गुणा किया जाता है।
  • इन कारकों में से कई न्यूरॉन्स के सक्रियण समारोह के डेरिवेटिव हैं - बाकी वजन, पूर्वाग्रह आदि हैं।
  • इन कारकों में से, जो सहज ज्ञान युक्त पदार्थ वजन, पूर्वाग्रह आदि हैं, सक्रियण फ़ंक्शन डेरिवेटिव एक प्रकार का ट्यूनिंग पैरामीटर हैं, जिन्हें ढाल के मूल को सही प्रकार के वेग में सही दिशा में जाने के लिए डिज़ाइन किया गया है।
  • यदि आप ऐसे शब्दों का एक समूह गुणा करते हैं जो 1 से कम हैं, तो वे आपके पास मौजूद अधिक शब्दों को शून्य की ओर ले जाएंगे। इसलिए यदि आप सक्रियण फ़ंक्शंस हैं जो ढलान <1 है, तो आप आउटपुट परत से आगे गायब हो जाते हैं।
  • यदि आप ऐसे शब्दों का एक गुच्छा गुणा करते हैं जो 1 से अधिक हैं, तो वे आपके पास जितना अधिक होगा, अनंत की ओर बढ़ेंगे, इसलिए यदि आप सक्रियण फ़ंक्शन जो कि ढलान> 1 है, तो आउटपुट परत से आगे बढ़ते हुए ग्रेडिएंट में विस्फोट हो सकता है।
  • कैसे के बारे में अगर हम, किसी तरह, जादुई रूप से, इन शर्तों को प्राप्त करने के लिए सक्रियण कार्यों के व्युत्पन्न द्वारा योगदान किया जा सकता है 1. यह सहज ज्ञान युक्त मतलब है कि ढाल अद्यतन करने के लिए सभी योगदान इनपुट से समस्या और मॉडल के लिए आते हैं - वजन, निविष्टियाँ, पक्षपात - चुने हुए सक्रियण क्रिया के कुछ आकलनों के बजाय।
  • RELU में ग्रेडिएंट 1 है जब आउटपुट> 0, और शून्य अन्यथा।
  • इसलिए बैकपॉप समीकरणों में RELU डेरिवेटिव के एक समूह को एक साथ गुणा करने से 1 या शून्य होने की अच्छी संपत्ति है - अद्यतन या तो कुछ भी नहीं है, या अन्य भार और पूर्वाग्रह से पूरी तरह से योगदान लेता है।

आप सोच सकते हैं कि x <0. जब सपाट होने के बजाय एक रैखिक कार्य करना बेहतर होगा, तो विचार यह है कि RELU अपेक्षाकृत कम संख्या में उपयोगी लिंक के साथ विरल नेटवर्क उत्पन्न करता है, जिसमें अधिक जैविक बहुलता होती है, इसलिए नुकसान वजन का एक गुच्छा वास्तव में मददगार है। इसके अलावा, तंत्रिका जाल के साथ दिलचस्प कार्यों का अनुकरण सक्रियण समारोह में कुछ गैर-शुद्धता के साथ ही संभव है। एक रैखिक सक्रियण फ़ंक्शन का परिणाम एक रेखीय आउटपुट में होता है, जो बहुत दिलचस्प नहीं है।


महान विवरण, आप इसके अलावा 6 बिंदु के बारे में अधिक विस्तार से बता सकता है आप अपने सुझाव उपलब्ध कराएं, तो इस बात के लिए , उसी तर्ज पर मैं पूरी तरह से आश्वस्त नहीं हूँ कि अवग्रह से अधिक Relu सक्रियण का उपयोग कर / tanh गायब हो जाने / विस्फोट ढाल समस्या के लिए एक समाधान है।
अनु

1
संवेदनशील वजन का प्रारंभिककरण भी महत्वपूर्ण है; लेकिन इतना सक्रियण समारोह का विकल्प है। एक तुच्छ उदाहरण के रूप में, यदि आपके सभी वजन शून्य पर डिफ़ॉल्ट हैं और आप RELU का उपयोग करते हैं, तो आपके न्यूरॉन्स से सभी आउटपुट शून्य रहेंगे और न ही ... न ही अकेले RELU और न ही प्रारंभिक तकनीकें पूरी तरह से लुप्त / विस्फोट प्रवणता को हल करती हैं, लेकिन वे दोनों मदद करते हैं। निश्चित नहीं है कि आप बिंदु 6 पर विस्तार से क्या मतलब है, स्पष्ट नहीं है?
टॉम वॉकर

1

आइए मुख्य पुनरावृत्ति संबंध पर विचार करें जो त्रुटि संकेत के पीछे प्रसार को परिभाषित करता है।

Wibiif

hii

si=Wi(hi1)+bi

hi=f(si)

δi

δi=Wi+1(δi+1f(si))

ff(si)=(1hi2)hi

f=Relu=max(0,x)ff=numpy.where(hi>0,1,0)

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

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