反向传播算法中,逐级向前计算delta公式的由来

本文围绕反向传播算法展开,结合吴恩达机器学习第九章编程练习,介绍了相关公式及证明。详细阐述了多元复合函数偏导链式法则,通过极坐标与直角坐标的例子说明其应用,还提及偏导数链式法则是全微分链式法则的延续,并给出相关理解链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


 

 

 

学习吴恩达机器学习第九章反向传播编程练习,有这样一个公式:\delta^{(2)}=(\Theta^{(2)})^{T}\delta^{(3)}.*g'(z^{(2)})


它的证明在博客反向传播算法(过程及公式推导)中可以找到 https://www.cnblogs.com/wlzy/p/7751297.html

原博客证明内容过多,这里节选关键部分:

首先,将第层第个神经元中产生的错误(即实际值与预测值之间的误差)定义为:

(由后往前,计算每一层神经网络产生的误差):

 

 

        推导过程:

公式中通过求和号 \sum 把偏导数的分量相加,是以求多元复合函数偏导链式法则为依据的。

求多元复合函数偏导链式法则的理解可参考博客:多变量微积分笔记4——全微分与链式法则

https://www.cnblogs.com/bigmonkey/p/8350943.html

在极坐标中,x = x(u, v), y = (u, v),退化成直角坐标后f = f(x, y),如何求f的全微分?这与之前不同,将x,y代入f后仍有两个变量,这需要连续使用链式法则:

  x和y的微小改变导致了f的改变,而u和v的微小改变有导致了x和y的改变,这样传递的结果就变成了u和v的微小改变有导致了f的改变。

  需要注意的是最终结果中的偏导:

其中f_{x}f_{y}x_{u}x_{v}y_{u}y_{v}不是函数,是偏导的数值。把它们理解成系数,就能理解其中系数的交换和重新结合,最终凑成全微分公式的形式,从中得到偏导数链式法则。

其实偏导数链式法则,就是全微分链式法则的延续,df可以分解为dx+dy,dx可以再分解为du+dv,dy可以再分解为du+dv,......,如果u或者v还是其他变量的函数,那么du或者dv还可以再分解。(我为了方便书写和理解没有带系数,比如dx+dy其实是dx与dy分别乘以系数的代数和,8dx+7dy,8和7分别是系数,如果我用另一个字母表示系数,那么看着更混乱)

 

以下链接可以帮助理解偏导数的求解过程,它利用的原理还是偏导数链式法则。

 

另外,关于\delta^{(3)} = a^{(3)}-y,是这样得来的:

因为,

通过导数运算得到:

 

\frac{\partial C}{\partial a}=a-y

但是少了一项\frac{\partial a}{\partial z},也就是sigmoid的导数,不应该忽略这一项。也许是因为这里的C是方差,而实际的C(J)是:

 


https://zhuanlan.zhihu.com/p/25081671

详解反向传播算法(上)

 

 

 

机器学习:一步步教你理解反向传播方法

 

https://yongyuan.name/blog/back-propagtion.html

 

反向传播算法(过程及公式推导)

https://blog.csdn.net/u014313009/article/details/51039334

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值