क्या मैं एक्टिवेशन फंक्शन के रूप में ऑटोएनकोडर में ReLU का उपयोग कर सकता हूं?


11

तंत्रिका नेटवर्क के साथ एक ऑटोएन्कोडर को लागू करते समय, अधिकांश लोग सिग्माइड को सक्रियण फ़ंक्शन के रूप में उपयोग करेंगे।

क्या हम इसके बजाय ReLU का उपयोग कर सकते हैं? (चूँकि ReLU की ऊपरी सीमा की कोई सीमा नहीं है, मूल रूप से इसका मतलब है कि इनपुट छवि 1 से अधिक बड़ी पिक्सेल हो सकती है, जब सिग्मॉइड का उपयोग किया जाता है, तो Autoencoder के लिए प्रतिबंधित मानदंड के विपरीत)।

जवाबों:


5

यहां एक चर्चा धागा (जुलाई 2013 से) यह दर्शाता है कि इसके साथ कुछ मुद्दे हो सकते हैं, लेकिन यह किया जा सकता है।

(Ağlar Gülçehre (Yoshua Bengio की लैब से) ने कहा कि उन्होंने नॉलेज मैटर्स में निम्नलिखित तकनीक का सफलतापूर्वक उपयोग किया है : अनुकूलन के लिए पूर्व सूचना का महत्व :

हमेशा की तरह पहले DAE को प्रशिक्षित करें, लेकिन छिपी हुई परत में रेक्टिफायर्स के साथ: a1(x) = W1 x + b1 h1 = f1(x) = rectifier(a1(x)) g1(h1) = {sigmoid}(V1 h1 + c1) क्रॉस-एन्ट्रापी या MSE हानि को कम करें, g1 (f1 (भ्रष्ट (x))) और x की तुलना करें। डेटा के आधार पर सिग्मॉइड वैकल्पिक है।

2 डीएई ट्रेन के साथ शोर से पहले एमएसई हानि के साथ f1 संशोधक और उपयोग softplus पुनर्निर्माण इकाइयों कहा: h2 = f2(h1) = rectifier(W2 h1 + b2) g2(h2) = softplus(V2 h2 + c2) कम से कमf1(x)g2(f2(rectifier(corrupt(a1(x)))))2+λ1W1+λ2W2

बेंवरियो लैब से ज़ेवियर ग्लोरोट ने भी कहा कि उन्होंने एक ही काम किया, केवल सक्रियण मूल्यों पर " दंड" के साथ को डोमेन लिए दोनों डोमेन अनुकूलन में संभवतः " ?)" लार्ज-स्केल सेंटीमेंट क्लासिफिकेशन: ए डीप लर्निंग एप्रोच (ICML 2011) और डीप स्पार्स रेक्टिफायर न्यूरल नेटवर्क (AISTATS 2011) में।W1L1g2()1


तुरंत जवाब के लिए धन्यवाद! इसलिए आप कह रहे हैं कि ऑटेकेनोडर को अनुकूलित करने में कुछ समस्या है जब सिग्मॉइड के बजाय ReLU का उपयोग किया जाता है?
RockTheStar

ऐसा लगता है कि यह मुद्दों का कारण बन सकता है, हाँ, लेकिन यह निश्चित रूप से किया जा सकता है यदि आप सीखने की प्रक्रिया को सही ढंग से सेट करते हैं। यह लिंक किए गए कागजात को पढ़ने में मदद कर सकता है।
डगल

मैं एमएनआईएसटी डेटासेट पर एक साधारण ऑटोएन्कोडर के साथ प्रयोग कर रहा हूं। मैं 784-128-64-2-64-128-784 आर्किटेक्चर के साथ पूरी तरह से जुड़े नेटवर्क का उपयोग करता हूं। मैं हर जगह relus का उपयोग करता हूं, लेकिन टोंटी परत (relu या रैखिक) और आउटपुट लेयर (relu या sigmoid) के साथ प्रयोग कर रहा हूं। आउटपुट में रेक्टिफायर का उपयोग करने से खराब प्रदर्शन होता है; सिग्मॉइड बेहतर करता है। सिग्मोइड आउटपुट के लिए, रैखिक अड़चन थोड़ा बेहतर कर रही है। तो इन दो परतों के लिए मेरा पसंदीदा संयोजन रैखिक / सिग्मॉइड है। (वैसे, सभी परतों पर सिग्मोइड का उपयोग करने से यह स्पष्ट रूप से बदतर हो जाता है।)
अमीबा

@ameoba यह मेरे लिए आश्चर्य की बात नहीं है कि रिले आउटपुट खराब हैं: यदि आप जानते हैं कि आउटपुट में कुछ सीमाएं हैं, तो यह एक सक्रियण फ़ंक्शन का उपयोग करने के लिए समझ में आता है जो आपको उन सीमाओं तक सीमित करता है। मैं इस क्षेत्र में सुपर अनुभवी नहीं हूं, लेकिन मैं शायद छिपी परतों के लिए एक ELU या टपका हुआ ReLU ट्राई करूंगा।
डगल

2
ओह, वाह, मैं ELUs के बारे में पता नहीं था! टिप के लिए बहुत बहुत धन्यवाद, डगल। मैंने उन्हें कोशिश की, और वे बेहतर काम करते हैं। दीप सीखना अद्भुत है: हर साल नई चालें दिखाई देती हैं और किसी को भी पता नहीं है कि कुछ दूसरों की तुलना में बेहतर क्यों हैं। (CC to @RockTheStar)। वैसे, मुझे यह भी पता चलता है कि एडम ऑप्टिमाइज़र बहुत बढ़िया प्रदर्शन करता है।
अमीबा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.