BP算法

假设我们有一个固定样本集 $\textstyle { (x^{(1)}, y^{(1)}), \ldots, (x^{(m)}, y^{(m)}) }$,它包含 $\textstyle m$ 个样例。我们可以用批量梯度下降法来求解神经网络。具体来讲,对于单个样例 $\textstyle (x,y)$,其代价函数为:

这是一个(二分之一的)方差代价函数。给定一个包含 $\textstyle m$ 个样例的数据集,我们可以定义整体代价函数为:

以上关于$\textstyle J(W,b)$定义中的第一项是一个均方差项。第二项是一个规则化项(也叫权重衰减项),其目的是减小权重的幅度,防止过度拟合。

[注:通常权重衰减的计算并不使用偏置项 $\textstyle b^{(l)}_i$,比如我们在 $\textstyle J(W, b)$ 的定义中就没有使用。一般来说,将偏置项包含在权重衰减项中只会对最终的神经网络产生很小的影响。如果你在斯坦福选修过CS229(机器学习)课程,或者在YouTube上看过课程视频,你会发现这个权重衰减实际上是课上提到的贝叶斯规则化方法的变种。在贝叶斯规则化方法中,我们将高斯先验概率引入到参数中计算MAP(极大后验)估计(而不是极大似然估计)。]

链式法则

自动求梯度

扩展阅读