आउटपुट लेयर के लिए कौन सा सक्रियण कार्य करता है?


44

जबकि छिपी हुई परत के लिए सक्रियण कार्यों की पसंद काफी स्पष्ट है (ज्यादातर सिग्मॉइड या टैन), मुझे आश्चर्य है कि आउटपुट परत के लिए सक्रियण फ़ंक्शन पर कैसे निर्णय लिया जाए। सामान्य पसंद रैखिक कार्य, सिग्मोइड फ़ंक्शन और सॉफ्टमैक्स फ़ंक्शन हैं। हालांकि, मुझे किसका उपयोग कब करना चाहिए?


2
हाल ही में ReLU छिपी इकाइयों के लिए सक्रियण फ़ंक्शन के रूप में लोकप्रिय हो गया है।
१.४। बजे j जुनेजा '

जवाबों:


39
  • प्रतिगमन: रेखीय (क्योंकि मान अनबिके हैं)
  • वर्गीकरण: सॉफ्टमैक्स (साधारण सिग्मोइड काम भी करता है लेकिन सॉफ्टमैक्स बेहतर काम करता है)

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


2
सॉफ्टमैक्स भी महत्वपूर्ण है यदि आपके पास वर्गीकरण के लिए कई समूह हैं
cdeterman

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

1
मुझे नहीं लगता कि सॉफ्टमैक्स एक सक्रियता है। सामान्यतया, आपको इसे सामान्य करने से पहले इसे सक्रिय करना होगा (सॉफ्टमैक्स)।
हारून

23

मुझे पार्टी में आने में देर हो सकती है, लेकिन ऐसा लगता है कि कुछ चीजें हैं जिन्हें यहां साफ करने की जरूरत है।

सबसे पहले: आउटपुट लेयर पर एक्टिवेशन फंक्शन अक्सर आपके कॉस्ट फंक्शन पर निर्भर करता है । यह व्युत्पन्न बनाने के लिए किया जाता है लागत समारोह के आदानों के संबंध में गणना करने के लिए आसान आखिरी परत पर।जी(एक्स)सीसीzसीz

एक उदाहरण के रूप में , हम प्रतिगमन सेटिंग में माध्य चुकता त्रुटि हानि का उपयोग कर सकते हैं। (लीनियर एक्टीवेशन फंक्शन) सेट करके , हम व्युत्पन्न आप के लिए एक ही, आसान अभिव्यक्ति मिल अगर आप लॉजिस्टिक सिग्मॉइड या सॉफ्टमैक्स सक्रियण कार्यों के साथ क्रॉस-एन्ट्रापी लॉस को जोड़ते हैं।सी(y,जी(z))=12(y-जी(z))2जी(एक्स)=एक्स

सी(y,जी(z))z=सी(y,जी(z))जी(z)जी(z)z=जी(z)(12(y-जी(z))2)z(z)=-(y-जी(z))1=जी(z)-y
सीz

यही कारण है कि बाइनरी / मल्टी-क्लास वर्गीकरण के लिए रिग्रेशन और लॉजिस्टिक / सॉफ्टमैक्स एक्टीवेशन के लिए अक्सर रैखिक सक्रियण का उपयोग किया जाता है। हालांकि, कुछ भी आपको अलग-अलग संयोजनों की कोशिश करने से रोकता है। यद्यपि लिए अभिव्यक्ति संभवतः इतनी अच्छी नहीं होगी, लेकिन इसका मतलब यह नहीं है कि आपका सक्रियण फ़ंक्शन खराब प्रदर्शन करेगा।सीz

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

निष्कर्ष निकालने के लिए: जब सबसे अच्छा सक्रियण कार्यों की तलाश हो, तो बस रचनात्मक रहें। विभिन्न चीजों को आज़माएं और देखें कि क्या संयोजन सर्वश्रेष्ठ प्रदर्शन का नेतृत्व करते हैं।


परिशिष्ट: नुकसान कार्यों और सक्रियण के अधिक जोड़े के लिए, आप संभवतः (विहित) लिंक कार्यों की तलाश करना चाहते हैं


यह सबसे अच्छा जवाब क्यों नहीं है? बहुत साहसी सहज और पूरी तरह से वैज्ञानिक
विक्रम मूर्ति

13

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

यहाँ विस्तृत विवरण: http://cs231n.github.io/neural-networks-1/#actfun

छिपी हुई परतों के लिए सबसे अच्छा कार्य इस प्रकार है रेलु।


11
सवाल उत्पादन परत के लिए पूछ रहा है। -1
Euler_Salter

1
माना। प्रश्न की पहली पंक्ति के आधार पर उत्तर जोड़ा गया। शायद यह एक जवाब के बजाय एक टिप्पणी होनी चाहिए थी।
जतिन

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

5

2,3,4,5,

2,3,4,

पी(y=1)1-पी(y=1)=पी(y=0)

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

जब आउटपुट ऊपर या नीचे बँधा होता है तो ReLU इकाइयाँ या इसी तरह के वेरिएंट मददगार हो सकते हैं। यदि आउटपुट केवल गैर-नकारात्मक होने के लिए प्रतिबंधित है, तो यह आउटपुट फ़ंक्शन के रूप में एक ReLU सक्रियण का उपयोग करने के लिए समझ में आता है।

[-1,1]

तंत्रिका नेटवर्क के बारे में अच्छी बात यह है कि वे अविश्वसनीय रूप से लचीले उपकरण हैं।

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