Connect with us

рдСрдЯреЛрдПрдирдХреЛрдбрд░ рдХреНрдпрд╛ рд╣реИ?

AI 101

рдСрдЯреЛрдПрдирдХреЛрдбрд░ рдХреНрдпрд╛ рд╣реИ?

mm

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

स्पार्स

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

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

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

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

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

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

डीनोइज़िंग

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

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

वेरिएशनल

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

 

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

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

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

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

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

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

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

рдмреНрд▓реЙрдЧрд░ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЬрд┐рдирдХреА рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдореИрд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдФрд░ рдбреАрдк рд▓рд░реНрдирд┐рдВрдЧ рд╡рд┐рд╖рдпреЛрдВ рдореЗрдВ рд╣реИред рдбреИрдирд┐рдпрд▓ рджреВрд╕рд░реЛрдВ рдХреЛ рд╕рд╛рдорд╛рдЬрд┐рдХ рдХрд▓реНрдпрд╛рдг рдХреЗ рд▓рд┐рдП рдПрдЖрдИ рдХреА рд╢рдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред