ठूंठ ऑटोएनकोडर क्या है? - यूनाइट.एआई
हमसे जुडे
एआई मास्टरक्लास:

एआई 101

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

mm
Updated on

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

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

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

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

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

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

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

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

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

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

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

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

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

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

एक ऑटोएन्कोडर के गुण

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

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

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

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

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

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

जैसा कि ऊपर बताया गया है, क्लासिक ऑटोएनकोडर आर्किटेक्चर पर विविधताएं मौजूद हैं। आइए विभिन्न ऑटोएनकोडर आर्किटेक्चर की जांच करें।

विरल

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

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

संकोची

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

Convolutional

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

डीनोइज़िंग

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

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

परिवर्तन संबंधी

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

 

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

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

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

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

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

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

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

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