एआई की मूल बातें

ऑटोएनकोडर क्या है?

mm
Unite.AI को Google पर अपने पसंदीदा स्रोतों में जोड़ें

यदि आप पहले अनुपरीक्षित लर्निंग तकनीकों के बारे में पढ़ चुके हैं, तो आपको “ऑटोएनकोडर” शब्द का उल्लेख मिला होगा। ऑटोएनकोडर अनुपरीक्षित लर्निंग मॉडल विकसित करने के प्राथमिक तरीकों में से एक हैं। लेकिन ऑटोएनकोडर वास्तव में क्या है?

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

ऑटोएनकोडर क्या है?

ऑटोएनकोडर न्यूरल नेटवर्क हैं। न्यूरल नेटवर्क कई परतों से बने होते हैं, और ऑटोएनकोडर की परिभाषित विशेषता यह है कि इनपुट परतें आउटपुट परत के समान जानकारी रखती हैं। इनपुट परत और आउटपुट परत में एक ही संख्या में इकाइयाँ होने का कारण यह है कि ऑटोएनकोडर इनपुट डेटा की प्रतिलिपि बनाने का प्रयास करता है। यह डेटा का विश्लेषण करने और इसे अनुपरीक्षित तरीके से पुनर्निर्माण करने के बाद डेटा की प्रतिलिपि बनाता है।

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

ऑटोएनकोडर को डेटा को पुनर्निर्माण करने के लिए प्रशिक्षित करने का कारण यह है कि नेटवर्क इनपुट डेटा का “सार” या सबसे महत्वपूर्ण विशेषताएं सीखता है। एक बार जब आप नेटवर्क को प्रशिक्षित कर लेते हैं, तो एक मॉडल बनाया जा सकता है जो समान डेटा को संश्लेषित कर सकता है, जिसमें कुछ लक्ष्य विशेषताओं को जोड़ा या घटाया जा सकता है। उदाहरण के लिए, आप ऑटोएनकोडर को धुंधली छवियों पर प्रशिक्षित कर सकते हैं और फिर प्रशिक्षित मॉडल का उपयोग छवि से धुंधलापन/शोर हटाने के लिए कर सकते हैं।

ऑटोएनकोडर आर्किटेक्चर

आइए ऑटोएनकोडर की वास्तुकला पर एक नज़र डालें। हम यहां ऑटोएनकोडर की मुख्य वास्तुकला पर चर्चा करेंगे। इस सामान्य वास्तुकला पर कुछ बदलाव हैं जिन पर हम नीचे चर्चा करेंगे।

फोटो: माइकेला मासी विकिमीडिया कॉमन्स के माध्यम से,(https://commons.wikimedia.org/wiki/File:Autoencoder_schema.png)

जैसा कि पहले उल्लेख किया गया है, एक ऑटोएनकोडर मूल रूप से तीन अलग-अलग घटकों में विभाजित किया जा सकता है: एन्कोडर, बोतलनेक, और डीकोडर。

ऑटोएनकोडर का एन्कोडर भाग आमतौर पर एक फीडफॉरवर्ड, घने से जुड़ा नेटवर्क होता है। एन्कोडिंग परतों का उद्देश्य इनपुट डेटा लेना और इसे एक लेटेंट स्पेस प्रतिनिधित्व में संपीड़ित करना है, जो डेटा का एक नया प्रतिनिधित्व बनाता है जिसमें कम आयाम होता है।

कोड परतें, या बोतलनेक, संपीड़ित डेटा प्रतिनिधित्व को संभालती हैं। बोतलनेक कोड को सावधानी से डिज़ाइन किया जाता है ताकि यह देखा जा सके कि देखे गए डेटा के सबसे प्रासंगिक हिस्से क्या हैं, या दूसरे शब्दों में, डेटा की विशेषताएं जो डेटा पुनर्निर्माण के लिए सबसे महत्वपूर्ण हैं। यहाँ लक्ष्य यह निर्धारित करना है कि किन पहलुओं को संरक्षित किया जाना चाहिए और किन्हें त्याग दिया जाना चाहिए। बोतलनेक कोड को प्रतिनिधित्व आकार (प्रतिनिधित्व कितना कॉम्पैक्ट है) और परिवर्तनीय/विशेषता प्रासंगिकता दोनों पर विचार करने की आवश्यकता है। बोतलनेक नेटवर्क के वजन और पूर्वाग्रह पर तत्व-वार सक्रियण करता है। बोतलनेक परत को कभी-कभी लेटेंट प्रतिनिधित्व या लेटेंट परिवर्तनीय भी कहा जाता है।

डीकोडर परत वह है जो संपीड़ित डेटा लेती है और इसे मूल, अप्रभावित डेटा के समान आयामों वाले प्रतिनिधित्व में परिवर्तित करती है। रूपांतरण एन्कोडर द्वारा बनाए गए लेटेंट स्पेस प्रतिनिधित्व के साथ किया जाता है।

ऑटोएनकोडर की सबसे बुनियादी वास्तुकला एक फीड-फॉरवर्ड वास्तुकला है, जिसमें एक ही परत वाले पेरसेप्ट्रॉन की संरचना होती है जैसा कि मल्टीलेयर पेरसेप्ट्रॉन में उपयोग किया जाता है। नियमित फीड-फॉरवर्ड न्यूरल नेटवर्क की तरह, ऑटो-एनकोडर को बैकप्रोपेगेशन के माध्यम से प्रशिक्षित किया जाता है।

ऑटोएनकोडर की विशेषताएं

ऑटोएनकोडर के विभिन्न प्रकार हैं, लेकिन उन सभी में कुछ गुण होते हैं जो उन्हें एकजुट करते हैं।

ऑटोएनकोडर स्वचालित रूप से सीखते हैं। उन्हें लेबल की आवश्यकता नहीं होती है, और यदि उन्हें पर्याप्त डेटा दिया जाए तो उन्हें एक विशिष्ट प्रकार के इनपुट डेटा पर उच्च प्रदर्शन तक पहुंचना आसान है।

ऑटोएनकोडर डेटा-विशिष्ट होते हैं। इसका अर्थ है कि वे केवल उस डेटा को संपीड़ित कर सकते हैं जो पहले से ही ऑटोएनकोडर पर प्रशिक्षित किया गया है। ऑटोएनकोडर भी हानिपूर्ण होते हैं, जिसका अर्थ है कि मॉडल के आउटपुट इनपुट डेटा की तुलना में खराब होंगे।

जब एक ऑटोएनकोडर को डिज़ाइन किया जाता है, तो मशीन लर्निंग इंजीनियरों को चार अलग-अलग मॉडल हाइपरपैरामीटर पर ध्यान देने की आवश्यकता होती है: कोड आकार, परत संख्या, प्रति परत नोड, और हानि फंक्शन।

कोड आकार यह तय करता है कि नेटवर्क के मध्य भाग में कितने नोड शुरू होते हैं, और कम नोड डेटा को अधिक संपीड़ित करते हैं। एक गहरे ऑटोएनकोडर में, जबकि परतों की संख्या कोई भी हो सकती है जिसे इंजीनियर उपयुक्त मानता है, प्रति परत नोडों की संख्या एन्कोडर के रूप में कम होनी चाहिए। इसके विपरीत, डीकोडर में, प्रति परत नोडों की संख्या बढ़नी चाहिए क्योंकि डीकोडर परतें अंतिम परत की ओर बढ़ती हैं। अंत में, ऑटोएनकोडर का हानि फंक्शन आमतौर पर द्विआधारी क्रॉस-एंट्रोपी या माध्य वर्ग त्रुटि होता है। द्विआधारी क्रॉस-एंट्रोपी तब उपयुक्त होती है जब डेटा के इनपुट मान 0 – 1 श्रेणी में होते हैं।

ऑटोएनकोडर प्रकार

जैसा कि ऊपर उल्लेख किया गया है, क्लासिक ऑटोएनकोडर आर्किटेक्चर पर कुछ बदलाव हैं। आइए विभिन्न ऑटोएनकोडर आर्किटेक्चर पर एक नज़र डालें।

स्पार्स

फोटो: माइकेला मासी विकिमीडिया कॉमन्स, सीसी बाय एसए 4.0 (https://commons.wikimedia.org/wiki/File:Autoencoder_sparso.png)

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

कॉन्ट्रैक्टिव

कॉन्ट्रैक्टिव ऑटोएनकोडर को डेटा में छोटे परिवर्तनों के प्रति प्रतिरोधी बनाने के लिए डिज़ाइन किया गया है, जो डेटा का एक सुसंगत प्रतिनिधित्व बनाए रखता है। यह इनपुट एन्कोडर सक्रियण के जैकोबियन मैट्रिक्स के फ्रोबेनियस नॉर्म पर आधारित एक दंड को हानि फंक्शन में लागू करके प्राप्त किया जाता है। इस नियमितीकरण तकनीक का प्रभाव यह है कि मॉडल को एक ऐसा एन्कोडिंग बनाने के लिए मजबूर किया जाता है जहां समान इनपुट समान एन्कोडिंग होंगे।

कॉन्वोल्यूशनल

कॉन्वोल्यूशनल ऑटोएनकोडर इनपुट डेटा को एन्कोड करते हैं bằng यह डेटा को उपखंडों में विभाजित करना और फिर इन उपखंडों को सरल संकेतों में परिवर्तित करना जो एक नए प्रतिनिधित्व को बनाने के लिए जोड़े जाते हैं। कॉन्वोल्यूशनल न्यूरल नेटवर्क की तरह, एक कॉन्वोल्यूशनल ऑटोएनकोडर छवि डेटा सीखने में माहिर होता है और यह एक फिल्टर का उपयोग करता है जो पूरी छवि पर खंड दर खंड चलता है। एन्कोडिंग परत द्वारा उत्पन्न एन्कोडिंग का उपयोग छवि को पुनर्निर्माण करने, छवि को प्रतिबिंबित करने या छवि की ज्यामिति को संशोधित करने के लिए किया जा सकता है। एक बार जब नेटवर्क ने फिल्टर सीख लिए हैं, तो उन्हें किसी भी पर्याप्त रूप से समान इनपुट पर विशेषताओं को निकालने के लिए उपयोग किया जा सकता है।

डीनोइज़िंग

फोटो: माल विकिमीडिया कॉमन्स के माध्यम से,(https://en.wikipedia.org/wiki/File:ROF_Denoising_Example.png)

डीनोइज़िंग ऑटोएनकोडर एन्कोडिंग में शोर पेश करते हैं, जिसके परिणामस्वरूप एक भ्रष्ट डेटा का एक एन्कोडिंग होता है जो मूल इनपुट डेटा का एक भ्रष्ट संस्करण है। इस भ्रष्ट डेटा का उपयोग मॉडल को प्रशिक्षित करने के लिए किया जाता है, लेकिन हानि फंक्शन आउटपुट मानों की तुलना मूल इनपुट के साथ करता है, न कि भ्रष्ट इनपुट के साथ। लक्ष्य यह है कि नेटवर्क मूल, गैर-भ्रष्ट संस्करण को पुनरुत्पादित करने में सक्षम होगा। भ्रष्ट डेटा की तुलना मूल डेटा से, नेटवर्क सीखता है कि डेटा की कौन सी विशेषताएं सबसे महत्वपूर्ण हैं और कौन सी विशेषताएं गैर-महत्वपूर्ण/भ्रष्ट हैं। दूसरे शब्दों में, भ्रष्ट छवियों को शोर मुक्त करने के लिए, मॉडल को छवि डेटा की महत्वपूर्ण विशेषताओं को निकालना होगा।

वेरिएशनल

वेरिएशनल ऑटोएनकोडर डेटा के लेटेंट वेरिएबल के वितरण के बारे में धारणाएं बनाते हैं। एक वेरिएशनल ऑटोएनकोडर प्रशिक्षण छवियों/लेटेंट विशेषताओं के लिए एक संभाव्यता वितरण का उत्पादन करता है। जब प्रशिक्षित किया जाता है, तो एन्कोडर इनपुट छवियों के विभिन्न विशेषताओं के लिए लेटेंट वितरण बनाता है।

 

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

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

ऑटोएनकोडर अनुप्रयोग

ऑटोएनकोडर का उपयोग विभिन्न अनुप्रयोगों के लिए किया जा सकता है, लेकिन वे आमतौर पर आयामों को कम करने, डेटा शोर को हटाने, विशेषता निकालने, छवि उत्पादन, क्रम से क्रम पूर्वानुमान, और सिफारिश प्रणालियों जैसे कार्यों के लिए उपयोग किए जाते हैं।

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

छवि उत्पादन के संदर्भ में, ऑटोएनकोडर का उपयोग नकली मानव छवियों या एनिमेटेड पात्रों को उत्पन्न करने के लिए किया जा सकता है, जिसका उपयोग चेहरे की पहचान प्रणालियों को डिज़ाइन करने या एनिमेशन के कुछ पहलुओं को स्वचालित करने में किया जा सकता है।

क्रम से क्रम पूर्वानुमान मॉडल डेटा की समय संरचना का पता लगाने के लिए उपयोग किए जा सकते हैं, जिसका अर्थ है कि एक ऑटोएनकोडर का उपयोग वीडियो उत्पन्न करने के लिए किया जा सकता है। अंत में, गहरे ऑटोएनकोडर का उपयोग सिफारिश प्रणालियों को बनाने के लिए किया जा सकता है जो उपयोगकर्ता हित से संबंधित पैटर्न को उठाते हैं, एन्कोडर उपयोगकर्ता जुड़ाव डेटा का विश्लेषण करता है और डीकोडर स्थापित पैटर्न के अनुसार सिफारिशें बनाता है।

ब्लॉगर और प्रोग्रामर जिनकी विशेषज्ञता मैशीन लर्निंग और डीप लर्निंग विषयों में है। डैनियल दूसरों को सामाजिक कल्याण के लिए एआई की शक्ति का उपयोग करने में मदद करना चाहता है।