क्या गहन शिक्षण में ऑटोएन्कोडर्स और एनकोडर-डिकोडर के बीच अंतर है?


जवाब 1:

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

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

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

लेकिन लघुकथा सरल है: एक ऑटोकोडर वास्तव में एक एनकोडर-डिकोडर का एक विशेष उदाहरण है। यह विशेष रूप से तब उपयोगी होता है जब हम एनकोडर और डिकोडर को अलग-अलग बनाना चाहते हैं, जैसे कि वैरिएबल ऑटोकेनोडर, जो हमें एनकोडर को डिजाइन में डिकोडर सममित बनाने के लिए मुक्त करता है (यानी, एनकोडर एक 2-लेयर कॉन्फ्लॉन्शनल नेटवर्क हो सकता है) जबकि डिकोडर एक 3-परत deconvolutional नेटवर्क हो सकता है)। एक परिवर्तनशील ऑटोकेनोडर में, अव्यक्त स्थान का विचार अधिक स्पष्ट हो जाता है, क्योंकि अब हम वास्तव में एक अव्यक्त चर के लिए इनपुट (जैसे कि छवि या दस्तावेज़ वेक्टर) का नक्शा बनाते हैं, जिससे हम मूल / उसी इनपुट (जैसे छवि) का पुनर्निर्माण करेंगे या दस्तावेज़ वेक्टर)।

मुझे भी लगता है कि शब्दावली के दुरुपयोग से बहुत भ्रम पैदा होता है। आजकल, एमएल लोक विशेष रूप से शब्दों को मिलाते हैं और मेल खाते हैं (कुछ ऐसा करते हैं जो चीजों को ध्वनि कूलर बनाने के लिए या buzzwords ढूंढते हैं जो पाठकों / funders / प्रसिद्धि / महिमा / आदि को आकर्षित करेंगे), लेकिन यह आंशिक रूप से फिर से ब्रांडिंग के कारण हो सकता है। कृत्रिम तंत्रिका नेटवर्क "डीप लर्निंग" ;-) [के बाद से, अंत में, हर कोई चाहता है कि पैसा काम करता रहे]


जवाब 2:

वास्तव में।

एनकोडर-डिकोडर आर्किटेक्चर में एक एनकोडर अनुभाग होता है जो एक इनपुट लेता है और इसे एक अव्यक्त स्थान पर मैप करता है। डिकोडर अनुभाग उस अव्यक्त स्थान को लेता है और इसे आउटपुट में मैप करता है। आमतौर पर इसका परिणाम बेहतर होता है। एक Autoencoder बस एक इनपुट के रूप में x लेता है और एक आउटपुट के रूप में x (अब x_hat) को फिर से संगठित करने का प्रयास करता है।

आमतौर पर उपयोग के मामले अलग होते हैं। Autoencoders का उपयोग आम तौर पर अनिश्चित सीखने की स्थितियों में किया जाएगा, क्योंकि हम देख सकते हैं, किसी भी लेबल की आवश्यकता नहीं है, केवल डेटा। एनकोडर-डिकोडर आर्किटेक्चर अक्सर एक अधिक सामान्य तरीके से उपयोग किए जाते हैं, जैसा कि आपने सेगनेट पेपर और अधिक सामान्यतः एनएमटी के साथ संदर्भित किया है।