एक लेटेस्ट न्यूरल नेटवर्क (RNN) में परत को भूल जाओ -


13

मैं RNN में प्रत्येक चर के आयामों को भूलने की परत में जानने की कोशिश कर रहा हूं, हालांकि, मुझे यकीन नहीं है कि मैं सही रास्ते पर हूं। अगली तस्वीर और समीकरण कोला के ब्लॉग पोस्ट "अंडरस्टैंडिंग LSTM नेटवर्क" से है :

यहाँ छवि विवरण दर्ज करें

कहाँ पे:

  • m xt का आकार वेक्टर का इनपुट हैm1
  • एन 1ht1 आकार वेक्टर की छिपी हुई अवस्था हैn1
  • x t = [ , , ] , h t - = [ , , ] [ x t , h t - ] = [ , , , , 5 , 6 ][xt,ht1] एक (उदाहरण के लिए, यदि , तो )xt=[1,2,3],ht1=[4,5,6][xt,ht1]=[1,2,3,4,5,6]
  • कश्मीर * ( मीटर + n ) कश्मीर मीटर = 3 एन = 3 डब्ल्यू एफ = 3 * 3wf का आकार मैट्रिक्स है, जहाँ सेल राज्यों की संख्या है (यदि , और उपरोक्त उदाहरण में, और यदि हमारे पास 3 सेल राज्य हैं, तो मैट्रिक्स)k(m+n)km=3n=3wf=33
  • कश्मीर * 1 कश्मीर कश्मीर = 3 3 * 1bf आकार वेक्टर का पक्षपात है , जहां सेल राज्यों की संख्या है (चूंकि उपरोक्त उदाहरण के रूप में है, तो एक वेक्टर है)।k1kk=3bf31

अगर हम को सेट करते हैं: [ 1 2 3 4 5 6 5 6 7 8 9 10 3 4 5 6 7 8 ]wf

[1234565678910345678]

और होना: [ , , ]bf[1,2,3]

फिरWf.[ht1,xt]=

[1234565678910345678].[123456]=[91175133]

फिर हम पूर्वाग्रह, जोड़ सकते हैंWf.[ht1,xt]+bf=

[91175133]+[123]=[92177136]

फिर हम उन्हें एक सिग्मोइड फ़ंक्शन में फ़ीड करते हैं: , जहां , इसलिए हम इस फ़ंक्शन तत्व का प्रदर्शन करते हैं बुद्धिमान, और get । एक्स=[ 92 177 136 ][ 1 1 1 ]11+exx=[92177136]

[111]

जिसका अर्थ है प्रत्येक कोशिका अवस्था के लिए, , ( कोशिका हैं ), हम इसे अगली परत पर जाने देते हैं। के = 3Ct1k=3

क्या उपरोक्त धारणा सही है?

इसका मतलब यह भी है कि सेल स्टेट और हिडन स्टेट की संख्या समान है?

जवाबों:


14

बड़ा अच्छा सवाल!

tl; dr: कोशिका अवस्था और छिपी अवस्था दो अलग-अलग चीजें हैं, लेकिन छिपी हुई अवस्था कोशिका अवस्था पर निर्भर होती है और वे वास्तव में एक ही आकार की होती हैं।

लंबी व्याख्या

दोनों के बीच का अंतर नीचे दिए गए आरेख से देखा जा सकता है (एक ही ब्लॉग का हिस्सा):

कोशिका अवस्था, पश्चिम से पूर्व की ओर ऊपर की ओर जाने वाली बोल्ड लाइन है।

कोशिका अवस्था, पश्चिम से पूर्व की ओर ऊपर की ओर जाने वाली बोल्ड लाइन है। पूरे हरे रंग के ब्लॉक को 'सेल' कहा जाता है।

पिछले समय के चरण से छिपी स्थिति को वर्तमान समय चरण में इनपुट के भाग के रूप में माना जाता है।

हालाँकि, पूर्ण वॉकथ्रू किए बिना दोनों के बीच निर्भरता को देखना थोड़ा कठिन है। मैं यहाँ एक और परिप्रेक्ष्य प्रदान करने के लिए ऐसा करूँगा, लेकिन ब्लॉग से बहुत प्रभावित हूँ। मेरा अंकन समान होगा, और मैं अपने स्पष्टीकरण में ब्लॉग से छवियों का उपयोग करूंगा।

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

यहाँ क्या हो रहा है:

इनपुट गेट

यहाँ छवि विवरण दर्ज करें

txtht1

xt=[1,2,3]ht=[4,5,6]

xtht1[1,2,3,4,5,6]

WiWi[xt,ht1]+biWibi

मान लेते हैं कि हम छह आयामी इनपुट (समवर्ती इनपुट वेक्टर की लंबाई) से तीन आयामी निर्णय लेने के लिए जा रहे हैं, जो राज्यों को अद्यतन करने के लिए है। इसका मतलब है कि हमें एक 3x6 वेट मैट्रिक्स और एक 3x1 बायस वेक्टर चाहिए। आइए उन कुछ मूल्यों को दें:

Wi=[111111222222333333]

bi=[111]

गणना होगी:

[111111222222333333][123456]+[111]=[224262]

it=σ(Wi[xt,ht1]+bi)

σ(x)=11+exp(x)x

σ([224262])=[11+exp(22),11+exp(42),11+exp(62)]=[1,1,1]

अंग्रेजी में, इसका मतलब है कि हम अपने सभी राज्यों को अपडेट करने जा रहे हैं।

इनपुट गेट का दूसरा भाग है:

Ct~=tanh(WC[xt,ht1]+bC)

इस भाग की बात यह है कि अगर हम ऐसा करते हैं तो हम राज्य को कैसे अपडेट करेंगे। यह इस समय सेल राज्य में नए इनपुट से योगदान है। गणना ऊपर बताई गई समान प्रक्रिया का अनुसरण करती है, लेकिन सिग्माइड इकाई के बजाय एक तन इकाई के साथ।

Ct~it

itCt~

इसके बाद भूल जाते हैं गेट, जो आपके सवाल का क्रूस था।

भूल जाओ गेट

यहाँ छवि विवरण दर्ज करें

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

इनपुट लेयर की तरह ही, भूली हुई परत पिछले समय के कदम से छिपी हुई स्थिति को लेती है और वर्तमान समय के कदम से नया इनपुट उन्हें समाप्‍त कर देता है। बिंदु यह तय करना है कि क्या भूल जाना है और क्या याद रखना है। पिछली गणना में, मैंने सभी 1 के सिग्मॉइड लेयर आउटपुट को दिखाया, लेकिन वास्तव में यह 0.999 के करीब था और मैंने राउंड अप किया।

गणना बहुत कुछ लगती है जैसे हमने इनपुट परत में क्या किया:

ft=σ(Wf[xt,ht1]+bf)

यह हमें 0 और 1. के बीच मानों के साथ आकार 3 का एक वेक्टर देगा। आइए दिखाते हैं कि यह हमें दिया:

[0.5,0.8,0.9]

फिर हम इन मूल्यों के आधार पर stochastically निर्णय लेते हैं जो जानकारी के उन तीन भागों को भूल जाते हैं। ऐसा करने का एक तरीका एक समान (0, 1) वितरण से एक संख्या उत्पन्न करना है और यदि वह संख्या इकाई 'चालू' की संभावना से कम है (1, 2, और 3 के लिए 0.5, 0.8 और 0.9) क्रमशः), फिर हम उस इकाई को चालू करते हैं। इस मामले में, इसका मतलब है कि हम उस जानकारी को भूल जाएंगे।

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

सेल की स्थिति को अद्यतन करना

यहाँ छवि विवरण दर्ज करें

अब हमारे पास सेल स्टेट को अपडेट करने की आवश्यकता है। हम इनपुट और भूल गए फाटकों से जानकारी का एक संयोजन लेते हैं:

Ct=ftCt1+itCt~

एक तरफ: Hadamard उत्पाद

x1=[1,2,3]x2=[3,2,1]

x1x2=[(13),(22),(31)]=[3,4,3]

ऐसाइड खत्म।

इस तरह, हम सेल स्टेट (इनपुट) में जो कुछ भी जोड़ना चाहते हैं उसके साथ जोड़ते हैं जो हम सेल स्टेट से दूर ले जाना चाहते हैं (भूल जाते हैं)। परिणाम नई सेल स्थिति है।

आउटपुट गेट

यहाँ छवि विवरण दर्ज करें

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

आउटपुट लेयर फिर से उसी इनपुट को लेती है, लेकिन फिर अपडेटेड सेल अवस्था पर विचार करती है:

ot=σ(Wo[xt,ht1]+bo)

फिर, यह हमें संभावनाओं का एक सदिश देता है। फिर हम गणना करते हैं:

ht=ottanh(Ct)

तो वर्तमान सेल स्थिति और आउटपुट गेट को आउटपुट पर क्या सहमत होना चाहिए।

tanh(Ct)[0,1,1]ot[0,0,1][0,0,1]

htyt=σ(Wht)

ht

LSTM पर बहुत सारे वैरिएंट हैं, लेकिन यह आवश्यक चीजों को कवर करता है!


आपके उत्तर के लिए धन्यवाद! मेरे पास एक अतिरिक्त प्रश्न है कि आप बुरा न मानें। एक गहरा तंत्रिका नेटवर्क गहरा हो सकता है क्योंकि ReLU का व्युत्पन्न 1 है (यदि आउटपुट 0 से अधिक है)। क्या इस सेल के लिए भी ऐसा ही है? मुझे यकीन नहीं है कि तन्ह और सिगमॉइड में 1 का लगातार व्युत्पन्न कैसे हो सकता है?
user1157751

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

क्या आप सक्रियण क्षेत्र में 1 से उनके व्युत्पन्न का उदाहरण दिखा सकते हैं? मैंने बहुत सारे संसाधन देखे हैं जो व्युत्पन्न के बारे में बात करते हैं लेकिन कोई गणित नहीं किया जाता है?
user1157751

अच्छा विचार है, लेकिन इसके बारे में एक उचित पोस्ट लिखने में मुझे कुछ समय लगने वाला है। इस बीच, तन समारोह के आकार के बारे में सोचें - यह एक लम्बी 'एस' है। बीच में जहां व्युत्पन्न सबसे अधिक है। जहाँ S समतल है (S की पूंछ) व्युत्पन्न 0. है, मैंने देखा कि एक स्रोत ने कहा है कि सिग्मोइड्स की अधिकतम व्युत्पन्न 0.25 है, लेकिन मेरे पास tanh के लिए एक समान बाध्य नहीं है।
स्टैटसॉरसिएस

जो हिस्सा मुझे समझ में नहीं आता है वह लगातार 1 व्युत्पन्न के साथ ReLU के विपरीत है जहां x> 0 है, लेकिन सिग्मॉइड और टैन्ह में इसके दोनों व्युत्पन्न के लिए चर मूल्य था। यह "स्थिर" कैसे हो सकता है?
user1157751
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.