梯度检测

        今天看Andrew Ng的视频,讲到了用梯度检测来验证反向传播算法的正确性,并参考了一些大牛的博客(nxf_rabbit75),加深了 对梯度检测的理解,然后趁热打铁,总结一下

一、梯度检测概述 

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

      当我们对一个较为复杂的模型(例如神经网络)使用梯度下降法时可能会存在一些不易察觉的错误(比如难以发现的bug),虽然在训练过程中代价函数在变小,但最终的结果可能并不是最优解。所以我们采用了一种叫梯度检测的思想,他可以通过估计梯度(或导数)的近似值来估算我们的梯度下降法算出的梯度(或导数)是否是正确的。

二、梯度检测原理

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

      考虑我们想要最小化以 θ 为自变量的目标函数 J(θ)(θ 可以为标量和可以为矢量,在 Numpy 的编程环境下,处理是一样的),迭

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值