您的位置:首页 > 其它

UFLDL Tutorial深度学习基础——学习总结:稀疏自编码器(三)梯度检验与高级优化

2018-03-14 21:13 621 查看
梯度检验:该方法对数值求导进行检验,可以验证求导代码是否正确。
最小化以

为自变量的目标函数


在一维情况下,一次迭代的梯度下降公式为:


假设已经计算得到

,那我们要怎样验证g的实现是否正确?
导数的数学定义:

则根据上式,我们可以用下面的数值验证公式计算两端是否一样:



为一个向量,我们定义

,其中,

是第i个基向量(维度和

相同,在第i行是“i”而其他行是“0”).类似地,

。然后我们对每个i检查下式是否成立,进而验证

的正确性:

当用反向传播算法求解神经网络时,正确算法实现会得到:

利用上述数值检验(numerically checking)方法计算J(W,b)的导数,然后验证



是否能够给出正确的求导结果。高级优化:a.使用梯度下降,并能够自动调整学习速率

,以得到合适的步长值,最终使

能够快速收敛到一个局部最优解。b.可以寻找一个Hessian矩阵(Hessian matrix)的近似,得到最佳步长值,使用该步长值(step-size)能够更快地收敛到局部最优(和牛顿法(Newton's method)类似)。c.L-BFGS和共轭梯度(conjugate gradient)算法通常比梯度下降法快很多。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐