每天五分钟机器学习:基于梯度检验判断神经网络梯度计算的准确性

本文重点:

当我们对一个较为复杂的模型(例如神经网络)使用梯度下降算法时,可能会存在一些不容易察觉的错误,虽然代价看上去在不断减小,但最终的结果可能并不是最优解。如何判断神经网络的反向传播或者梯度下降算法运行正确,我们可以使用梯度检验算法,这种方法的思想是通过估计梯度值来检验我们计算的导数值是否真的是我们所要求的。

单变量的代价函数

 

对梯度的估计采用的方法是在代价函数上沿着切线的方向选择离两个非常近的点,然后计算两个点的平均值用以估计梯度。我们计算出在 θ-ε 处和 θ+ ε的代价值J(θ)(ε是一个非常小的值,通常选取 0.001),然后求两个代价的平均,用以估计在θ处的代价值的导数。

此时的神经网络的代价函数如上所示,θ0处的导数,也就是上图中的蓝色直线的斜率,我们可以看到蓝色直线和红色直线的斜率很相似。所以我们可以认为J(θ)在θ处的导数几乎可以使用红色直线的斜率表示,红色直线的斜率为:

 

用这种方式估计出来导数之后,然后将起和反向传播算法求出的导数比较,如果基本相等,就表示反向传播算法运行正常。

多变量的代价函数

前面我们考虑了θ是一个实数的情况θ∈R,更普通的情况是θ是一个向量参数θ∈Rn࿰

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幻风_huanfeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值