हाल ही में मैं गहरी शिक्षा के बारे में पढ़ रहा हूं और मैं शर्तों (या कहूँ प्रौद्योगिकियों) के बारे में उलझन में हूं। दोनों के बीच क्या अंतर है
- संवेदी तंत्रिका नेटवर्क (CNN),
- प्रतिबंधित बोल्ट्ज़मन मशीनें (आरबीएम) और
- ऑटो एनकोडर?
हाल ही में मैं गहरी शिक्षा के बारे में पढ़ रहा हूं और मैं शर्तों (या कहूँ प्रौद्योगिकियों) के बारे में उलझन में हूं। दोनों के बीच क्या अंतर है
जवाबों:
Autoencoder एक साधारण 3-लेयर न्यूरल नेटवर्क है जहाँ आउटपुट इकाइयाँ सीधे इनपुट इकाइयों से जुड़ी होती हैं । जैसे एक नेटवर्क में:
output[i]
input[i]
हर के लिए वापस किनारे है i
। आमतौर पर, छिपी हुई इकाइयों की संख्या बहुत कम दिखाई देती है (दृश्य / इनपुट)। परिणामस्वरूप, जब आप ऐसे नेटवर्क के माध्यम से डेटा पास करते हैं, तो यह पहले एक छोटे से प्रतिनिधित्व में "सदिश" करने के लिए इनपुट वेक्टर को संपीड़ित (एन्कोड करता है) करता है, और फिर इसे फिर से बनाने (डिकोड) करने की कोशिश करता है। प्रशिक्षण का कार्य एक त्रुटि या पुनर्निर्माण को कम करना है, अर्थात इनपुट डेटा के लिए सबसे कुशल कॉम्पैक्ट प्रतिनिधित्व (एन्कोडिंग) ढूंढें।
आरबीएम समान विचार साझा करता है, लेकिन स्टोचस्टिक दृष्टिकोण का उपयोग करता है। नियतात्मक (उदाहरण के लिए रसद या ReLU) के बजाय यह विशेष रूप से (आमतौर पर गौसियन के बाइनरी) वितरण के साथ स्टोचस्टिक इकाइयों का उपयोग करता है। सीखने की प्रक्रिया में गिब्स नमूनाकरण के कई चरण होते हैं (प्रचारित करें: नमूना हिडिबन्स दिए गए विज़िबल; पुनर्निर्माण: नमूना विज़िबल दिए गए हिडेन; दोहराएं) और पुनर्निर्माण त्रुटि को कम करने के लिए वजन को समायोजित करना।
आरबीएम के पीछे अंतर्ज्ञान यह है कि कुछ दृश्यमान यादृच्छिक चर (जैसे विभिन्न उपयोगकर्ताओं से फिल्म समीक्षा) और कुछ छिपे हुए चर (जैसे फिल्म शैली या अन्य आंतरिक विशेषताएं) हैं, और प्रशिक्षण का कार्य यह पता लगाना है कि वास्तव में चर के ये दो सेट कैसे हैं? एक दूसरे से जुड़े (इस उदाहरण पर और अधिक जानकारी यहाँ मिल सकती है )।
संवादात्मक तंत्रिका नेटवर्क कुछ हद तक इन दोनों के समान हैं, लेकिन दो परतों के बीच एकल वैश्विक भार मैट्रिक्स सीखने के बजाय, वे स्थानीय रूप से जुड़े न्यूरॉन्स का एक सेट खोजने का लक्ष्य रखते हैं। CNN का उपयोग ज्यादातर छवि पहचान में किया जाता है। उनका नाम "कनविक्शन" ऑपरेटर या बस "फ़िल्टर" से आता है । संक्षेप में, एक सजा कर्नेल के सरल परिवर्तन के माध्यम से फिल्टर जटिल ऑपरेशन करने का एक आसान तरीका है। गाऊसी धुंधला कर्नेल लागू करें और आप इसे चिकना कर लेंगे। कैनी कर्नेल लागू करें और आप सभी किनारों को देखेंगे। ग्रेडिएंट फीचर्स पाने के लिए गैबर कर्नेल लागू करें।
( यहां से छवि )
दृढ़ तंत्रिका नेटवर्क का लक्ष्य पूर्वनिर्धारित गुठली में से एक का उपयोग करना नहीं है, बल्कि डेटा-विशिष्ट गुठली सीखना है । यह विचार ऑटोएन्कोडर्स या आरबीएम के साथ समान है - कई उच्च-स्तरीय विशेषताओं (जैसे उपयोगकर्ता समीक्षा या छवि पिक्सेल) को संपीड़ित उच्च-स्तरीय प्रतिनिधित्व (जैसे फिल्म शैलियों या किनारों) में अनुवाद करना - लेकिन अब केवल न्यूरॉन्स से ही वजन सीखा जाता है। स्थानिक रूप से एक दूसरे के करीब।
सभी तीन मॉडलों में उनके उपयोग के मामले, पेशेवरों और विपक्ष हैं, लेकिन शायद सबसे महत्वपूर्ण गुण हैं:
युपीडी।
आयाम में कमी
जब हम तत्व के वेक्टर के रूप में किसी वस्तु का प्रतिनिधित्व करते हैं, तो हम कहते हैं कि यह -dimensional अंतरिक्ष में एक वेक्टर है। इस प्रकार, आयामीता में कमी डेटा को इस तरह से परिष्कृत करने की एक प्रक्रिया को संदर्भित करती है, जिसमें प्रत्येक डेटा वेक्टर का अनुवाद दूसरे वेक्टर में एक -dimensional स्थान ( तत्वों वाले वेक्टर ) में किया जाता है, जहां । संभवतः ऐसा करने का सबसे आम तरीका पीसीए है । मोटे तौर पर, पीसीए एक डेटासेट के "आंतरिक अक्ष" (जिसे "घटक" कहा जाता है) पाता है और उन्हें उनके महत्व के आधार पर क्रमबद्ध करता है। पहलेसबसे महत्वपूर्ण घटक तब नए आधार के रूप में उपयोग किए जाते हैं। इनमें से प्रत्येक घटक को मूल अक्ष से बेहतर डेटा वैक्टर का वर्णन करते हुए एक उच्च-स्तरीय सुविधा के रूप में सोचा जा सकता है।
दोनों - ऑटोएन्कोडर्स और आरबीएम - एक ही काम करते हैं। वेक्टर को -dimensional स्पेस में लेते हुए वे इसे -dimensional में अनुवाद करते हैं , जितना संभव हो उतना महत्वपूर्ण जानकारी रखने की कोशिश करते हैं और एक ही समय में, शोर को हटाते हैं। यदि ऑटोएन्कोडर / आरबीएम का प्रशिक्षण सफल रहा, परिणामी वेक्टर के प्रत्येक तत्व (अर्थात प्रत्येक छिपी इकाई) वस्तु के बारे में कुछ महत्वपूर्ण प्रतिनिधित्व करते हैं - एक छवि में एक भौं का आकार, एक फिल्म की शैली, वैज्ञानिक लेख में अध्ययन का क्षेत्र, आदि। इनपुट के रूप में बहुत से शोर डेटा लेते हैं और बहुत अधिक कुशल प्रतिनिधित्व में बहुत कम डेटा का उत्पादन करते हैं।
गहरी वास्तुकला
इसलिए, अगर हमारे पास पहले से ही पीसीए था, तो हम ऑटोएन्कोडर्स और आरबीएम के साथ क्यों आए? यह पता चला है कि पीसीए केवल डेटा वैक्टर के रैखिक परिवर्तन की अनुमति देता है । यही है, प्रिंसिपल कंपोनेंट्स होने पर आप केवल वैक्टर प्रतिनिधित्व कर सकते हैं । यह पहले से ही बहुत अच्छा है, लेकिन हमेशा पर्याप्त नहीं है। कोई बात नहीं, आप डेटा के लिए पीसीए को कितनी बार लागू करेंगे - संबंध हमेशा रैखिक रहेगा।
दूसरी ओर ऑटोएन्कोडर्स और आरबीएम, स्वभाव से गैर-रैखिक हैं, और इस प्रकार, वे दृश्य और छिपी इकाइयों के बीच अधिक जटिल संबंध सीख सकते हैं। इसके अलावा, उन्हें ढेर किया जा सकता है , जो उन्हें और भी अधिक शक्तिशाली बनाता है। उदाहरण के लिए, आप RBM को दृश्यमान और छुपी हुई इकाइयों के साथ प्रशिक्षित करते हैं , फिर आप पहले दृश्य के ऊपर दृश्य और छिपी हुई इकाइयों के साथ एक और RBM डालते हैं और इसे भी प्रशिक्षित करते हैं, आदि और ठीक उसी तरह जैसे कि autoencoders।
लेकिन आप सिर्फ नई परतें नहीं जोड़ते। प्रत्येक परत पर आप पिछले एक से एक डेटा के लिए सर्वोत्तम संभव प्रतिनिधित्व जानने की कोशिश करते हैं:
ऊपर की छवि पर इस तरह के एक गहरे नेटवर्क का एक उदाहरण है। हम साधारण पिक्सेल से शुरू करते हैं, साधारण फ़िल्टर के साथ आगे बढ़ते हैं, फिर चेहरे के तत्वों के साथ और अंत में पूरे चेहरे के साथ समाप्त होते हैं! यह गहन शिक्षा का सार है ।
अब ध्यान दें, इस उदाहरण पर हमने छवि डेटा के साथ काम किया और क्रमिक रूप से बड़े और बड़े क्षेत्रों में स्थानिक रूप से नज़दीकी पिक्सल्स लिए। क्या यह समान नहीं है? हाँ, यह गहरी का एक उदाहरण है क्योंकि convolutional नेटवर्क। यह ऑटोएन्कोडर्स या आरबीएम पर आधारित हो, यह स्थानीयता के तनाव के महत्व के लिए दृढ़ संकल्प का उपयोग करता है। यही कारण है कि CNNs ऑटोएन्कोडर्स और RBMs से कुछ अलग हैं।
वर्गीकरण
यहां वर्णित कोई भी मॉडल प्रति सेगमेंट एल्गोरिदम के रूप में काम नहीं करता है। इसके बजाय, उनका उपयोग दिखावा करने के लिए किया जाता है - निम्न-स्तरीय और हार्ड-टू-उपभोग प्रतिनिधित्व (पिक्सेल की तरह) से उच्च-स्तरीय एक में परिवर्तन सीखना। एक बार गहरी (या शायद गहरी नहीं) नेटवर्क का ढोंग किया जाता है, इनपुट वैक्टर को बेहतर प्रतिनिधित्व में बदल दिया जाता है और परिणामस्वरूप वैक्टर को वास्तविक क्लासिफायर (जैसे एसवीएम या लॉजिस्टिक रिग्रेशन) में पास कर दिया जाता है। ऊपर की छवि में इसका मतलब है कि बहुत नीचे एक और घटक है जो वास्तव में वर्गीकरण करता है।
इन सभी आर्किटेक्चर की व्याख्या एक तंत्रिका नेटवर्क के रूप में की जा सकती है। AutoEncoder और Convolutional Network के बीच मुख्य अंतर नेटवर्क हार्डवेरिंग का स्तर है। संवेगात्मक जाल बहुत ज्यादा कठोर होते हैं। कन्वेक्शन ऑपरेशन इमेज डोमेन में बहुत अधिक स्थानीय है, जिसका अर्थ है न्यूरल नेटवर्क व्यू में कनेक्शन की संख्या में अधिक स्पार्सिटी। छवि डोमेन में पूलिंग (सबसम्पलिंग) ऑपरेशन भी तंत्रिका डोमेन में तंत्रिका कनेक्शन का एक हार्डवेयर्ड सेट है। नेटवर्क संरचना पर इस तरह के सामयिक बाधाएं। इस तरह की बाधाओं को देखते हुए, सीएनएन का प्रशिक्षण इस कन्वेंशन ऑपरेशन के लिए सबसे अच्छा वजन सीखता है (व्यवहार में कई फिल्टर हैं)। सीएनएन का उपयोग आमतौर पर छवि और भाषण कार्यों के लिए किया जाता है जहां दृढ़ अवरोधन एक अच्छी धारणा है।
इसके विपरीत, Autoencoders लगभग नेटवर्क की टोपोलॉजी के बारे में कुछ भी नहीं बताते हैं। वे बहुत अधिक सामान्य हैं। इनपुट को फिर से संगठित करने के लिए अच्छा तंत्रिका परिवर्तन खोजना है। वे एनकोडर (छिपी हुई परत के इनपुट) और डिकोडर (आउटपुट के लिए छिपी परत को पुन: प्रक्षेपित करता है) से बना है। छिपी परत अव्यक्त सुविधाओं या अव्यक्त कारकों का एक सेट सीखती है। रैखिक ऑटोएन्कोडर पीसीए के साथ एक ही उप-क्षेत्र में फैले हुए हैं। एक डेटासेट को देखते हुए, वे डेटा के अंतर्निहित पैटर्न को समझाने के लिए आधार की संख्या सीखते हैं।
आरबीएम एक तंत्रिका नेटवर्क भी हैं। लेकिन नेटवर्क की व्याख्या पूरी तरह से अलग है। आरबीएम नेटवर्क की व्याख्या एक फीडफॉर्वर्ड के रूप में नहीं करते हैं, बल्कि एक द्विदलीय ग्राफ के रूप में करते हैं जहां विचार छिपे और इनपुट चर के संयुक्त संभाव्यता वितरण को सीखना है। उन्हें एक ग्राफिकल मॉडल के रूप में देखा जाता है। याद रखें कि AutoEncoder और CNN दोनों एक नियतात्मक कार्य सीखते हैं। दूसरी ओर, आरबीएम, जेनरेटर मॉडल है। यह सीखा छिपे हुए अभ्यावेदन से नमूने उत्पन्न कर सकता है। आरबीएम को प्रशिक्षित करने के लिए अलग-अलग एल्गोरिदम हैं। हालांकि, दिन के अंत में, आरबीएम सीखने के बाद, आप इसे फीडफ़वर्ड नेटवर्क के रूप में व्याख्या करने के लिए इसके नेटवर्क भार का उपयोग कर सकते हैं।
आरबीएम को कुछ प्रकार के संभावित ऑटो एनकोडर के रूप में देखा जा सकता है। दरअसल, यह दिखाया गया है कि कुछ शर्तों के तहत वे समकक्ष हो जाते हैं।
फिर भी, इस समानता को दिखाने के लिए सिर्फ इतना मानना कठिन है कि वे अलग जानवर हैं। वास्तव में, मुझे तीनों के बीच बहुत सी समानताएं मिलनी मुश्किल हैं, जैसे ही मैं बारीकी से देखना शुरू करता हूं।
उदाहरण के लिए, यदि आप एक ऑटो एनकोडर, एक आरबीएम और एक सीएनएन द्वारा लागू किए गए कार्यों को लिखते हैं, तो आपको तीन पूरी तरह से अलग गणितीय अभिव्यक्ति मिलती है।
मैं आपको RBM के बारे में बहुत कुछ नहीं बता सकता, लेकिन ऑटोएन्कोडर्स और CNN दो अलग-अलग तरह की चीजें हैं। एक ऑटोकेनोडर एक तंत्रिका नेटवर्क है जिसे एक अनछुए फैशन में प्रशिक्षित किया जाता है। ऑटोकोडर का लक्ष्य एक एनकोडर को सीखकर डेटा का अधिक कॉम्पैक्ट प्रतिनिधित्व करना है, जो डेटा को उनके संगत कॉम्पैक्ट प्रतिनिधित्व और एक डिकोडर में बदल देता है, जो मूल डेटा को फिर से संगठित करता है। Autoencoders (और मूल रूप से RBMs) के एनकोडर भाग का उपयोग एक गहरी वास्तुकला के अच्छे प्रारंभिक भार को सीखने के लिए किया गया है, लेकिन अन्य अनुप्रयोग भी हैं। अनिवार्य रूप से, एक ऑटोएन्कोडर डेटा की एक क्लस्टरिंग सीखता है। इसके विपरीत, सीएनएन शब्द एक प्रकार के तंत्रिका नेटवर्क को संदर्भित करता है जो डेटा से सुविधाओं को निकालने के लिए कन्वेन्शन ऑपरेटर (अक्सर 2D प्रोसेसिंग जब इसका उपयोग इमेज प्रोसेसिंग कार्यों के लिए किया जाता है) का उपयोग करता है। छवि प्रसंस्करण में, फिल्टर, छवियों के साथ सजाया जाता है, हाथ में काम को हल करने के लिए स्वचालित रूप से सीखा जाता है, जैसे एक वर्गीकरण कार्य। चाहे प्रशिक्षण मानदंड एक प्रतिगमन / वर्गीकरण (पर्यवेक्षित) या एक पुनर्निर्माण (अप्रकाशित) है, आक्षेप परिवर्तनों के विकल्प के रूप में दृढ़ संकल्प के विचार से असंबंधित है। आपके पास CNN-autoencoder भी हो सकता है।