这里简单记录一下神经网络bp反向传播的过程
首先最普通的神经网络,抛开最后输出的损失函数,以及激活层,其隐藏层之间其实就是很多个线性回归y=wx+b组成的
那么,思考下线性回归的权重更新方式,直接计算法,和梯度下降(我们做机器学习或者深度学习,肯定是迭代过程,为梯度下降,而且当维度太高时,直接计算法会导致维度爆炸无法计算)。那么我们可不可以在多层的神经网络里面延续梯度下降的方式来对权重进行更新呢?当然是肯定的,那么我们对神经网络每一层进行刨析。
网络结构和推导见图片
由于本人较懒,网络大概结构如图所示
首先由最后一个隐藏层----->输出层有
net2------->Oj--------->Eo1
由net2-----Oj为激活函数,假设为sigmoid
由Oj------->Eo1 为损失函数,假设为MSe
那么就很容易理解了,我们是要更新权重Wij,假设现在我们要更新net1----->net2这个边上的权重
那么联系线性回归的权重更新公式,可以推导出由图所示。自此,我们可以得到这个边上的权重的更新值,然后可以对这个权重进行更新。
那么由隐藏层net1继续往前如何更新呢?也就是所谓的误差如何传导呢?其实很简单,在图片中有进行解释,其实更新这个隐藏层的权重,无非是有了俩条路径1,和路径2,传过来的,我们可以把这俩个理解为,是俩个加和的函数,每个函数中有我们要求导的参数即可。
BP反向传播
最新推荐文章于 2022-09-08 11:05:55 发布