反向传播梯度求解推导
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反向传播梯度求解推导相关的知识,希望对你有一定的参考价值。
参考技术A 反向传播是一场以误差(Error)为主导的反向传播(Back Propagation)运动,目的在于优化神经网络中的参数(权重,偏置)。是第 层的第 个神经元连接第 层的第 个神经元的权重
表示第 层的第 个节点的偏置,所有连接到该节点的链接都公用该偏置
表示第 层第 个节点的输入:即
向量化之后得到:
前向传播公式:
反向传播是为了计算出 和 其中 表示损失函数
最后一层误差:
向量形式:
任意层的误差:
假设我们已知第 层的误差,通过 回传到第 层
权重梯度
解释: 根据 层输入与输出关系
由 得
然后需要将此处X替换成前一层的输出,即为这一层的输入 替换后即得到公式3
同理得到
为了让自己记住而已,每次看完都会忘记,,,,详细可参考 http://neuralnetworksanddeeplearning.com/chap2.html
讲的很好哟
Torch反向传播时出错或者梯度为NaN的问题排查
参考技术A 师兄问到的backward时出现NaN和错误不好定位的问题,感觉有必要记录一下解决方案
Automatic differentiation package - torch.autograd — PyTorch 1.9.0 documentation
使用 with torch.autograd.detect_anomaly(): 包裹传播过程检测错误
粗暴的方法,直接查看模型各节点的梯度是否计算正确
以上是关于反向传播梯度求解推导的主要内容,如果未能解决你的问题,请参考以下文章