反向传播是在神经网络的运算过程中起到优化参数作用的一个算法。
在学习反向传播算法之前,需要先弄清楚前向传播。
<-----------------------------------------前向传播求损失,反向传播求误差--------------------------------------->
由图可见,输入层和权重经过线性变化之后会得到Z(即图中的Z1和Z2),在隐藏层经过激活函数(如sigmoid函数)得到A(即图中的a1和a2),第二层隐藏层也是如此计算,最后得到输出值,这个过程就叫做前向传播。
得到的输出值与实际的值y存在误差,为了缩小这个误差,反向传播算法闪亮登场!!!
反向传播算法 Backpropagation algorithm
首先明确算法的目的,反向传播算法是为了根据输出值与实际值的误差,反向求出每个神经元的误差,然后根据这个误差来调整权重,使得在前向传播时误差减小。
上图中z-y就是输出值与实际值存在的误差,接着反向求每个神经元的误差: