欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

2.1.5 梯度检验

发布时间:2025/4/16 编程问答 41 豆豆
生活随笔 收集整理的这篇文章主要介绍了 2.1.5 梯度检验 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

梯度的数值逼近

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

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

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

然后这个公式的推导过程如下:

梯度检验

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

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

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

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

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

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

关于梯度检验实现的注记

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

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

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

总结

以上是生活随笔为你收集整理的2.1.5 梯度检验的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。