پس‌انتشار
ساختار ریاضی الگوریتم

برای سلول عصبی  c ورودیی که از سلول عصبی  p به این سلول وارد می‌شود را با  b_{pc} نشان می‌دهیم. وزن این ورودی  w_{pc} است و مجموع ضرب ورودی‌ها با وزنهایشان را با  a_{c} نمایش می‌دهیم، یعنی  a_{c}=\sum w_{pc}\times b_{pc}. حال باید بر روی  a_{c} یک تابع غیر خطی اعمال کنیم، این تابع را  \theta _{c} می‌نامیم و خروجی آن را با  b_{c} نمایش می‌دهیم به این معنی که  b_{c}=\theta _{c}(a_{c}). به همین شکل خروجی‌هایی که از سلول عصبی  c خارج شده و به سلول  n وارد می‌شوند را با  b_{cn} نمایش می‌دهیم و وزن آن را با  w_{cn} . اگر تمام وزنهای این شبکه عصبی را در مجموعه‌ای به اسم  W بگنجانیم، هدف در واقع یادگیری این وزنهاست. اگر ورودی ما  x باشد و خروجی  y و خروجی شبکه عصبی ما  h_{W}(x)، هدف ما پیدا کردن  W است به قسمی که برای همه داده‌ها  y و  h_{W}(x) به هم خیلی نزدیک شوند. به عبارت دیگر هدف کوچک کردن یک تابع ضرر بر روی تمام داده هاست، اگر داده‌ها را با  (x_{1},y_{1}),\cdots ,(x_{n},y_{n}) و تابع ضرر را با  l نشان دهیم هدف کمینه کردن تابع پایین بر حسب  W است:
Q(W)=\sum _{i=1}^{n}l\left(h_{W}(x_{i}),\,\,y_{i}\right)
به عنوان مثال اگر مسئله رگرسیون است برای  l می‌توانیم خطای مربعات را در نظر بگیریم و اگر مسئله دسته‌بندی است برای  l می‌شود منفی لگاریتم بازنمایی را استفاده کرد.
برای به‌دست آوردن کمینه  Q(W) می‌توان از روش گرادیان کاهشی استفاده کرد، به این معنی که گرادیان تابع را در حساب کرد و کمی در خلاف جهت آن حرکت کرد و این کار را آنقدر ادامه داد تا تابع ضرر خیلی کوچک شود. روش بازگشت به عقب در واقع روشی برای پیدا کردن گرادیان تابع است.
حال فرض کنیم می‌خواهیم گرادیان تابع  Q(W) را نسبت به وزن  w_{pc} به‌دست بیاوریم. برای این کار نیاز به قاعده زنجیری در مشتق‌گیری داریم. قاعده زنجیری به این شکل کار می‌کند: اگر تابعی داشته باشیم به اسم  f که وابسته به سه ورودی  u،  v و  w باشد و هرکدام از این سه ورودی به نوبه خود وابسته به  t باشند، مشتق  f به  t به این شکل محاسبه می‌شود:
{\frac {\partial f\left(u(t),v(t),w(t)\right)}{\partial t}}={\frac {\partial f}{\partial u}}{\frac {\partial u}{\partial t}}+{\frac {\partial f}{\partial v}}{\frac {\partial v}{\partial t}}+{\frac {\partial f}{\partial w}}{\frac {\partial w}{\partial t}}
با استفاده از این قاعده زنجیری روش بازگشت به عقب را به این شکل دنبال می‌کنیم:
\delta _{c}={\frac {\partial Q}{\partial a_{c}}}
a_{c}=\sum _{p}w_{pc}\times b_{pc}
b_{c}=\theta _{c}(a_{c})
\delta _{c}={\frac {\partial Q}{\partial a_{c}}}={\frac {\partial Q}{\partial b_{c}}}{\frac {\partial b_{c}}{\partial a_{c}}}={\frac {\partial Q}{\partial b_{c}}}\times {\acute {\theta }}_{c}(a_{c})=\left(\sum _{n}{\frac {\partial Q}{\partial a_{n}}}{\frac {\partial a_{n}}{\partial b_{c}}}\right)\times {\acute {\theta }}_{c}(a_{c})=\left(\sum _{n}w_{cn}\delta _{n}\right)\times {\acute {\theta }}_{c}(a_{c})
{\frac {\partial Q}{\partial w_{pc}}}={\frac {\partial Q}{\partial a_{c}}}{\frac {\partial a_{c}}{\partial w_{pc}}}=\delta _{c}b_{p}
همان‌طور که در خط پیشین دیدیم برای به‌دست آوردن گرادیان نسبت به  w_{pc} به دو مقدار نیاز داریم ورودی به سلول عصبی  c از سلول عصبی  p که همان  b_{p} است و راحت به‌دست می‌آید و  \delta _{c} که از روش بازگشتی به‌دست می‌آید و بستگی به آن  \delta ‌هایی لابه بعد دارد که سلول  cبه آن‌ها وصل است، به‌طور دقیقتر  \delta _{c}=\left(\sum _{n}w_{cn}\delta _{n}\right)\times {\acute {\theta }}_{c}(a_{c}).
روش بازگشتی برای به‌دست آوردن  \delta ‌ها به این شکل کار می‌کند که ابتدا  \delta  را برای سلول‌های لایه خروجی حساب می‌کنیم، و بعد لایه‌ها را به نوبت پایین می‌روم و برای هر سلول  \delta  آن را با ترکیت  \delta ‌های لایه‌های بالایی آن طبق فرمول حساب می‌کنیم. محاسبه کردن  \delta  برای لایه خروجی آسان است و مستقیماً با مشتق گرفتن از  Q به‌دست می‌آید.