学习笔记-利用Gradient Checking检查神经网络模型

利用Gradient Checking检查神经网络模型

在搭建完神经网络模型后怎样判断中间有没有bug呢?这就要用到Gradient Checking了。
一般前向传播网络的计算不容易出错,而在计算反向传播网络的过程中很容易出错。
学过微积分的都知道,某一点的导数可以用以下公式近似表示:

Jθ=limε0J(θ+ε)J(θε)2ε

这里写图片描述
因此我们只要比较近似值(gradapprox)与实际值(grad)之间的差异,如果差异足够小,就可以认为反向传播网络的计算过程没有问题。
计算差异的公式如下:
difference=gradgradapprox2grad2+gradapprox2

(在python里,上述公式的分子可以用np.linalg.norm(…)计算获得)

Gradient Checking的运行很好时,我们不必在训练的每次迭代过程都使用它,只要测试几次没有问题就可以不用管了。Gradient Checking实际是在证明反向传播算法计算的梯度与我们定义的梯度估计值很相近。

注:如无特殊说明,以上所有图片均截选自吴恩达在Coursera开设的神经网络系列课程的讲义。

猜你喜欢

转载自blog.csdn.net/maryyu8873/article/details/78512904