मान लीजिए कि हमारे पास एक्सप्रेशन z= एक्स1एक्स2+ पाप( x)1) और आप डेरिवेटिव d z खोजना चाहते हैंघzघएक्स1 औरघzघएक्स2 । रिवर्स-मोड AD इस कार्य को 2 भागों में विभाजित करता है, अर्थात्, आगे और रिवर्स पास।
अग्रवर्ती पारण
सबसे पहले, हम अपनी जटिल अभिव्यक्ति को आदिम लोगों के समूह में शामिल करते हैं, यानी अधिकांश एकल फ़ंक्शन कॉल में अभिव्यक्ति। ध्यान दें कि मैंने निरंतरता के लिए इनपुट और आउटपुट चर का नाम बदला है, हालांकि यह आवश्यक नहीं है:
w1=एक्स1
w2=एक्स2
w3=w1w2
w4=पाप(w)1)
w5= w3+ w4
z= w5
इस प्रतिनिधित्व का लाभ यह है कि प्रत्येक अलग अभिव्यक्ति के लिए भेदभाव नियम पहले से ही ज्ञात हैं। उदाहरण के लिए, हम जानते हैं कि व्युत्पन्न पाप है क्योंकि , और इसलिए घw4घw1= कॉस( w)1)। हम नीचे दिए गए पास में इस तथ्य का उपयोग करेंगे।
अनिवार्य रूप से, फॉरवर्ड पास में इनमें से प्रत्येक भाव का मूल्यांकन करना और परिणामों को सहेजना शामिल है। कहें, हमारे इनपुट हैं: एक्स1= २ और एक्स2= ३ । तो हमारे पास हैं:
w1= एक्स1= २
w2= एक्स2= ३
w3= w1w2= 6
w4= पाप( w)1) = 0.9
w5= w3+ w4= 6.9
z= w5= 6.9
रिवर्स पास
यह जादू की शुरुआत है, और यह श्रृंखला के नियम से शुरू होता है । अपने मूल रूप में, चेन नियम कहता है कि यदि आपके पास वेरिएबल t(u(v)) जो u पर निर्भर करता है , जो अपनी बारी में, v पर निर्भर करता है , तो:
dtdv=dtdududv
या, यदि t पर निर्भर करता है v कई रास्ते / चर के माध्यम से ui , जैसे:
u1=f(v)
u2=g(v)
t=h(u1,u2)
तब ( यहां प्रमाण देखें ):
dtdv=∑idtduiduidv
अभिव्यक्ति ग्राफ के संदर्भ में, हम एक अंतिम नोड अगर z और इनपुट नोड्स wi से, और पथ z करने के लिए wi मध्यवर्ती नोड्स के माध्यम से चला जाता है wp (यानी z=g(wp) जहां wp=f(wi) ), हम व्युत्पन्न d z पा सकते हैंdzdwi as
dzdwi=∑p∈parents(i)dzdwpdwpdwi
दूसरे शब्दों में, उत्पादन चर के व्युत्पन्न गणना करने के लिए z किसी भी मध्यवर्ती या इनपुट चर wrt wi , हम केवल अपने माता-पिता के डेरिवेटिव और सूत्र आदिम अभिव्यक्ति के व्युत्पन्न गणना करने के लिए पता करने की जरूरत wp=f(wi) ।
अंत में रिवर्स पास शुरू होता है (यानी dzdz ) और सभी निर्भरताओं के लिए पिछड़ों का प्रचार करता है। यहां हमारे पास ("बीज" के लिए अभिव्यक्ति):
dzdz=1
यही कारण है कि "में परिवर्तन के रूप में पढ़ा जा सकता है z वास्तव में एक ही परिवर्तन में परिणाम z " है, जो काफी स्पष्ट है।
तब हम जानते हैं कि z=w5 और इसी तरह:
dzdw5=1
w5 रैखिक पर निर्भर करता हैw3 औरw4 , इसलिएdw5dw3=1औरdw5dw4=1। श्रृंखला नियम का उपयोग करके हम पाते हैं:
dzdw3=dzdw5dw5dw3=1×1=1
dzdw4=dzdw5घw5घw4= 1 × 1 = 1
परिभाषा w3= w1w2 और आंशिक व्युत्पन्न के नियमों से, हम पाते हैं कि घw3घw2= w1। इस प्रकार:
घzघw2= डीzघw3घw3घw2= 1 × डब्ल्यू1= w1
जो, जैसा कि हम पहले से ही आगे पास से जानते हैं, वह है:
घzघw2= w1= २
अंत में, w1 में योगदान z के माध्यम से w3 और w4 । एक बार फिर, आंशिक डेरिवेटिव के नियमों से हम जानते हैं कि घw3घw1= w2औरघw4घw1= कॉस( w)1)। इस प्रकार:
घzघw1= डीzघw3घw3घw1+ dzघw4घw4घw1= w2+ कॉस( w)1)
और फिर, ज्ञात इनपुट्स देकर, हम इसकी गणना कर सकते हैं:
घzघw1= w2+ कॉस( w)1) = 3 + कॉस( २ ) = २.५ 2
के बाद से w1 और w2 के लिए सिर्फ उपनाम हैं एक्स1 और एक्स2 , हम अपने जवाब मिल:
घzघएक्स1= 2.58
घzघएक्स2= २
और बस!
यह विवरण केवल स्केलर इनपुट्स, यानी संख्याओं की चिंता करता है, लेकिन वास्तव में इसे वैक्टर और मैट्रेस जैसे बहुआयामी सरणियों पर भी लागू किया जा सकता है। ऐसी वस्तुओं के साथ भावों को अलग करते समय दो बातों को ध्यान में रखना चाहिए:
- डेरिवेटिव्स में इनपुट्स या आउटपुट की तुलना में बहुत अधिक आयामीता हो सकती है, उदाहरण के लिए, वेक्टर wrt वेक्टर का व्युत्पन्न एक मैट्रिक्स है और मैट्रिक्स wrt मैट्रिक्स का व्युत्पन्न एक 4-आयामी सरणी (कभी-कभी टेंसर के रूप में संदर्भित) है। कई मामलों में इस तरह के डेरिवेटिव बहुत कम हैं।
- आउटपुट ऐरे में प्रत्येक घटक इनपुट ऐर (एस) के 1 या अधिक घटकों का एक स्वतंत्र कार्य है। उदाहरण के लिए यदि y= च( x ) और दोनों एक्स और y वैक्टर, कर रहे हैं yमैंyjएक्सकश्मीरघyमैंघएक्सjyमैंएक्सj
घzघw1= w2+ कॉस( w)1) = एक्स2+ कॉस( x)1)