基于梯度爆炸的解决方法: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 相关文章推荐
用yum安装MySQLdb模块的步骤方法
Dec 15 Python
LRUCache的实现原理及利用python实现的方法
Nov 21 Python
python 字符串和整数的转换方法
Jun 25 Python
python+Splinter实现12306抢票功能
Sep 25 Python
如何通过Python实现标签云算法
Jul 02 Python
django数据库自动重连的方法实例
Jul 21 Python
处理Selenium3+python3定位鼠标悬停才显示的元素
Jul 31 Python
Django Form and ModelForm的区别与使用
Dec 06 Python
Python Pandas 转换unix时间戳方式
Dec 07 Python
使用python求解二次规划的问题
Feb 29 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
May 10 Python
总结Python使用过程中的bug
Jun 18 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中VC6、VC9、TS、NTS版本的区别与用法详解
2013/10/26 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
2014/05/08 PHP
PHP正则表达式之捕获组与非捕获组
2015/11/06 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
jquery模拟按下回车实现代码
2011/09/20 Javascript
JS中引用百度地图并将百度地图的logo和信息去掉
2013/09/29 Javascript
ExtJS[Desktop]实现图标换行示例代码
2013/11/17 Javascript
JQuery中绑定事件(bind())和移除事件(unbind())
2015/02/27 Javascript
jquery实现右键菜单插件
2015/03/29 Javascript
PHP结合jQuery实现红蓝投票功能特效
2015/07/22 Javascript
Javascript验证方法大全
2015/09/21 Javascript
js+canvas绘制五角星的方法
2016/01/28 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
2017/03/22 Javascript
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
vue.js实现图书管理功能
2019/09/24 Javascript
DWR内存兼容及无法调用问题解决方案
2020/10/16 Javascript
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
python实现系统状态监测和故障转移实例方法
2013/11/18 Python
python正则表达式的使用
2017/06/12 Python
Python标准库之itertools库的使用方法
2017/09/07 Python
浅谈Python peewee 使用经验
2017/10/20 Python
pycharm 在windows上编辑代码用linux执行配置的方法
2018/10/27 Python
Python实现的大数据分析操作系统日志功能示例
2019/02/11 Python
python的debug实用工具 pdb详解
2019/07/12 Python
Python实现直方图均衡基本原理解析
2019/08/08 Python
Pytorch提取模型特征向量保存至csv的例子
2020/01/03 Python
Django全局启用登陆验证login_required的方法
2020/06/02 Python
python批量修改文件名的示例
2020/09/27 Python
css3 盒模型以及box-sizing属性全面了解
2016/09/20 HTML / CSS
预订从美国飞往印度的机票:MyTicketsToIndia
2017/05/19 全球购物
英国川宁茶官方网站:Twinings茶
2019/05/21 全球购物
公务员年总结的自我评价
2013/10/25 职场文书
中学生检讨书范文
2014/11/03 职场文书
领导干部学习心得体会
2016/01/23 职场文书
晚会开幕词范文
2016/03/04 职场文书
JS数组方法some、every和find的使用详情
2021/10/05 Javascript