पश्चप्रचार

यंत्र अधिगम में, पश्चप्रचार व्यापक रूप से उपयोग किया जाने वाला कलन विधि है, जो फीडफॉरवर्ड न्यूरल नेटवर्क या अलग-अलग नोड्स के साथ अन्य पैरामीटरयुक्त नेटवर्क को प्रशिक्षित करता है। यह ऐसे नेटवर्क के लिए गॉटफ्रीड विल्हेम लीबनिज श्रृंखला नियम (1673) का कुशल अनुप्रयोग है। सेप्पो लिनैनमा (1970) के कारण स्वत: विभेदन या रिवर्स संचयन के रिवर्स मोड के रूप में भी जाना जाता है।

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

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

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

अवलोकन
पश्चप्रचार हानि फलन के संबंध में फीडफॉरवर्ड न्यूरल नेटवर्क के पैरामीटर स्थान में ग्रेडिएंट की गणना करता है। निरूपित करें:
 * $$x$$: इनपुट (सुविधाओं का सदिश)
 * $$y$$: लक्ष्य आउटपुट
 * वर्गीकरण के लिए, आउटपुट वर्ग संभावनाओं का सदिश होगा (उदाहरण के लिए, $$(0.1, 0.7, 0.2)$$, और लक्ष्य आउटपुट विशिष्ट वर्ग है, जो वन-हॉट/डमी चर (सांख्यिकी) द्वारा एन्कोड किया गया है (उदाहरण के लिए, $$(0, 1, 0)$$).
 * $$C$$: हानि फलन या लागत फलन
 * वर्गीकरण के लिए, यह सामान्यतः क्रॉस एन्ट्रापी (XC, लॉग हानि) होता है, जबकि रिग्रेशन के लिए यह सामान्यतः स्क्वायर त्रुटि हानि (एसईएल) होता है।
 * $$L$$: परतों की संख्या
 * $$W^l = (w^l_{jk})$$: परत $$l - 1$$ और $$l$$ के बीच का वज़न, जहाँ $$w^l_{jk}$$ $$k$$-वें नोड के बीच का वज़न है परत में $$l - 1$$ और $$j$$-वें नोड परत $$l$$ में
 * $$f^l$$: सक्रियण परत पर कार्य करता है $$l$$
 * वर्गीकरण के लिए अंतिम परत सामान्यतः बाइनरी वर्गीकरण के लिए रसद फलन है, और मल्टी-क्लास वर्गीकरण के लिए सॉफ्टमैक्स फलन (सॉफ्टरमैक्स) है, जबकि छिपी हुई परतों के लिए यह पारंपरिक रूप से प्रत्येक नोड (समन्वय) पर सिग्मॉइड फलन (लॉजिस्टिक फलन या अन्य) था ), किन्तु आज अधिक विविध है, जिसमें रेक्टिफायर (तंत्रिका नेटवर्क) (रैंप फलन, रेएलयू) सामान्य है।

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

समग्र नेटवर्क फलन संरचना और मैट्रिक्स गुणन का संयोजन है:
 * $$g(x) := f^L(W^L f^{L-1}(W^{L-1} \cdots f^1(W^1 x)\cdots))$$

प्रशिक्षण सेट के लिए इनपुट-आउटपुट जोड़े $$\left\{(x_i, y_i)\right\}$$ का सेट होगा, प्रत्येक इनपुट-आउटपुट जोड़ी के लिए $$(x_i, y_i)$$ प्रशिक्षण सेट में, उस जोड़ी पर मॉडल का हानि अनुमानित आउटपुट $$g(x_i)$$ के बीच अंतर की लागत है और लक्ष्य आउटपुट $$y_i$$:
 * $$C(y_i, g(x_i))$$

अंतर पर ध्यान दें: मॉडल मूल्यांकन के समय, भार तय होते हैं, जबकि इनपुट भिन्न होते हैं (और लक्ष्य आउटपुट अज्ञात हो सकता है), और नेटवर्क आउटपुट परत के साथ समाप्त होता है (इसमें हानि फलन सम्मिलित नहीं होता है)। मॉडल प्रशिक्षण के समय, इनपुट-आउटपुट जोड़ी तय हो जाती है, जबकि भार भिन्न-भिन्न होता है, और नेटवर्क हानि फलन के साथ समाप्त होता है।

पश्चप्रचार निश्चित इनपुट-आउटपुट जोड़ी $$(x_i, y_i)$$ के लिए प्रवणता की गणना करता है, जहां भार $$w^l_{jk}$$ भिन्न हो सकती है। प्रवणता के प्रत्येक व्यक्तिगत घटक, $$\partial C/\partial w^l_{jk},$$ श्रृंखला नियम द्वारा गणना की जा सकती है; चूँकि, प्रत्येक भार के लिए इसे अलग से करना अक्षम है। पश्चप्रचार प्रत्येक परत के ग्रेडिएंट की गणना करके - विशेष रूप से, प्रत्येक परत के भारित इनपुट के ग्रेडिएंट की गणना करके, डुप्लिकेट गणनाओं से बचने और अनावश्यक मध्यवर्ती मानों की गणना नहीं करके कुशलता से ग्रेडिएंट की गणना करता है, जिसे $$\delta^l$$ द्वारा पीछे से सामने की ओर दर्शाया जाता है।

ssssssssअनौपचारिक रूप से, मुख्य बिंदु यह है कि चूंकि एकमात्र विधि भार में है $$W^l$$ हानि को प्रभावित करता है अगली परत पर इसके प्रभाव के माध्यम से होता है, और यह ऐसा रैखिक रूप से करता है, $$\delta^l$$ वे एकमात्र डेटा हैं जिनकी आपको परत पर वज़न के ग्रेडिएंट की गणना करने के लिए आवश्यकता होती है $$l$$, और फिर आप पिछली परत की गणना कर सकते हैं $$\delta^{l-1}$$ और पुनरावर्ती रूप से दोहराएं। यह दो तरह से अक्षमता से बचा जाता है। सबसे पहले, यह दोहराव से बचा जाता है क्योंकि परत पर ग्रेडिएंट की गणना करते समय $$l$$, आपको बाद की परतों पर सभी डेरिवेटिव की पुनर्गणना करने की आवश्यकता नहीं है $$l+1, l+2, \ldots$$ हर बार। दूसरे, यह अनावश्यक मध्यवर्ती गणनाओं से बचता है क्योंकि प्रत्येक चरण में यह भार में परिवर्तन के संबंध में छिपी हुई परतों के मूल्यों के डेरिवेटिव की अनावश्यक रूप से गणना करने के बजाय अंतिम आउटपुट (हानि) के संबंध में भार के प्रवणता की सीधे गणना करता है। $$\partial a^{l'}_{j'}/\partial w^l_{jk}$$.


 * 1) Matrix गुणन के संदर्भ में, या अधिक सामान्यतः #Adjoint ग्राफ़ के संदर्भ में सरल फ़ीडफ़ॉरवर्ड नेटवर्क के लिए बैकप्रोपैगेशन व्यक्त किया जा सकता है।

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

इनपुट-आउटपुट जोड़ी दी गई है $$(x, y)$$, हानि है:


 * $$C(y, f^L(W^L f^{L-1}(W^{L-1} \cdots f^2(W^2 f^1(W^1 x))\cdots)))$$

इसकी गणना करने के लिए, इनपुट के साथ प्रारंभ होता है $$x$$ और आगे काम करता है; प्रत्येक छिपी हुई परत के भारित इनपुट को निरूपित करें $$z^l$$ और छिपी हुई परत का उत्पादन $$l$$ सक्रियता के रूप में $$a^l$$. पश्चप्रचार के लिए, सक्रियण $$a^l$$ साथ ही डेरिवेटिव $$(f^l)'$$ (पर मूल्यांकन किया गया $$z^l$$) बैकवर्ड पास के समय उपयोग के लिए कैश किया जाना चाहिए।

इनपुट के संदर्भ में हानि का व्युत्पन्न श्रृंखला नियम द्वारा दिया गया है; ध्यान दें कि प्रत्येक शब्द कुल व्युत्पन्न है, जिसका मूल्यांकन इनपुट पर नेटवर्क (प्रत्येक नोड पर) के मूल्य पर किया जाता है $$x$$:


 * $$\frac{d C}{d a^L}\circ \frac{d a^L}{d z^L} \cdot \frac{d z^L}{d a^{L-1}} \circ \frac{d a^{L-1}}{d z^{L-1}}\cdot \frac{d z^{L-1}}{d a^{L-2}} \circ \ldots \circ \frac{d a^1}{d z^1} \cdot \frac{\partial z^1}{\partial x},$$

जहाँ $$\circ$$ हैडमार्ड उत्पाद (मैट्रिसेस) है, जो तत्व-वार उत्पाद है।

ये शब्द हैं: हानि फलन का व्युत्पन्न; सक्रियण कार्यों के डेरिवेटिव; और वज़न के आव्यूह:
 * $$\frac{d C}{d a^L}\circ (f^L)' \cdot W^L \circ (f^{L-1})' \cdot W^{L-1} \circ \cdots \circ (f^1)' \cdot W^1.$$

प्रवणता $$\nabla$$ इनपुट के संदर्भ में आउटपुट के व्युत्पन्न का स्थानान्तरण है, इसलिए मेट्रिसेस को खिसकाना  किया जाता है और गुणन का क्रम उलट दिया जाता है, किन्तु प्रविष्टियाँ समान होती हैं:
 * $$\nabla_x C = (W^1)^T \cdot (f^1)' \circ \ldots \circ (W^{L-1})^T \cdot (f^{L-1})' \circ (W^L)^T \cdot (f^L)' \circ \nabla_{a^L} C.$$

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

सहायक मात्रा का परिचय $$\delta^l$$ आंशिक उत्पादों के लिए (दाएं से बाएं गुणा), स्तर पर त्रुटि के रूप में व्याख्या की गई $$l$$और स्तर पर इनपुट मानों के ग्रेडिएंट के रूप में परिभाषित किया गया है $$l$$:
 * $$\delta^l := (f^l)' \circ (W^{l+1})^T \circ \cdots \circ (W^{L-1})^T \cdot (f^{L-1})' \circ (W^L)^T \cdot (f^L)' \circ \nabla_{a^L} C.$$

ध्यान दें कि $$\delta^l$$ सदिश है, जिसकी लंबाई स्तर में नोड्स की संख्या के बराबर है $$l$$; प्रत्येक घटक को उस नोड के लिए (के मूल्य) के कारण लागत के रूप में व्याख्या की जाती है।

परत में भार का प्रवणता $$l$$ तब है:
 * $$\nabla_{W^l} C = \delta^l(a^{l-1})^T.$$

का कारक $$a^{l-1}$$ है क्योंकि भार $$W^l$$ स्तर के बीच $$l - 1$$ और $$l$$ प्रभाव स्तर $$l$$ इनपुट्स (एक्टिवेशन्स) के अनुपात में: इनपुट्स फिक्स्ड होते हैं, वेट अलग-अलग होते हैं। $$\delta^l$$ h> आसानी से पुनरावर्ती रूप से गणना की जा सकती है, दाएं से बाएं जा रही है, जैसे:
 * $$\delta^{l-1} := (f^{l-1})' \circ (W^l)^T \cdot \delta^l.$$

इस प्रकार प्रत्येक स्तर के लिए कुछ मैट्रिक्स गुणन का उपयोग करके भार के ग्रेडियेंट की गणना की जा सकती है; यह पश्चप्रचार है।

भोले-भाले कंप्यूटिंग फॉरवर्ड की तुलना में ( $$\delta^l$$ उदाहरण के लिए):


 * $$\begin{align}

\delta^1 &= (f^1)' \circ (W^2)^T \cdot (f^2)' \circ \cdots \circ (W^{L-1})^T \cdot (f^{L-1})' \circ (W^L)^T \cdot (f^L)' \circ \nabla_{a^L} C\\ \delta^2 &= (f^2)' \circ \cdots \circ (W^{L-1})^T \cdot (f^{L-1})' \circ (W^L)^T \cdot (f^L)' \circ \nabla_{a^L} C\\ &\vdots\\ \delta^{L-1} &= (f^{L-1})' \circ (W^L)^T \cdot (f^L)' \circ \nabla_{a^L} C\\ \delta^L &= (f^L)' \circ \nabla_{a^L} C, \end{align}$$ पश्चप्रचार के साथ दो प्रमुख अंतर हैं:


 * 1) कम्प्यूटिंग $$\delta^{l-1}$$ के अनुसार $$\delta^l$$ परतों के स्पष्ट डुप्लिकेट गुणन से बचा जाता है $$l$$ और इसके बाद में।
 * 2) से गुणा करना $$\nabla_{a^L} C$$ - त्रुटि को पीछे की ओर प्रचारित करना - इसका अर्थ है कि प्रत्येक चरण केवल सदिश को गुणा करता है ($$\delta^l$$) वज़न के मैट्रिसेस द्वारा $$(W^l)^T$$ और सक्रियण के डेरिवेटिव $$(f^{l-1})'$$. इसके विपरीत, आगे की ओर गुणा करना, पिछली परत में परिवर्तनों से प्रारंभ करना, इसका अर्थ है कि प्रत्येक गुणन मैट्रिक्स द्वारा मैट्रिक्स को गुणा करता है। यह बहुत अधिक महंगा है, और परत में बदलाव के हर संभव पथ को ट्रैक करने के अनुरूप है $$l$$ परत में परिवर्तन के लिए आगे $$l+2$$ (गुणा करने के लिए $$W^{l+1}$$ द्वारा $$W^{l+2}$$, सक्रियण के डेरिवेटिव के लिए अतिरिक्त गुणन के साथ), जो अनावश्यक रूप से मध्यवर्ती मात्रा की गणना करता है कि कैसे भार परिवर्तन छिपे हुए नोड्स के मूल्यों को प्रभावित करता है।

संलग्न ग्राफ
अधिक सामान्य रेखांकन, और अन्य उन्नत विविधताओं के लिए, बैकप्रोपैगेशन को स्वचालित विभेदन के संदर्भ में समझा जा सकता है, जहां बैकप्रोपैगेशन रिवर्स संचय (या रिवर्स मोड) का विशेष मामला है।

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

अनुकूलन समस्या के रूप में सीखना
बैकप्रोपैगेशन एल्गोरिदम की गणितीय व्युत्पत्ति को समझने के लिए, पहले न्यूरॉन के वास्तविक आउटपुट और किसी विशेष प्रशिक्षण उदाहरण के लिए सही आउटपुट के बीच संबंध के बारे में कुछ अंतर्ज्ञान विकसित करने में सहायता मिलती है। दो इनपुट इकाइयों, आउटपुट इकाई और कोई छिपी हुई इकाइयों के साथ साधारण तंत्रिका नेटवर्क पर विचार करें, और जिसमें प्रत्येक न्यूरॉन कृत्रिम न्यूरॉन#रैखिक संयोजन का उपयोग करता है (तंत्रिका नेटवर्क पर अधिकांश काम के विपरीत, जिसमें इनपुट से आउटपुट तक मैपिंग गैर-रैखिक है) that is the weighted sum of its input. प्रारंभ में, प्रशिक्षण से पहले, भार बेतरतीब ढंग से निर्धारित किया जाएगा। फिर न्यूरॉन प्रशिक्षण सेट से सीखता है, जिसमें इस मामले में टुपल्स का सेट होता है $$(x_1, x_2, t)$$ जहाँ $$x_1$$ और $$x_2$$ नेटवर्क के लिए इनपुट हैं और $t$ सही आउटपुट है (आउटपुट को उन इनपुटों को देखते हुए उत्पादन करना चाहिए, जब इसे प्रशिक्षित किया गया हो)। प्रारंभिक नेटवर्क, दिया गया $$x_1$$ और $$x_2$$, आउटपुट की गणना करेगा $y$ जो संभवतः इससे भिन्न है $t$ (यादृच्छिक भार दिया गया है)। हानि फलन $$ L(t, y) $$ लक्ष्य आउटपुट के बीच विसंगति को मापने के लिए उपयोग किया जाता है $t$ और परिकलित आउटपुट $y$. प्रतिगमन विश्लेषण समस्याओं के लिए चुकता त्रुटि का उपयोग हानि फलन के रूप में किया जा सकता है, सांख्यिकीय वर्गीकरण के लिए क्रॉस एन्ट्रॉपी का उपयोग किया जा सकता है।

उदाहरण के रूप में हानि के रूप में वर्ग त्रुटि का उपयोग करके प्रतिगमन समस्या पर विचार करें:
 * $$L(t, y)= (t-y)^2 = E, $$

जहाँ $E$ विसंगति या त्रुटि है। एकल प्रशिक्षण मामले पर नेटवर्क पर विचार करें: $$(1, 1, 0)$$. इस प्रकार, इनपुट $$x_1$$ और $$x_2$$ क्रमशः 1 और 1 हैं और सही आउटपुट, $t$ 0 है। अब यदि नेटवर्क के आउटपुट के बीच संबंध प्लॉट किया जाता है $y$ क्षैतिज अक्ष और त्रुटि पर $E$ ऊर्ध्वाधर अक्ष पर, परिणाम परवलय है। पैराबोला का मैक्सिमा और मिनिमा आउटपुट से मेल खाता है $y$ जो त्रुटि को कम करता है $E$. एकल प्रशिक्षण मामले के लिए, न्यूनतम भी क्षैतिज अक्ष को छूता है, जिसका अर्थ है कि त्रुटि शून्य होगी और नेटवर्क आउटपुट उत्पन्न कर सकता है $y$ जो लक्ष्य आउटपुट से बिल्कुल मेल खाता है $t$. इसलिए, आउटपुट को मैपिंग इनपुट की समस्या को अनुकूलन समस्या में कम किया जा सकता है of finding a function that will produce the minimal error. चूँकि, न्यूरॉन का आउटपुट उसके सभी इनपुट के भारित योग पर निर्भर करता है:


 * $$y=x_1w_1 + x_2w_2,$$

जहाँ $$w_1$$ और $$w_2$$ इनपुट यूनिट से आउटपुट यूनिट तक कनेक्शन पर भार हैं। इसलिए, त्रुटि न्यूरॉन के आने वाले भार पर भी निर्भर करती है, जो अंततः सीखने को सक्षम करने के लिए नेटवर्क में बदलने की आवश्यकता होती है।

इस उदाहरण में, प्रशिक्षण डेटा को इंजेक्ट करने पर $$(1, 1, 0)$$, loss function बन जाता है

$$ E = (t-y)^2 = y^2 = (x_1w_1 + x_2w_2)^2 = (w_1 + w_2)^2.$$ फिर, हानि फलन $$E$$ इसके आधार के साथ निर्देशित परवलयिक सिलेंडर का रूप लेता है $$w_1 = -w_2$$. भार के सभी सेट जो संतुष्ट करते हैं $$w_1 = -w_2$$ हानि फलन को कम करें, इस मामले में अद्वितीय समाधान में अभिसरण करने के लिए अतिरिक्त बाधाओं की आवश्यकता होती है। अतिरिक्त बाधाओं को या तो भार के लिए विशिष्ट शर्तों को निर्धारित करके या अतिरिक्त प्रशिक्षण डेटा को इंजेक्ट करके उत्पन्न किया जा सकता है।

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

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


 * $$E = L(t, y)$$

जहाँ
 * $$L$$ आउटपुट के लिए हानि है $$y$$ और लक्ष्य मूल्य $$t$$,
 * $$t$$ प्रशिक्षण नमूने के लिए लक्ष्य आउटपुट है, और
 * $$y$$ आउटपुट न्यूरॉन का वास्तविक आउटपुट है।

प्रत्येक न्यूरॉन के लिए $$j$$, इसका आउटपुट $$o_j$$ परिभाषित किया जाता है


 * $$o_j = \varphi(\text{net}_j) = \varphi\left(\sum_{k=1}^n w_{kj}x_k\right),$$

जहां सक्रियण कार्य करता है $$\varphi$$ सक्रियण क्षेत्र पर गैर-रैखिक और विभेदक कार्य है (ReLU बिंदु पर भिन्न नहीं है)। ऐतिहासिक रूप से उपयोग किया जाने वाला सक्रियण कार्य रसद कार्य है:


 * $$ \varphi(z) = \frac 1 {1+e^{-z}}$$

जिसका सुविधाजनक व्युत्पन्न है:


 * $$ \frac {d \varphi(z)}{d z} = \varphi(z)(1-\varphi(z)) $$

इनपुट $$\text{net}_j$$ न्यूरॉन के लिए आउटपुट का भारित योग है $$o_k$$ पिछले न्यूरॉन्स की। यदि न्यूरॉन इनपुट परत के बाद पहली परत में है, तो $$o_k$$ इनपुट लेयर के केवल इनपुट होते हैं $$x_k$$ नेटवर्क के लिए। न्यूरॉन में इनपुट इकाइयों की संख्या है $$n$$. चर $$w_{kj}$$ न्यूरॉन के बीच भार को दर्शाता है $$k$$ पिछली परत और न्यूरॉन की $$j$$ वर्तमान परत की।

त्रुटि का व्युत्पन्न ढूँढना
भार के संबंध में त्रुटि के आंशिक व्युत्पन्न की गणना करना $$w_{ij}$$ दो बार श्रृंखला नियम का उपयोग करके किया जाता है:

उपर्युक्त के दाहिनी ओर के अंतिम कारक में योग में केवल पद है $$\text{net}_j$$ पर निर्भर करता है $$w_{ij}$$, ताकि

यदि न्यूरॉन इनपुट परत के बाद पहली परत में है, $$o_i$$ बस है $$x_i$$.

न्यूरॉन के आउटपुट का व्युत्पन्न $$j$$ इसके इनपुट के संबंध में केवल सक्रियण फलन का आंशिक व्युत्पन्न है:

जो रसद फलन के लिए
 * $$\frac{\partial o_j}{\partial\text{net}_j} = \frac {\partial}{\partial \text{net}_j} \varphi(\text{net}_j) = \varphi(\text{net}_j)(1-\varphi(\text{net}_j)) = o_j(1-o_j)$$

यही कारण है कि पश्चप्रचार के लिए जरूरी है कि एक्टिवेशन फंक्शन डिफरेंशियल फंक्शन हो। (फिर भी, ReLU सक्रियण फलन, जो 0 पर अविभेद्य है, काफी लोकप्रिय हो गया है, उदाहरण के लिए एलेक्सनेट में)

न्यूरॉन आउटपुट लेयर में है या नहीं, इसका मूल्यांकन करने के लिए पहला कारक सीधा है $$o_j = y$$ और

यदि आधे वर्ग त्रुटि का उपयोग हानि फलन के रूप में किया जाता है, तो हम इसे फिर से लिख सकते हैं


 * $$\frac{\partial E}{\partial o_j} = \frac{\partial E}{\partial y} = \frac{\partial}{\partial y} \frac{1}{2}(t - y)^2 = y - t $$

चूंकि, यदि $$j$$ व्युत्पन्न खोजने, नेटवर्क की मनमाना आंतरिक परत में है $$E$$ इसके संबंध में $$o_j$$ कम स्पष्ट है।

मानते हुए $$E$$ सभी न्यूरॉन्स होने वाले इनपुट के साथ फलन के रूप में $$L = \{u, v, \dots, w\}$$ न्यूरॉन से इनपुट प्राप्त करना $$j$$,


 * $$\frac{\partial E(o_j)}{\partial o_j} = \frac{\partial E(\mathrm{net}_u, \text{net}_v, \dots, \mathrm{net}_w)}{\partial o_j}$$

और के संबंध में कुल व्युत्पन्न लेना $$o_j$$व्युत्पन्न के लिए पुनरावर्ती अभिव्यक्ति प्राप्त की जाती है:

इसलिए, के संबंध में व्युत्पन्न $$o_j$$ गणना की जा सकती है यदि आउटपुट के संबंध में सभी डेरिवेटिव $$o_\ell$$ अगली परत के - जो आउटपुट न्यूरॉन के करीब हैं - ज्ञात हैं। [ध्यान दें, यदि सेट में कोई भी न्यूरॉन्स $$L$$ न्यूरॉन से जुड़े नहीं थे $$j$$, वे स्वतंत्र होंगे $$w_{ij}$$ और समन के अंतर्गत संगत आंशिक अवकलज 0 पर लुप्त हो जाएगा।]

स्थानापन्न $$, $$ $$ और $$ में $$ हमने प्राप्त:


 * $$\frac{\partial E}{\partial w_{ij}}

= \frac{\partial E}{\partial o_{j}} \frac{\partial o_{j}}{\partial \text{net}_{j}} \frac{\partial \text{net}_{j}}{\partial w_{ij}}

= \frac{\partial E}{\partial o_{j}} \frac{\partial o_{j}}{\partial \text{net}_{j}} o_i$$
 * $$ \frac{\partial E}{\partial w_{ij}} = o_i \delta_j$$

साथ


 * $$\delta_j

=        \frac{\partial E}{\partial o_j} \frac{\partial o_j}{\partial\text{net}_j} = \begin{cases} \frac{\partial L(o_j, t)}{\partial o_j} \frac {d \varphi(\text{net}_j)}{d \text{net}_j}                   & \text{if } j \text{ is an output neuron,}\\ (\sum_{\ell\in L} w_{j \ell}                            \delta_\ell)\frac {d \varphi(\text{net}_j)}{d \text{net}_j}   & \text{if } j \text{ is an inner neuron.} \end{cases}$$ अगर $$\varphi$$ रसद फलन है, और त्रुटि वर्ग त्रुटि है:


 * $$\delta_j = \frac{\partial E}{\partial o_j} \frac{\partial o_j}{\partial\text{net}_j} = \begin{cases}

(o_j-t_j)o_j(1-o_{j}) & \text{if } j \text{ is an output neuron,}\\ (\sum_{\ell\in L} w_{j \ell} \delta_\ell)o_j(1-o_j) & \text{if } j \text{ is an inner neuron.} \end{cases}$$ भार अपडेट करने के लिए $$w_{ij}$$ ग्रेडिएंट डिसेंट का उपयोग करते हुए, सीखने की दर का चयन करना चाहिए, $$\eta >0$$. भार में परिवर्तन पर प्रभाव को प्रतिबिंबित करने की जरूरत है $$E$$ में वृद्धि या कमी के बारे में $$w_{ij}$$. अगर $$\frac{\partial E}{\partial w_{ij}} > 0$$, में वृद्धि $$w_{ij}$$ बढ़ती है $$E$$; इसके विपरीत, अगर $$\frac{\partial E}{\partial w_{ij}} < 0$$, में वृद्धि $$w_{ij}$$ कम हो जाती है $$E$$. नई $$\Delta w_{ij}$$ पुराने भार में जोड़ा जाता है, और सीखने की दर और ग्रेडिएंट के उत्पाद को गुणा किया जाता है $$-1$$ इसकी गारंटी देता है $$w_{ij}$$ तरह से बदलता है जो हमेशा घटता है $$E$$. दूसरे शब्दों में, तुरंत नीचे समीकरण में, $$- \eta \frac{\partial E}{\partial w_{ij}}$$ हमेशा बदलता है $$w_{ij}$$ इस तरह से कि $$E$$ घटा है:


 * $$ \Delta w_{ij} = - \eta \frac{\partial E}{\partial w_{ij}} = - \eta o_i \delta_j$$

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

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

अनुमान
हानि फलन की गणितीय अभिव्यक्ति को दो शर्तों को पूरा करना चाहिए ताकि इसे संभवत: पश्चप्रचार में उपयोग किया जा सके। पहला यह है कि इसे औसत के रूप में लिखा जा सकता है $E=\frac{1}{n}\sum_xE_x$ त्रुटि कार्यों पर $E_x$, के लिए $n$  व्यक्तिगत प्रशिक्षण उदाहरण, $x$. इस धारणा का कारण यह है कि पश्चप्रचार एल्गोरिथ्म एकल प्रशिक्षण उदाहरण के लिए त्रुटि फलन के ग्रेडिएंट की गणना करता है, जिसे समग्र त्रुटि फलन के लिए सामान्यीकृत करने की आवश्यकता होती है। दूसरी धारणा यह है कि इसे तंत्रिका नेटवर्क से आउटपुट के फलन के रूप में लिखा जा सकता है।

उदाहरण हानि फलन
होने देना $$y,y'$$ में वैक्टर हो $$\mathbb{R}^n$$.

त्रुटि फलन का चयन करें $$E(y,y')$$ दो आउटपुट के बीच अंतर को मापना। मानक विकल्प सदिशों के बीच यूक्लिडियन दूरी का वर्ग है $$y$$ और $$y'$$:$$E(y,y') = \tfrac{1}{2} \lVert y-y'\rVert^2$$त्रुटि कार्य समाप्त हो गया $n$ प्रशिक्षण के उदाहरणों को अलग-अलग उदाहरणों पर हानि के औसत के रूप में लिखा जा सकता है:$$E=\frac{1}{2n}\sum_x\lVert (y(x)-y'(x)) \rVert^2$$

सीमाएं
* त्रुटि फलन के मैक्सिमा और मिनिमा को खोजने के लिए पश्चप्रचार के साथ ग्रेडिएंट डिसेंट की गारंटी नहीं है, किन्तु केवल स्थानीय न्यूनतम है; इसके अलावा, इसे एरर फंक्शन लैंडस्केप में पठार (गणित) को पार करने में परेशानी होती है। उत्तल अनुकूलन | तंत्रिका नेटवर्क में त्रुटि कार्यों की गैर-उत्तलता के कारण होने वाली इस समस्या को लंबे समय से बड़ी कमी माना जाता था, किन्तु वाई एन एल ईसीयू के अंदर  एट अल। तर्क देते हैं कि कई व्यावहारिक समस्याओं में, ऐसा नहीं है।
 * पश्चप्रचार सीखने के लिए इनपुट वैक्टर के सामान्यीकरण की आवश्यकता नहीं होती है; चूँकि, सामान्यीकरण प्रदर्शन में सुधार कर सकता है।
 * पश्चप्रचार के लिए आवश्यक है कि सक्रियण कार्यों के डेरिवेटिव को नेटवर्क डिज़ाइन समय पर जाना जाए।

इतिहास
नेस्टेड डिफरेंशियल फंक्शन फंक्शन के असतत कनेक्टेड नेटवर्क के लिए आधुनिक बैकप्रॉपैगेशन सेप्पो लिन्नैनमा का रिवर्स मोड ऑफ ऑटोमैटिक डिफरेंशियल (1970) है।   यह श्रृंखला नियम का कुशल अनुप्रयोग है (1673 में गॉटफ्रीड विल्हेम लीबनिज द्वारा व्युत्पन्न) ) ऐसे नेटवर्क के लिए। शब्दावली पश्च-प्रसार त्रुटि सुधार 1962 में फ्रैंक रोसेनब्लैट द्वारा प्रस्तुत किया गया था, किन्तु वह यह नहीं जानता था कि इसे कैसे प्रायुक्त किया जाए, चूंकि हेनरी जे. केली के पास पश्चप्रचार का निरंतर अग्रदूत था पहले से ही 1960 में नियंत्रण सिद्धांत के संदर्भ में। स्टोचैस्टिक ग्रेडिएंट डिसेंट द्वारा प्रशिक्षित पहला ध्यान लगा के पढ़ना या सीखना मल्टीलेयर परसेप्ट्रॉन (एमएलपी)। 1967 में शुनिची अमारी द्वारा प्रकाशित किया गया था। कंप्यूटर प्रयोगों में, दो परिवर्तनीय परतों के साथ उनके पांच परत एमएलपी ने गैर-रैखिक रूप से अलग-अलग पैटर्न वर्गों को वर्गीकृत करने के लिए आवश्यक ज्ञान प्रतिनिधित्व सीखा। 1982 में, पॉल वर्बोस ने MLPs के लिए उस तरह से बैकप्रॉपैगैशन प्रायुक्त किया जो मानक बन गया है। 1985 में, डेविड ई. रुमेलहार्ट एट अल। विधि का प्रायोगिक विश्लेषण प्रकाशित किया। इसने बैकप्रोपैगेशन को लोकप्रिय बनाने में योगदान दिया और बहुपरत परसेप्ट्रॉन में अनुसंधान की सक्रिय अवधि प्रारंभ करने में सहायता की। केली (1960) और आर्थर ई. ब्रायसन (1961) विधि के उपर्युक्त निरंतर अग्रदूत को प्राप्त करने के लिए गतिशील प्रोग्रामिंग के सिद्धांतों का उपयोग किया। 1962 में, स्टुअर्ट ड्रेफस ने केवल श्रृंखला नियम पर आधारित सरल व्युत्पत्ति प्रकाशित की।  1973 में, उन्होंने त्रुटि ग्रेडिएंट्स के अनुपात में नियंत्रकों के मापदंडों को अनुकूलित किया। लिनेनमा 1970 विधि के विपरीत,  इन अग्रदूतों ने मानक जैकबियन मैट्रिक्स गणनाओं को चरण से पिछले तक उपयोग किया, न तो कई चरणों में सीधे लिंक को संबोधित किया और न ही नेटवर्क दुर्लभता के कारण संभावित अतिरिक्त दक्षता लाभ।

1985 में, पार्कर द्वारा विधि का भी वर्णन किया गया था। यान लेकन ने 1987 में अपनी पीएचडी थीसिस में तंत्रिका नेटवर्क के लिए बैकप्रॉपैगैशन का वैकल्पिक रूप प्रस्तावित किया। 1993 में, एरिक वान ने बैकप्रॉपैगैशन के माध्यम से अंतरराष्ट्रीय पैटर्न मान्यता प्रतियोगिता जीती। 2000 के दशक के समय यह पक्ष से बाहर हो गया, किन्तु 2010 के दशक में लौटा, सस्ते, शक्तिशाली जीपीयू-आधारित कंप्यूटिंग सिस्टम से लाभान्वित हुआ। यह विशेष रूप से वाक् पहचान, मशीन दृष्टि, प्राकृतिक भाषा प्रसंस्करण, और भाषा संरचना सीखने के अनुसंधान में ऐसा रहा है (जिसमें इसका उपयोग पहले से संबंधित विभिन्न प्रकार की घटनाओं की व्याख्या करने के लिए किया गया है) और दूसरी भाषा सीखना। ).

मानव मस्तिष्क घटना से संबंधित संभावित घटकों जैसे N400 (न्यूरोसाइंस) और P600 (न्यूरोसाइंस) की व्याख्या करने के लिए त्रुटि बैकप्रॉपैगेशन का सुझाव दिया गया है।

यह भी देखें

 * कृत्रिम तंत्रिका नेटवर्क
 * तंत्रिका सर्किट
 * विपत्तिपूर्ण हस्तक्षेप
 * सीखने को इकट्ठा करो
 * ऐडाबूस्ट
 * ओवरफिटिंग
 * तंत्रिका पश्चप्रसार
 * समय के माध्यम से पश्चप्रचार

बाहरी संबंध

 * पश्चप्रचार neural network tutorial at the Wikiversity