一. 前情提要
神经网络一种求解W权值的算法,分为正向传播(FP)求损失,反向传播(BP)回传误差,根据误差值求解权值W梯度更新其权重,反复迭代,直到找到W最优解(不考虑局部最优)。
本次使用单层神经网络进行推导,隐藏层与输出层的激活函数使用Sigmoid,损失使用均方差MSE,使用梯度下降优化损失函数并求解权值W。
单层神经网络结构如下:其中H(x)为激活函数Sigmoid,S(x,w)为求和函数,x1,x2为样本输入,b为截距(暂不参与计算,权值计算与w一样),w1~w12为权值。HidNeuro1,HidNeuro2,HidNeuro3,分别为隐层的三个神经元,OutNeuro1,OutNeuro2为输出层神经元。Neurout1,Neurout2,Neurout3为隐层输出,Out1,Out2为预测值。Rout1,Rout2为真实值。
二.FP正向传播
在进行第一次迭代时,算法会随机初始化一组w权值,w服从正态分布。
对于隐层神经元HidNeuro1,HidNeuro2,HidNeuro3:
通过激活函数Sigmoid非线性转换后:
Neurout1 = H() =
Neurout2 = H() =
Neurout3 = H() =
对于输出层神经元OutNeuro1,OutNeuro2
通过Sigmoid转换后:
则输出层两个神经元误差分别为:
总损失为:
三.BP反向传播
现在使用梯度下降优化,使得损失在足够小的情况下,更新w权值。因此会对w求偏导。假定梯度下降学习率为
。
以为例,来推导他的更新过程。
要求解的目标为:
从分式看出,与
无直接关系,但是
与
有关,而
与
有关,在
与
有关,最后
与
有关。根据链式求导法则,能推出:
化简后得出:
算出梯度后,则可更新:
同理可得出隐层到输出层的其他权值。
对于输入层到隐层的权值该怎么求偏导呢?根据图上观察,
与
有关,
与Neurout1有关,然后Neurout1与
有关,最后
与
分别相关。同理根据链式求导法则,得出:
化简后得出:
即可更新: