Backprop 算法的推导
给定样本集合 ,我们可以用批量梯度下降法来求解神经网络。对于单个样本 ,方差代价函数是
定义整体代价函数为
其中第一项是均方差项,第二项是正则(权重衰减)项(对偏置项 导正则化作用不大,所以省略)。
梯度下降法中,每次迭代更新参数规则
其中 的偏导数为
反向传播的思路:
-
给定样本 ,先前向传导计算出网络中所有激活值
-
对 层的第一个节点 ,计算其残差
- 对最终输出节点,残差 等于激活值与样本的差
- 对隐藏节点 ,基于节点残差的加权平均值计算 ,以 作为输入
-
计算偏导数(根据链式法则,例子见 [2])
用矩阵 - 向量表示法重写以上算法,用 表示向量乘积,BP 算法步骤为
- 进行前馈传导计算,得到 的激活值
- 对输出层(第 层),计算
- 对隐藏层 的各层,计算
- 计算偏导数值
参考
[1] UFLDL 反向传导算法 URL
[2] Principles of training multi-layer neural network using backpropagation URL