RNN / LSTM नेटवर्क का वजन समय के साथ क्यों साझा किया जाता है?


20

मैं हाल ही में LSTM में दिलचस्पी ले रहा हूं और मुझे यह जानकर आश्चर्य हुआ कि वजन समय के साथ साझा किया जाता है।

  • मुझे पता है कि यदि आप समय के साथ वजन साझा करते हैं, तो आपके इनपुट समय अनुक्रम एक चर लंबाई हो सकते हैं।

  • साझा भार के साथ आपके पास प्रशिक्षित करने के लिए कई कम पैरामीटर हैं।

मेरी समझ से, कारण एक LSTM बनाम कुछ अन्य शिक्षण पद्धति में बदल जाएगा क्योंकि आप मानते हैं कि आपके डेटा में कुछ प्रकार की अस्थायी / अनुक्रमिक संरचना / निर्भरता है जिसे आप सीखना चाहते हैं। यदि आप वैरिएबल लेंथ 'लग्जरी' का त्याग करते हैं, और लंबी गणना समय स्वीकार करते हैं, तो एक आरएनएन / LSTM बिना साझा वज़न के नहीं होगा (यानी हर बार जब आपके पास अलग-अलग वज़न है) बेहतर तरीके से प्रदर्शन करते हैं या ऐसा कुछ है जो मुझे याद आ रहा है?

जवाबों:


17

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

पैरामीटर साझा करने के लिए शुद्ध सैद्धांतिक कारण हैं:

  • यह विभिन्न लंबाई के उदाहरणों के लिए मॉडल को लागू करने में मदद करता है। एक अनुक्रम पढ़ते समय, यदि RNN मॉडल प्रशिक्षण के दौरान प्रत्येक चरण के लिए विभिन्न मापदंडों का उपयोग करता है, तो यह विभिन्न लंबाई के अनुक्रमों को अनदेखा नहीं करेगा।

  • अक्सर, अनुक्रम पूरे अनुक्रम में समान नियमों के अनुसार काम करते हैं। उदाहरण के लिए, एनएलपी में:

                                                     "सोमवार को बर्फ़बारी हो रही थी"

                                                     "सोमवार को बर्फबारी हो रही थी"

... इन दोनों वाक्यों का अर्थ एक ही बात है, हालांकि विवरण अनुक्रम के विभिन्न भागों में हैं। पैरामीटर साझा करना इस तथ्य को दर्शाता है कि हम प्रत्येक चरण में एक ही कार्य कर रहे हैं, नतीजतन, हमें वाक्य में प्रत्येक बिंदु पर नियमों को त्यागना नहीं है।

LSTM इस मायने में अलग नहीं है, इसलिए यह साझा मापदंडों का भी उपयोग करता है।


4
यह स्वीकृत उत्तर की तुलना में कहीं अधिक महत्वपूर्ण कारण है!
jlh

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

12

'साझा भार' परिप्रेक्ष्य RNN के बारे में सोचने से आता है क्योंकि फीडफोवर्ड नेटवर्क पूरे समय अनियंत्रित रहता है। यदि समय में वजन हर पल अलग था, तो यह सिर्फ एक फीडफ़वर्ड नेटवर्क होगा। लेकिन, मुझे लगता है कि यह सोचने का एक और तरीका है कि यह एक आरएनएन के रूप में होगा जिसका वजन एक समय-भिन्न कार्य है (और इससे आप चर लंबाई अनुक्रमों को संसाधित करने की क्षमता रख सकते हैं)।

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


यदि आप वजन साझा नहीं करते हैं, तो आपके पास अभी भी सेल स्थिति है जो समय के साथ बनी रहती है। अनूठे समय भार के साथ एक अनियंत्रित LSTM एक फीडबैकवर्ड नेट की तरह दिखेगा जहां प्रत्येक 'लेयर' एक टाइम स्लाइस का प्रतिनिधित्व करेगा, लेकिन प्रत्येक 'लेयर' में आने वाली सेल स्टेट की जानकारी होगी। यह एक फीडफ़ॉर्म से मिलता जुलता होगा, लेकिन सेल राज्य के अतिरिक्त के साथ।
beeCwright

0

मुझे लगता है कि चूंकि छिपे-छिपे आवर्ती (और समय साझा वजन) के साथ RNN यूनिवर्सल ट्यूरिंग मशीनों के बराबर हैं, उन्हें अलग-अलग समय के लिए अलग-अलग वज़न देने से चरण उन्हें अधिक शक्तिशाली नहीं बनाते हैं।


क्या आप "शक्तिशाली" से आपके मतलब के बारे में विस्तार से बता सकते हैं? ट्यूरिंग मशीनों के संदर्भ से पता चलता है कि आपके पास जो कुछ भी है वह आंकड़ों में होने वाले से पूरी तरह अलग हो सकता है।
whuber

RNN का उपयोग डेटा के अनुक्रम को संसाधित करने के लिए किया जाता है। उनके सामान्य प्रकारों में से एक इनपुट के रूप में एक अनुक्रम प्राप्त करता है और आउटपुट के रूप में एक और अनुक्रम उत्पन्न करता है (जैसे भाषा अनुवाद सिस्टम)। मैं कहता हूं कि एक आरएनएन मॉडल परिवार एम 1 एक और आरएनएन मॉडल परिवार एम 2 की तुलना में अधिक शक्तिशाली है, अगर एक समस्या के लिए (जैसे कि आउटपुट अनुक्रमों के एक सेट में इनपुट अनुक्रमों के सेट को मैप करना) एम 1 में कुछ मॉडल एम 1 है जहां इस समस्या को हल किया जा सकता है लेकिन एम 2 में कोई मॉडल नहीं है जहां उस समस्या को हल किया जा सके।
होसैन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.