विरल कोडिंग और ऑटोकेनोडर के बीच अंतर क्या हैं?


35

स्पर्स कोडिंग को इनपुट वैक्टर का प्रतिनिधित्व करने के लिए आधार वैक्टर के एक अधिक-पूर्ण सेट को सीखने के रूप में परिभाषित किया गया है (<- हम ऐसा क्यों चाहते हैं)। विरल कोडिंग और ऑटोकेनोडर के बीच अंतर क्या हैं? हम विरल कोडिंग और ऑटोकेनोडर का उपयोग कब करेंगे?


1
स्पार्स कोडिंग वास्तव में एक विशिष्ट प्रकार के ऑटोएन्कोडर का गठन करती है जिसे स्पार्स ऑटोकेनोडर के रूप में जाना जाता है । इसलिए यदि आप कर सकते हैं तो आप ऑटोकेनोडर्स के सबसेट के रूप में विरल कोडिंग पर विचार कर सकते हैं।
15

जवाबों:


34

मतभेदों को ढूंढकर मॉडल को देखा जा सकता है। पहले विरल कोडिंग पर नजर डालते हैं।

स्पार्स कोडिंग

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

Lsc=||WHX||22reconstruction term+λ||H||1sparsity term
WXλHW

शुरुआत में, हमारे पास हालांकि नहीं है । फिर भी, कई एल्गोरिदम मौजूद हैं जो संबंध में उपरोक्त उद्देश्य को हल कर सकते हैं । वास्तव में, यह है कि हम किस तरह से अनुमान लगाते हैं: हमें एक अनुकूलन समस्या को हल करने की आवश्यकता है यदि हम एक अनदेखी से संबंधित जानना चाहते हैं ।एच एच एक्सHHhx

ऑटो में सवार

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

D(d(e(x;θr);θd),x)
Lae=||Wσ(WTX)X||2
σσ(x)=11+exp(x)

समानताएँ

ध्यान दें कि जब हम सेट करते हैं तो लगभग तरह दिखता है । दोनों का अंतर यह है कि i) ऑटो एनकोडर अपने सामान्य रूप में स्पार्सिटी को प्रोत्साहित नहीं करते हैं ii) एक ऑटोएन्कोडर कोड खोजने के लिए एक मॉडल का उपयोग करता है, जबकि स्पार्स कोडिंग अनुकूलन के माध्यम से ऐसा करता है।LscLaeH=σ(WTX)

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

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

पर क्यों?

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

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


आपके उत्तर के लिए धन्यवाद! तो क्या इसका मतलब यह है कि विरल कोडिंग का उपयोग किसी भी मामले में नहीं किया जाना चाहिए, लेकिन ऑटोकेनडर? इसके अलावा, विरल कोडिंग में एक अतिरिक्त शब्द होना चाहिए जो डब्ल्यू को नियमित करता है?
रॉकइंटरस्टार

ऐसा कोई सामान्य नियम नहीं है। एई पर एससी का एक लाभ है: अनुकूलन के माध्यम से एन्कोडिंग बहुत शक्तिशाली हो सकती है।
बायरज

क्षमा करें, क्या आप इस बारे में विस्तार से बता सकते हैं?
रॉकइंटरस्टार

एक निश्चित नक्शा होने का अनुमान लगाया गया है ताकि कुछ बाधाओं का पालन किया जा सके (यहाँ: विरल परिणाम) एक ऑप्टिमाइज़र की तुलना में कम शक्तिशाली है जो संभवतः कई पुनरावृत्तियों की तरह एक समाधान खोजने की कोशिश करता है।
बायरज

1
इस प्रश्न को फिर से लाने के लिए क्षमा करें। मुझे लगता है कि ऑटोकेनोडर स्पार्सिटी को प्रोत्साहित कर सकता है, अर्थात स्पर्स ऑटोकेनोडर।
RockTheStar

11

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

स्पार्स कोडिंग को इनपुट वैक्टर का प्रतिनिधित्व करने के लिए आधार वैक्टर के एक अधिक-पूर्ण सेट को सीखने के रूप में परिभाषित किया गया है (<- हम क्यों चाहते हैं)

सबसे पहले, कम से कम चूंकि (हुबेल और विज़ल, 1968) यह ज्ञात है कि वी 1 क्षेत्र में विशिष्ट कोशिकाएं हैं जो किनारे की तरह उत्तेजना को अधिकतम प्रतिक्रिया देती हैं (इसके अलावा अन्य "उपयोगी" गुण हैं)। स्पार्स कोडिंग एक मॉडल है जो इस प्रणाली की कई विशेषताओं को अच्छी तरह से समझाता है। अधिक विवरणों के लिए देखें (ऑल्सहाउसन एंड फील्ड, 1996)

दूसरा, यह दिखाया जा रहा है कि मॉडल जो स्पार्स कोडिंग का वर्णन करता है, मशीन लर्निंग में सुविधा निष्कर्षण के लिए एक उपयोगी तकनीक है और स्थानांतरण सीखने के कार्यों में अच्छे परिणाम प्राप्त करता है। रैना एट अल। (2007) से पता चला है कि "आधार वैक्टर" (सुविधाओं, पेन-स्ट्रोक और किनारों के रूप में) का एक सेट हाथ से लिखे गए अक्षरों से बना एक प्रशिक्षण सेट के साथ सीखा गया है जो हाथ से लिखे अंकों की पहचान के काम में वर्गीकरण में सुधार करता है। बाद में स्पार्स कोडिंग आधारित मॉडल का उपयोग "गहरी" नेटवर्क को प्रशिक्षित करने के लिए किया गया है, "स्पार्स डीप विश्वास नेट" (ली एट अल।, 2007) बनाने के लिए विरल फीचर डिटेक्टरों की परतों को स्टैकिंग । हाल ही में छवि मान्यता में आश्चर्यजनक परिणाम कई परतों (प्रसिद्ध "Google ब्रेन") के साथ एक नेटवर्क बनाने के लिए विरल कोडिंग आधारित मॉडल का उपयोग करके प्राप्त किया गया था, जो एक बिल्ली की छवि को पूरी तरह से अनपेक्षित रूप से भेद करने में सक्षम था (Le et al)। , 2013)

तीसरा, सम्पीडन करने के लिए सीखे हुए आधार का उपयोग करना संभव है। हालांकि किसी ने वास्तव में ऐसा करते हुए नहीं देखा है।

विरल कोडिंग और ऑटोकेनोडर के बीच अंतर क्या हैं?

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

हम विरल कोडिंग और ऑटोकेनोडर का उपयोग कब करेंगे?

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


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

यह कहाँ कहा गया है कि वे एक ही चीज़ हैं? कृपया, मुझे बताएं और मैं उत्तर को सही करूंगा।
शाऊल बरारडो

पहले वाक्य में।
बायरज

"स्पार्स कोडिंग ऑटोकेनोडर्स के प्रशिक्षण के लिए उपलब्ध तकनीकों में से एक है।" यह वाक्य "स्पार्स कोडिंग" को ऑटोकेनोडर के समान "जानवर" के रूप में परिभाषित नहीं करता है। यह कहता है कि, ऑटोकेनोडर्स के प्रशिक्षण के लिए सभी उपलब्ध तकनीकों के बीच, उनमें से एक "स्पार्स कोडिंग" है। मैं सहमत हूं कि वाक्य में वास्तव में कुछ अस्पष्टता है, जो मुझे लगता है कि बाकी जवाब से स्पष्ट है।
शाऊल बरारडो

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

1

एक विरल कोडर आधे ऑटो-एनकोडर की तरह है। एक ऑटो-एनकोडर जैसे काम करता है:

input  =>  neural net layer  =>  hidden outputs => neural net layer => output

बैक-प्रचार के लिए, त्रुटि संकेत, हानि, है: इनपुट - आउटपुट

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

विरल कोडिंग में, हमारे पास केवल इसका दूसरा भाग है:

                                codes => neural net layer => output

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

अंतर अब हम स्पष्ट रूप से देख सकते हैं: विरल कोडिंग के लिए, तंत्रिका नेटवर्क का पहला आधा हिस्सा नहीं है: कोड हमारे लिए एक तंत्रिका जाल द्वारा स्वचालित रूप से प्रदान नहीं किए जाते हैं।

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


0

आप इस हालिया पेपर को पढ़ना चाह सकते हैं, https://arxiv.org/abs/1708.03735v2 ठीक इसी विषय पर। इस पत्र में लेखक दिखाते हैं कि वास्तव में कोई एक ऑटोकेनोडर सेट कर सकता है जैसे कि जमीनी सच शब्दकोश उस ऑटोकेनर के चुकता नुकसान फ़ंक्शन का एक महत्वपूर्ण बिंदु है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.