Deep Leaning 学习笔记之改善神经网络的超参数(1.3)——梯度检验

1 梯度检验

1.1 介绍

梯度检验是用来检查反向传播中,梯度下降的方向是否正确,可以帮助你找出反向传播代码中的错误

1.2 方法

采用双侧梯度检验
例如 g ( θ ) = f ( θ ) = θ 3 g(θ) = f(θ)=θ^3 g(θ)=f(θ)=θ3
检验: f ( θ + E ) − f ( θ − E ) 2 E ≈ g ( θ ) \frac{f(θ+E)-f(θ-E)}{2E} ≈ g(θ) 2Ef(θ+E)f(θE)g(θ)

1.3 使用方法

将 各 种 参 数 : W 1 , b 1 , W 2 , b 2 , W 3 , b 3 . . . . . . W L , b L 转 换 为 向 量 θ , 首 尾 相 接 将各种参数:W^1,b^1,W^2,b^2,W^3,b^3......WL,bL转换为向量θ,首尾相接 W1,b1,W2,b2,W3,b3......WL,bLθ
将 各 种 参 数 : d W 1 , d b 1 , d W 2 , d b 2 , d W 3 , d b 3 . . . . . . d W L , d b L 转 换 为 向 量 θ , 首 尾 相 接 将各种参数:dW^1,db^1,dW^2,db^2,dW^3,db^3......dW^L,db^L转换为向量θ,首尾相接 dW1,db1,dW2,db2,dW3,db3......dWL,dbLθ
则J(θ)= J(θ1,θ2,θ3…)
在这里插入图片描述

1.4 使用建议

在这里插入图片描述

  • 不要在训练的时候用,只在调试的时候用
  • 如果检查出来,dθ approx 和 dθ的值不同,具体区分一下看是在 i的值取值多少的时候导致,从而检查
  • 记住要正则化
  • 不要和随机失活一起用。你可以把keep-prob和dropout设为1.0 然后打开dropout 希望我对于dropout的使用是正确的
  • 还有一些别的事情可以做 比如修正那些舍弃节点的模式 并且使用梯度检验来检查它们的模式是否正确 但实际上我通常不这样做 所以我的建议是 关掉随机失活(dropout) 使用梯度检验来检查你的算法 在没有dropout的情况下至少是正确的 然后再打开dropout 最后的这个内容有些微妙 虽然很少发生 但并不是没有可能 你对于梯度下降的使用是正确的 同时w和b在随机初始化的时候 是很接近0的数 但随着梯度下降的进行 w和b有所增大 也许你的反向传播算法 在w和b接近0的时候是正确的 但是当w和b变大的时候 算法精确度有所下降 所以虽然我不经常使用它 但是你可以尝试的一个方法是 在随机初始化的时候 运行梯度检验 然后训练网络一段时间 那么w和b 将会在0附近摇摆一段时间 即很小的随机初始值 在进行几次训练的迭代后 再运行梯度检验
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值