基于梯度爆炸的解决方法: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中urllib2模块的8个使用细节分享
Jan 01 Python
Python计算两个日期相差天数的方法示例
May 23 Python
详解appium+python 启动一个app步骤
Dec 20 Python
python 限制函数调用次数的实例讲解
Apr 21 Python
Flask之flask-session的具体使用
Jul 26 Python
Python中常用的内置方法
Jan 28 Python
详解python中TCP协议中的粘包问题
Mar 22 Python
django一对多模型以及如何在前端实现详解
Jul 24 Python
Python中注释(多行注释和单行注释)的用法实例
Aug 28 Python
python有序查找算法 二分法实例解析
Feb 18 Python
Scrapy实现模拟登录的示例代码
Feb 21 Python
python 安全地删除列表元素的方法
Mar 16 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
WordPress开发中短代码的实现及相关函数使用技巧
2016/01/05 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
2016/11/16 PHP
PHP 信号管理知识整理汇总
2017/02/19 PHP
laravel5.4生成验证码的实例讲解
2017/08/05 PHP
Gambit vs CL BO3 第一场 2.13
2021/03/10 DOTA
基于jQuery的简单九宫格实现代码
2012/08/09 Javascript
技术男用来对妹子表白的百度首页
2014/07/23 Javascript
简单方法判断JavaScript对象为null或者属性为空
2014/09/26 Javascript
javascript实现根据身份证号读取相关信息
2014/12/17 Javascript
JavaScript判断用户是否对表单进行了修改的方法
2015/03/18 Javascript
轻松掌握JavaScript中的Math object数学对象
2016/05/26 Javascript
Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
2016/06/07 Javascript
js querySelector() 使用方法
2016/12/21 Javascript
mac上node.js环境的安装测试
2017/07/03 Javascript
js使用generator函数同步执行ajax任务
2017/09/05 Javascript
canvas基础绘制-绚丽倒计时的实例
2017/09/17 Javascript
JS设计模式之惰性模式(二)
2017/09/29 Javascript
实例讲解vue源码架构
2019/01/24 Javascript
vue 中 命名视图的用法实例详解
2019/08/14 Javascript
Node.js API详解之 tty功能与用法实例分析
2020/04/27 Javascript
Python文件操作,open读写文件,追加文本内容实例
2016/12/14 Python
关于numpy中np.nonzero()函数用法的详解
2017/02/07 Python
python 全局变量的import机制介绍
2017/09/07 Python
python模拟表单提交登录图书馆
2018/04/27 Python
Python爬虫将爬取的图片写入world文档的方法
2018/11/07 Python
python实现Virginia无密钥解密
2019/03/20 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
2019/09/04 Python
Python列表去重复项的N种方法(实例代码)
2020/05/12 Python
python实现AHP算法的方法实例(层次分析法)
2020/09/09 Python
CSS3为背景图设置遮罩并解决遮罩样式继承问题
2020/06/22 HTML / CSS
德国高品质男装及配饰商城:Cultizm(Raw Denim原色牛仔裤)
2018/04/16 全球购物
青奥会口号
2014/06/12 职场文书
酒店人事专员岗位职责
2015/04/07 职场文书
幼儿园家长工作总结2015
2015/04/25 职场文书
golang判断key是否在map中的代码
2021/04/24 Golang
shell进度条追踪指令执行时间的场景分析
2022/06/16 Servers