2012-03-20 15 views
74

मैं तंत्रिका नेटवर्क पर कुछ चीजें पढ़ रहा हूं और मैं एक परत परत तंत्रिका नेटवर्क के सामान्य सिद्धांत को समझता हूं। मैं अतिरिक्त परतों की आवश्यकता को समझता हूं, लेकिन nonlinear सक्रियण कार्यों का उपयोग क्यों किया जाता है?बैकप्रोपैगेशन तंत्रिका नेटवर्क में एक nonlinear सक्रियण फ़ंक्शन का उपयोग क्यों किया जाना चाहिए?

इस सवाल के बाद आता है यह एक: What is a derivative of the activation function used for in backpropagation?

उत्तर

102

सक्रियण समारोह के प्रयोजन (उर्फ चर, कक्षा लेबल, या स्कोर को लक्षित) नेटवर्क

बारी में, यह आप एक प्रतिक्रिया चर मॉडल करने के लिए अनुमति देता है में गैर linearity से परिचित कराना है कि भिन्न होता है गैर रैखिक अपनी व्याख्यात्मक चर के साथ

गैर रेखीय मतलब यह है कि उत्पादन आदानों की एक रैखिक संयोजन (जो कि एक सीधी रेखा को renders उत्पादन के समान नहीं है से reproduced नहीं किया जा सकता - के लिए शब्द यह affine है)।

एक और तरीका है इसके बारे में सोचने के लिए: कोई फर्क नहीं पड़ता कि यह कैसे कई परतों था नेटवर्क, एक एनएन, में एक गैर रेखीय सक्रियण समारोह के बिना, बस एक एकल परत perceptron की तरह व्यवहार करते हैं होता है, क्योंकि इन परतों संक्षेप आपको बस एक और रैखिक कार्य दें (ऊपर परिभाषा देखें)।

>>> in_vec = NP.random.rand(10) 
>>> in_vec 
    array([ 0.94, 0.61, 0.65, 0. , 0.77, 0.99, 0.35, 0.81, 0.46, 0.59]) 

>>> # common activation function, hyperbolic tangent 
>>> out_vec = NP.tanh(in_vec) 
>>> out_vec 
array([ 0.74, 0.54, 0.57, 0. , 0.65, 0.76, 0.34, 0.67, 0.43, 0.53]) 

एक आम सक्रियण समारोह backprop में इस्तेमाल किया (अतिपरवलयिक स्पर्शज्या) से -2 2 के लिए मूल्यांकन:

enter image description here

+8

याद नहीं किया गया हम रैखिकता को खत्म क्यों करना चाहते हैं? – corazza

+12

यदि हम जिस मॉडल को मॉडल करना चाहते हैं वह गैर-रैखिक है तो हमें इसके मॉडल में इसके लिए खाते की आवश्यकता है। – doug

+0

ठीक है, अब मैं इसे समझता हूं, धन्यवाद! – corazza

1

मुझे याद है के रूप में - अवग्रह काम करता है, उपयोग किया जाता है कुछ f (x) (1-च (जैसे सरल है क्योंकि उनके व्युत्पन्न कि बीपी एल्गोरिथ्म में फिट बैठता है की गणना करने के लिए आसान है एक्स))। मुझे बिल्कुल गणित याद नहीं है। वास्तव में डेरिवेटिव के साथ किसी भी समारोह का उपयोग किया जा सकता है।

+4

फ़ंक्शन अभी भी एकान्त रूप से बढ़ना चाहता है, जैसा कि मुझे याद है। तो, नहीं * कोई * समारोह। – Novak

+1

हाँ, आप सही हैं; बिल्कुल – Anton

2

"वर्तमान कागज स्टोन-विअरस्ट्रास प्रमेय का उपयोग करता है और गैलेंट और व्हाइट के कोसाइन स्क्वायर को यह निर्धारित करने के लिए कि मानक मल्टीलायर फीडफोर्ड नेटवर्क आर्किटेक्चर, अनुचित स्क्वैशिंग फ़ंक्शंस का उपयोग करके सटीकता की वांछित डिग्री के लिए ब्याज के लगभग किसी भी कार्य का अनुमान लगा सकते हैं , बशर्ते पर्याप्त रूप से कई छिपी इकाइयां उपलब्ध हों। " (हॉर्निक एट अल।, 1 9 8 9, http://weber.ucsd.edu/~hwhite/pub_files/hwcv-028.pdf)

एक स्क्वैशिंग फ़ंक्शन उदाहरण के लिए एक nonlinear सक्रियण फ़ंक्शन है जो सिग्मोइड सक्रियण फ़ंक्शन की तरह [0,1] पर नक्शा करता है।

-3

यह बिल्कुल आवश्यकता नहीं है। वास्तव में, rectified linear activation function बड़े तंत्रिका नेटवर्क में बहुत उपयोगी है। ढाल कम्प्यूटिंग बहुत तेजी से है, और यह कम से कम 0.

पर बाध्य स्थापना करके विरलता को प्रेरित करता है अधिक जानकारी के लिए निम्न देखें: https://www.academia.edu/7826776/Mathematical_Intuition_for_Performance_of_Rectified_Linear_Unit_in_Deep_Neural_Networks


संपादित करें: कुछ

हुई है इस पर चर्चा कि संशोधित रैखिक सक्रियण समारोह को रैखिक कार्य कहा जा सकता है या नहीं।

हां, यह तकनीकी रूप से एक nonlinear फ़ंक्शन है क्योंकि यह बिंदु x = 0 पर रैखिक नहीं है, हालांकि, यह कहना अभी भी सही है कि यह अन्य सभी बिंदुओं पर रैखिक है, इसलिए मुझे नहीं लगता कि यह उपयोगी है यहां nitpick करने के लिए,

मैं पहचान समारोह चुन सकता था और यह अभी भी सच होगा, लेकिन मैंने अपनी हाल की लोकप्रियता के कारण रेएलयू को एक उदाहरण के रूप में चुना है।

+6

संशोधित रैखिक सक्रियण समारोह भी गैर-रैखिक है (इसके नाम के बावजूद)। यह सकारात्मक मानों के लिए केवल रैखिक है –

+3

आप तकनीकी रूप से सही हैं, यह पूरे डोमेन में रैखिक नहीं है, विशेष रूप से x = 0 पर (यह वास्तव में x <0 के लिए रैखिक है, क्योंकि f (x) = 0 एक रैखिक कार्य है)। यह भी अलग-अलग नहीं है इसलिए ढाल कार्य पूरी तरह से गणना योग्य नहीं है, लेकिन व्यवहार में इन तकनीकीताओं को दूर करना आसान है। – eski

+4

वह न केवल तकनीकी रूप से सही है, वह अभ्यास में भी सही है (या ऐसा कुछ)। यह रेएलयू की गैर-रैखिकता है जो उन्हें उपयोगी बनाती है। यदि वे रैखिक होते, तो वे 'f (x) = a * x' (जैसे कि रैखिक सक्रियण फ़ंक्शन का एकमात्र प्रकार है) पर एक सक्रियण फ़ंक्शन होता, जो एक सक्रियण फ़ंक्शन के रूप में _useless_ है (जब तक आप इसे गैर-रैखिक सक्रियण कार्यों के साथ संयोजित न करें)। – HelloGoodbye

0

रैखिक रूप से अविभाज्य समस्याओं को जानने के लिए कई न्यूरॉन्स के एक स्तरित एनएन का उपयोग किया जा सकता है। उदाहरण के लिए चरण सक्रियण समारोह के साथ दो परतों के साथ एक्सओआर फ़ंक्शन प्राप्त किया जा सकता है।

10

यदि हम केवल तंत्रिका नेटवर्क में रैखिक सक्रियण कार्यों की अनुमति देते हैं, तो आउटपुट इनपुट के linear transformation होगा, जो universal function approximator बनाने के लिए पर्याप्त नहीं है। इस तरह के नेटवर्क को सिर्फ मैट्रिक्स गुणा के रूप में दर्शाया जा सकता है, और आप ऐसे नेटवर्क से बहुत ही रोचक व्यवहार प्राप्त नहीं कर पाएंगे।

एक ही बात इस मामले में जहां सभी न्यूरॉन्स affine सक्रियण कार्य के लिए चला जाता है (यानी प्रपत्र f(x) = a*x + c, जहां a और c स्थिरांक हैं, जो रेखीय सक्रियण कार्यों का सामान्यीकरण है पर एक सक्रियण समारोह), जो सिर्फ में परिणाम होगा इनपुट से आउटपुट तक affine transformation, जो कि बहुत रोमांचक नहीं है।

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

+1

उच्च आदेश कार्यों को कई छिपी परतों का उपयोग करके रैखिक सक्रियण कार्यों के साथ अनुमानित किया जा सकता है। सार्वभौमिक अनुमान प्रमेय केवल एमएलपी के लिए विशिष्ट है जिसमें केवल एक छिपी हुई परत है। – eski

+0

असल में, मेरा मानना ​​है कि आप एफ़िन सक्रियण कार्यों के बारे में अपने बयान में सही हैं जिसके परिणामस्वरूप एक एफ़िन रूपांतरण होता है, लेकिन तथ्य यह है कि रूपांतरण बैकप्रोपैगेशन (या किसी अन्य माध्यम) के माध्यम से सीखा जाता है, जहां तक ​​मूल प्रश्न संबंधित है । – eski

+3

@eski नहीं, आप केवल रैखिक सक्रियण कार्यों के साथ उच्च ऑर्डर फ़ंक्शंस अनुमानित नहीं कर सकते हैं, आप केवल रैखिक मॉडल (या एफ़िन, यदि आपके पास प्रत्येक में अंतिम स्थिर नोड है लेकिन आखिरी परत) फ़ंक्शन और ट्रांसफॉर्मेशन हो, चाहे कितनी परतें हों आपके पास। – HelloGoodbye

25

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

सक्रियण कार्यों रैखिक नहीं हो सकता है क्योंकि एक रेखीय सक्रियण समारोह के साथ तंत्रिका नेटवर्क, केवल एक परत गहरी प्रभावी रहे हैं कि कैसे जटिल उनकी वास्तुकला की परवाह किए बिना कर रहे हैं। नेटवर्क में इनपुट आमतौर पर रैखिक परिवर्तन (इनपुट * वजन) होते हैं, लेकिन वास्तविक दुनिया और समस्याएं गैर-रैखिक होती हैं। आने वाले डेटा को nonlinear बनाने के लिए, हम सक्रियण फ़ंक्शन नामक nonlinear मैपिंग का उपयोग करते हैं। एक सक्रियण समारोह एक निर्णय लेने का कार्य है जो विशेष तंत्रिका सुविधा की उपस्थिति को निर्धारित करता है। यह 0 और 1 के बीच मैप किया गया है, जहां शून्य का मतलब यह नहीं है कि सुविधा नहीं है, जबकि एक का मतलब यह है कि सुविधा मौजूद है। दुर्भाग्यवश, वजन में होने वाले छोटे बदलाव सक्रियण मान में प्रतिबिंबित नहीं हो सकते हैं क्योंकि यह केवल 0 या 1 ले सकता है। इसलिए, इस सीमा के बीच nonlinear फ़ंक्शंस निरंतर और अलग-अलग होना चाहिए। एक तंत्रिका नेटवर्क -फिनिटी से + अनंत तक किसी भी इनपुट को लेने में सक्षम होना चाहिए, लेकिन यह किसी ऐसे आउटपुट में मैप करने में सक्षम होना चाहिए जो कुछ मामलों में {0,1} या {-1,1} के बीच है - इस प्रकार सक्रियण समारोह की आवश्यकता है। सक्रियण कार्यों में गैर-रैखिकता की आवश्यकता होती है क्योंकि एक तंत्रिका नेटवर्क में इसका उद्देश्य वजन और इनपुट के गैर-रैखिक संयोजनों के माध्यम से एक गैर-लाइनर निर्णय सीमा का उत्पादन करना है।

+0

+ एक, फिर यह अनुमान लगाया जा सकता है कि एक पूर्ण सीमा स्थापित करने के लिए nonlinear फ़ंक्शन का उपयोग किया जाता है? – SIslam

+0

हां, बिल्कुल। केवल 0 या 1 के उत्पादन में स्थिरता यह 0.4 या 0.78 उत्पन्न कर सकती है, जो इसे सीमा की सीमा से लगातार बना देती है। – user7479

+0

एक तंत्रिका नेटवर्क से अनंत तक + अनंत तक कोई इनपुट लेने में सक्षम होना चाहिए, लेकिन यह इसे किसी आउटपुट में मैप करने में सक्षम होना चाहिए जो {0,1} या {-1,1} के बीच है ... यह याद दिलाता है मुझे लगता है कि आरएलयू सीमा यह है कि इसे केवल तंत्रिका नेटवर्क मॉडल की छिपी परतों के भीतर उपयोग किया जाना चाहिए। –

संबंधित मुद्दे