梯度检测简述

梯度检测是用于验证神经网络反向传播算法中梯度计算正确性的方法。尽管训练时损失函数可能看似下降,但细微的编程错误可能导致最终结果误差增大。通过比较近似梯度与计算梯度,梯度检测能确保算法的准确性。然而,由于其高计算开销,通常只在调试阶段使用。
摘要由CSDN通过智能技术生成

概述
实现神经网络的反向传播算法含有许多细节,在编程实现中很容易出现一些微妙的bug,但往往这些bug并不会影响你的程序运行,而且你的损失函数看样子也在不断变小。但最终,你的程序得出的结果误差将会比那些无bug的程序高出一个数量级


当我们对一个较为复杂的模型(例如神经网络)使用梯度下降算法时,可能会存在一些不容易察觉的错误(比如难以发现的bug),虽然在训练过程中,代价函数在变小,但最终的结果可能并不是最优解。

所以我们采用一种叫梯度检测的思想,它可以通过估计梯度(或导数)的近似值来估算我们的梯度下降算法算出的梯度(或导数)是否为正确的。

梯度检测的原理


梯度检测会估计梯度(或导数)值,然后和你程序计算出来的梯度(导数)的值
进行对比,以判断程序算出的梯度(导数)值是否正确


这里写图片描述

上图中,我们关注θ0点的函数的导数,即θ0点切线(图中蓝线)的斜率,现在我们在θ0−ε和θ0+ε两点连一条线(图中红线),我们发现红线的斜率和蓝线斜率很相似。
红线的斜率可以用以下式子表示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值