码迷,mamicode.com
首页 > 其他好文 > 详细

什么是梯度爆炸?怎么解决?

时间:2019-06-30 17:27:30      阅读:422      评论:0      收藏:0      [点我收藏+]

标签:出现   方法   乘法   区域   解决   裁剪   使用   str   误差   

梯度的衰减是有连续乘法导致的,如果在连续乘法中出现一个非常大的值,最后计算出的梯度就会很大,就想当优化到断崖处是,会获得一个很大的梯度值,如果以这个梯度值进行更新,那么这次迭代的步长就很大,可能会一下子飞出了合理的区域。

解决的方法是:

梯度裁剪:

把沿梯度下降方向的步长限制在一个范围之内,计算出来的梯度的步长的范数大于这个阈值的话,就以这个范数为基准做归一化,使这个新的的梯度的范数等于这个阈值就行了。

梯度检查:

梯度计算很不稳定,使用梯度检查来检查梯度计算是否出了错误。

通过解析的梯度值与计算得到的梯度值进行对比计算相对误差,如果这个误差小于一个很小的下限值,那么就没什么问题。

 

什么是梯度爆炸?怎么解决?

标签:出现   方法   乘法   区域   解决   裁剪   使用   str   误差   

原文地址:https://www.cnblogs.com/pacino12134/p/11110304.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!