पश्चप्रचार

यंत्र अधिगम में, पश्चप्रचार व्यापक रूप से उपयोग किया जाने वाला कलन विधि है, जो फीडफॉरवर्ड न्यूरल नेटवर्क या अलग-अलग नोड्स के साथ अन्य पैरामीटरयुक्त नेटवर्क को प्रशिक्षित करता है। यह ऐसे नेटवर्क के लिए गॉटफ्रीड विल्हेम लीबनिज श्रृंखला नियम (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$$ द्वारा पीछे से सामने की ओर दर्शाया जाता है।

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


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

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

इनपुट-आउटपुट जोड़ी $$(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$$ आसानी से पुनरावर्ती रूप से गणना की जा सकती है, दाएं से बाएं जा रही है, जैसे:
 * $$\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+2$$ $$W^{l+1}$$ को $$W^{l+2}$$ से गुणा करने के लिए) आगे एक परत $$l$$ में परिवर्तन के हर संभव पथ को ट्रैक करने के अनुरूप है। सक्रियण के डेरिवेटिव के लिए अतिरिक्त गुणन के साथ), जो अनावश्यक रूप से मध्यवर्ती मात्रा की गणना करता है कि कैसे भार परिवर्तन छिपे हुए नोड्स के मूल्यों को प्रभावित करता है।

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

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

अनुकूलन समस्या के रूप में सीखना
पश्चप्रचार एल्गोरिदम की गणितीय व्युत्पत्ति को समझने के लिए, पहले न्यूरॉन के वास्तविक आउटपुट और किसी विशेष प्रशिक्षण उदाहरण के लिए सही आउटपुट के बीच संबंध के बारे में कुछ अंतर्ज्ञान विकसित करने में सहायता मिलती है। दो इनपुट इकाइयों, आउटपुट इकाई और कोई छिपी हुई इकाइयों के साथ साधारण तंत्रिका नेटवर्क पर विचार करें, और जिसमें प्रत्येक न्यूरॉन कृत्रिम न्यूरॉन रैखिक संयोजन (तंत्रिका नेटवर्क पर अधिकांश काम के विपरीत, जिसमें इनपुट से आउटपुट तक मैपिंग गैर-रैखिक है) का उपयोग करता है यह इसके इनपुट का भारित योग है। प्रारंभ में, प्रशिक्षण से पहले, भार अव्यवस्थित विधि से निर्धारित किया जाएगा। फिर न्यूरॉन प्रशिक्षण सेट से सीखता है, जिसमें इस स्थिति में टुपल्स का सेट $$(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$ से बिल्कुल मेल खाता है। इसलिए, आउटपुट को मैपिंग इनपुट की समस्या को अनुकूलन समस्या में कम किया जा सकता है एक ऐसा फलन ढूंढना जो न्यूनतम त्रुटि उत्पन्न करेगा। चूँकि, न्यूरॉन का आउटपुट उसके सभी इनपुट के भारित योग पर निर्भर करता है:


 * $$y=x_1w_1 + x_2w_2,$$

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

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

$$ 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}$$ भार अपडेट करने के लिए ग्रेडिएंट डिसेंट का उपयोग करते हुए, सीखने की दर का चयन करना चाहिए,. भार में परिवर्तन को $$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 में, पॉल वर्बोस ने एमएलपी के लिए उस तरह से पश्चप्रचार प्रायुक्त किया जो मानक बन गया है।

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

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

1985 में, पार्कर द्वारा विधि का भी वर्णन किया गया था। यान लेकन ने 1987 में अपनी पीएचडी थीसिस में तंत्रिका नेटवर्क के लिए पश्चप्रचार का वैकल्पिक रूप प्रस्तावित किया। 1993 में, एरिक वान ने पश्चप्रचार के माध्यम से अंतरराष्ट्रीय प्रारूप मान्यता प्रतियोगिता जीती थी।

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

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

यह भी देखें

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

बाहरी संबंध

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