基于梯度爆炸的解决方法:clip gradient


Posted in Python onFebruary 04, 2020

1. 梯度爆炸的影响

在一个只有一个隐藏节点的网络中,损失函数和权值w偏置b构成error surface,其中有一堵墙,如下所示

基于梯度爆炸的解决方法:clip gradient

损失函数每次迭代都是每次一小步,但是当遇到这堵墙时,在墙上的某点计算梯度,梯度会瞬间增大,指向某处不理想的位置。如果我们使用缩放,可以把误导控制在可接受范围内,如虚线箭头所示

2. 解决梯度爆炸问题的方法

通常会使用一种叫”clip gradients “的方法. 它能有效地权重控制在一定范围之内.

算法步骤如下。

首先设置一个梯度阈值:clip_gradient

在后向传播中求出各参数的梯度,这里我们不直接使用梯度进去参数更新,我们求这些梯度的l2范数

然后比较梯度的l2范数||g||与clip_gradient的大小

如果前者大,求缩放因子clip_gradient/||g||, 由缩放因子可以看出梯度越大,则缩放因子越小,这样便很好地控制了梯度的范围

最后将梯度乘上缩放因子便得到最后所需的梯度

基于梯度爆炸的解决方法:clip gradient

3. 有无clip_gradient在GRU模型中的结果比较

无clip_gradient

可以很清楚地发现在2000次迭代出发生了梯度爆炸,最终影响了训练的效果。  

基于梯度爆炸的解决方法:clip gradient

有clip_gradient

可以发现clip_gradient在前期有效了控制了梯度爆炸的影响,使得最终的loss能下降到满意的结果

基于梯度爆炸的解决方法:clip gradient

以上这篇基于梯度爆炸的解决方法:clip gradient就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用python实现拉钩网上的FizzBuzzWhizz问题示例
May 05 Python
在Linux下使用Python的matplotlib绘制数据图的教程
Jun 11 Python
深入浅析Python2.x和3.x版本的主要区别
Nov 30 Python
python3爬虫获取html内容及各属性值的方法
Dec 17 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
Feb 11 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
Sep 02 Python
springboot配置文件抽离 git管理统 配置中心详解
Sep 02 Python
基于Python实现船舶的MMSI的获取(推荐)
Oct 21 Python
如何更改 pandas dataframe 中两列的位置
Dec 27 Python
Python 字典一个键对应多个值的方法
Sep 29 Python
Django中的DateTimeField和DateField实现
Feb 24 Python
Python操作CSV格式文件的方法大全
Jul 15 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
Feb 04 #Python
python求一个字符串的所有排列的实现方法
Feb 04 #Python
Windows上安装tensorflow  详细教程(图文详解)
Feb 04 #Python
有关Tensorflow梯度下降常用的优化方法分享
Feb 04 #Python
python dumps和loads区别详解
Feb 04 #Python
Python2和Python3中@abstractmethod使用方法
Feb 04 #Python
python如何求数组连续最大和的示例代码
Feb 04 #Python
You might like
php获取地址栏信息的代码
2008/10/08 PHP
php漏洞之跨网站请求伪造与防止伪造方法
2013/08/15 PHP
php Calender(日历)代码分享
2014/01/03 PHP
详解PHP中foreach的用法和实例
2016/10/25 PHP
php查询及多条件查询
2017/02/26 PHP
Chrome中模态对话框showModalDialog返回值问题的解决方法
2010/05/25 Javascript
JavaScript中的this实例分析
2011/04/28 Javascript
基于Node.js的强大爬虫 能直接发布抓取的文章哦
2016/01/10 Javascript
Javascript实现图片不间断滚动的代码
2016/06/22 Javascript
Bootstrap导航条学习使用(二)
2017/02/08 Javascript
详解HTML5 使用video标签实现选择摄像头功能
2017/10/25 Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
2018/01/25 jQuery
JavaScript解析机制与闭包原理实例详解
2019/03/08 Javascript
react高阶组件添加和删除props
2019/04/26 Javascript
js模拟F11页面全屏显示
2019/09/17 Javascript
jQuery实现简单日历效果
2020/07/05 jQuery
vue中v-for循环选中点击的元素并对该元素添加样式操作
2020/07/17 Javascript
解决vue.js中settimeout遇到的问题(时间参数短效果不稳定)
2020/07/21 Javascript
[14:51]DOTA2 HEROS教学视频教你分分钟做大人-卓尔游侠
2014/06/13 DOTA
Python使用pandas处理CSV文件的实例讲解
2018/06/22 Python
详解Python字典小结
2018/10/20 Python
通过pykafka接收Kafka消息队列的方法
2018/12/27 Python
python3.7简单的爬虫实例详解
2019/07/08 Python
PYTHON绘制雷达图代码实例
2019/10/15 Python
基于Python实现拆分和合并GIF动态图
2019/10/22 Python
使用Python制作新型冠状病毒实时疫情图
2020/01/28 Python
django中ImageField的使用详解
2020/12/21 Python
ghd法国官方网站:英国最受欢迎的美发工具品牌
2019/04/18 全球购物
新西兰最大的连锁超市:Countdown
2020/06/04 全球购物
六一儿童节主持词
2014/03/21 职场文书
《窗前的气球》教学反思
2014/04/07 职场文书
村级个人对照检查材料
2014/08/22 职场文书
运动会班级口号霸气押韵
2015/12/24 职场文书
Nginx 502 Bad Gateway错误原因及解决方案
2021/03/31 Servers
python b站视频下载的五种版本
2021/05/27 Python
mysql 联合索引生效的条件及索引失效的条件
2021/11/20 MySQL