反向传播算法理解与记录
反向传播(Backpropagation,BP)是用于最小化多层神经网络或深度神经网络中代价函数的神经网络术语。最小化代价函数通常使用梯度下降(gradient descend),而反向传播算法则是神经网络中有效计算输出关于网络各层参数梯度的一种基于链式求导法则的算法。
下面是依据coursera上Andrew Wu的斯坦福机器学习课程中关于BP算法的介绍和相关笔记做的记录。
1 目标
要利用梯度下降法最小化代价函数
2 理解思路
关于BP算法大致思路的理解可以用下图进行直观的认识
图片来源:LeCun Y, Bengio Y, Hinton G. Deep learning[J]. Nature, 2015, 521(7553): 436-444.
上图中子图c是一个含有两个隐层的神经网络的前向传播过程,每一层的神经元输出通过线性加权组合作为下一层各神经元的输入,然后经过**函数f(z)得到该层神经元的输出,依次递推。
而子图d显示的则是该网络的反向传播过程,图中E表示的就是代价函数。从后往前(图中从上到下)利用链式求导法则(即复合函数求导法则)依次计算E关于各层神经元输出y(前向)和输入z(前向)的梯度直至输入层