梯度的数值逼近

当实施反向传播的时候,有一个测试叫做梯度检验,它的作用是保证反向传播可以正确实施。在写好反向传播公式的时候,你没有办法保证执行反向传播的所有细节全部都是正确的。为了实现逐步梯度检验,我们先来说一下如何对梯度做数值逼近。

2.1.5 梯度检验

如图所示,我们只需记住,双边检测误差更低,精度更高。

那么为什么是平方误差关系呢,这里用到了泰勒展开式,做差所得,我们先来复习一下泰勒展开式的知识

2.1.5 梯度检验

然后这个公式的推导过程如下:
2.1.5 梯度检验

梯度检验

下面我们介绍一下如何用梯度检验来检验反向传播实施是否正确。

2.1.5 梯度检验

如图所示,为了执行梯度检验,我们首先要把所有参数转化成一个巨大的向量数据。

转换完之后那么现在的问题是dθ,或者说是代价函数J的梯度和代价函数之间有什么关系。而这,就是实施梯度检验的过程。英语里通常称为grad check

2.1.5 梯度检验

如图所示,为了执行梯度检验,你要做的就是使用循环操作。

我们执行双边误差检测。由上节课的知识我们应该知道,这个双边误差应该近似于dθ

那么如何定义两个向量是否彼此接近呢?我们一般使用二范数来进行度量。最后我们将向量长度做归一化处理,得到上图中最下面的公式。如果我们得到的这个误差在10的负7次方的数量级,那么非常好,如果这个误差比较大,那么我们就要重新检验了。

关于梯度检验实现的注记

这里我们谈一下在神经网络中实现梯度检验的注意技巧和注意事项

2.1.5 梯度检验

最后的一点说明一下,最好在反复训练神经网络之后再进行梯度检验。

吴教主深度学习和神经网络课程总纲

相关文章:

  • 2021-05-20
  • 2022-12-23
  • 2021-11-24
  • 2021-05-23
  • 2021-04-29
  • 2022-12-23
  • 2021-08-24
  • 2021-11-19
猜你喜欢
  • 2021-10-28
  • 2022-12-23
  • 2021-04-25
  • 2021-09-05
  • 2021-07-16
  • 2021-08-14
  • 2022-01-16
相关资源
相似解决方案