基于梯度爆炸的解决方法: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 修改文件指定行的方法
May 15 Python
基于python脚本实现软件的注册功能(机器码+注册码机制)
Oct 09 Python
对python字典元素的添加与修改方法详解
Jul 06 Python
python 限制函数执行时间,自己实现timeout的实例
Jan 12 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
Jun 26 Python
Python基于OpenCV实现人脸检测并保存
Jul 23 Python
解决python3 requests headers参数不能有中文的问题
Aug 21 Python
python super的使用方法及实例详解
Sep 25 Python
WxPython实现无边框界面
Nov 18 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
Feb 26 Python
PyCharm2019 安装和配置教程详解附激活码
Jul 31 Python
python实现三壶谜题的示例详解
Nov 02 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
最省空间的计数器
2006/10/09 PHP
采用thinkphp自带方法生成静态html文件详解
2014/06/13 PHP
PHP封装的数据库保存session功能类
2016/07/11 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
2017/03/28 PHP
PHP开发的微信现金红包功能示例
2017/06/29 PHP
为数据添加append,remove功能
2006/10/03 Javascript
谷歌浏览器 insertCell与appendChild的区别
2009/02/12 Javascript
javascript 事件绑定问题
2011/01/01 Javascript
js实现双向链表互联网机顶盒实战应用实现
2011/10/28 Javascript
NodeJS Express框架中处理404页面一个方式
2014/05/28 NodeJs
JS实现不使用图片仿Windows右键菜单效果代码
2015/10/22 Javascript
KnockoutJS 3.X API 第四章之数据控制流with绑定
2016/10/10 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
BootStrap自定义popover,点击区域隐藏功能的实现
2018/01/23 Javascript
实现一个Vue自定义指令懒加载的方法示例
2020/06/04 Javascript
openlayers实现地图弹窗
2020/09/25 Javascript
vue 在单页面应用里使用二级套嵌路由
2020/12/19 Vue.js
[15:20]DOTA2-DPC中国联赛 正赛 Elephant vs Aster 选手采访
2021/03/11 DOTA
Python实现list反转实例汇总
2014/11/11 Python
解读Django框架中的低层次缓存API
2015/07/24 Python
python3.5实现socket通讯示例(TCP)
2017/02/07 Python
在python3环境下的Django中使用MySQL数据库的实例
2017/08/29 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
selenium判断元素是否存在的两种方法小结
2020/12/07 Python
python 爬取腾讯视频评论的实现步骤
2021/02/18 Python
CSS3 transition 实现通知消息轮播条
2020/10/14 HTML / CSS
Sephora丝芙兰菲律宾官方网站:购买化妆品和护肤品
2017/04/05 全球购物
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
美国折扣网站:jClub
2017/08/07 全球购物
韩国保养品、日本药妆购物网:小三美日
2018/12/30 全球购物
外贸员简历中的自我评价
2014/03/04 职场文书
技术比武方案
2014/05/19 职场文书
房产转让协议书(2014版)
2014/09/30 职场文书
数学教师个人工作总结
2015/02/06 职场文书
确保工程质量承诺书
2015/04/29 职场文书
nginx 配置缓存
2022/05/11 Servers