基于梯度爆炸的解决方法: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 相关文章推荐
5种Python单例模式的实现方式
Jan 14 Python
浅谈python抛出异常、自定义异常, 传递异常
Jun 20 Python
Django自定义manage命令实例代码
Feb 11 Python
解决Python的str强转int时遇到的问题
Apr 09 Python
python特性语法之遍历、公共方法、引用
Aug 08 Python
python+opencv实现高斯平滑滤波
Jul 21 Python
深入解析Python小白学习【操作列表】
Mar 23 Python
tensorflow 获取所有variable或tensor的name示例
Jan 04 Python
GDAL 矢量属性数据修改方式(python)
Mar 10 Python
Pandas之缺失数据的实现
Jan 06 Python
python 经纬度求两点距离、三点面积操作
Jun 03 Python
微信小程序调用python模型
Apr 21 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
无线电广播与收音机发展的历史回眸
2021/03/02 无线电
PHP date函数常用时间处理方法
2015/05/11 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
2016/01/19 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
许愿墙中用到的函数
2006/10/07 Javascript
学习YUI.Ext 第二天
2007/03/10 Javascript
js变量以及其作用域详解
2020/07/18 Javascript
jQuery实现form表单reset按钮重置清空表单功能
2012/12/18 Javascript
javascript alert乱码的解决方法
2013/11/05 Javascript
iframe窗口高度自适应的实现方法
2014/01/08 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
2015/12/02 Javascript
jQuery实现布局高宽自适应的简单实例
2016/05/28 Javascript
JavaScript+Java实现HTML页面转为PDF文件保存的方法
2016/05/30 Javascript
Node.js 日志处理模块log4js
2016/08/28 Javascript
Node.js读写文件之批量替换图片的实现方法
2016/09/07 Javascript
JS中input表单隐藏域及其使用方法
2017/02/13 Javascript
js实现图片左右滚动效果
2017/02/27 Javascript
vue.js计算属性computed用法实例分析
2018/07/06 Javascript
vue 实现在函数中触发路由跳转的示例
2018/09/01 Javascript
Javascript通过控制类名更改样式
2019/05/24 Javascript
[02:38]2018DOTA2亚洲邀请赛赛前采访-VGJ.T
2018/04/03 DOTA
[01:03:37]Secret vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
微信跳一跳python辅助软件思路及图像识别源码解析
2018/01/04 Python
实例详解Matlab 与 Python 的区别
2019/04/26 Python
详解用python生成随机数的几种方法
2019/08/04 Python
将keras的h5模型转换为tensorflow的pb模型操作
2020/05/25 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
中科前程Java笔试题
2016/11/20 面试题
资产经营总监岗位职责
2013/12/04 职场文书
快餐店的创业计划书范文
2014/01/29 职场文书
舞蹈比赛获奖感言
2014/02/04 职场文书
2014年镇党建工作汇报材料
2014/11/02 职场文书
2014年学校党建工作总结
2014/11/11 职场文书
2015年党务工作者个人工作总结
2015/10/22 职场文书