基于梯度爆炸的解决方法: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编程实现粒子群算法(PSO)详解
Nov 13 Python
Python读取MRI并显示为灰度图像实例代码
Jan 03 Python
Python打印输出数组中全部元素
Mar 13 Python
python实现类之间的方法互相调用
Apr 29 Python
判断python字典中key是否存在的两种方法
Aug 10 Python
Python3 hashlib密码散列算法原理详解
Mar 30 Python
python判断正负数方式
Jun 03 Python
Django缓存Cache使用详解
Nov 30 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
Dec 15 Python
python将YUV420P文件转PNG图片格式的两种方法
Jan 22 Python
matplotlib 范围选区(SpanSelector)的使用
Feb 24 Python
python 调用js的四种方式
Apr 11 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
ThinkPHP实现ajax仿官网搜索功能实例
2014/12/02 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
用js实现小球的自由移动代码
2013/04/22 Javascript
js调试系列 控制台命令行API使用方法
2014/06/18 Javascript
学习JavaScript设计模式(策略模式)
2015/11/26 Javascript
如何动态加载外部Javascript文件
2015/12/02 Javascript
js实现商城星星评分的效果
2015/12/29 Javascript
关于验证码在IE中不刷新的快速解决方法
2016/09/23 Javascript
easyui combobox开启搜索自动完成功能的实例代码
2016/11/08 Javascript
学习vue.js条件渲染
2016/12/03 Javascript
js实现适合新闻类图片的轮播效果
2017/02/05 Javascript
高效的jQuery代码编写技巧总结
2017/02/22 Javascript
详解html-webpack-plugin插件(用法总结)
2018/09/12 Javascript
深入理解使用Vue实现Context-Menu的思考与总结
2019/03/09 Javascript
利用JS判断元素是否为数组的方法示例
2021/01/08 Javascript
Python中用altzone()方法处理时区的教程
2015/05/22 Python
Python使用Matplotlib实现雨点图动画效果的方法
2017/12/23 Python
python爬虫爬取网页表格数据
2018/03/07 Python
Python解析并读取PDF文件内容的方法
2018/05/08 Python
python实现简单名片管理系统
2018/11/30 Python
Python脚本按照当前日期创建多级目录
2019/03/01 Python
布隆过滤器的概述及Python实现方法
2019/12/08 Python
python中K-means算法基础知识点
2021/01/25 Python
一款基于css3麻将筛子3D翻转特效的实例教程
2014/12/31 HTML / CSS
Hertz荷兰:荷兰和全球租车
2018/01/07 全球购物
巴西葡萄酒商店:Divvino
2020/02/22 全球购物
关于迟到的检讨书
2014/01/26 职场文书
给学校的建议书
2014/03/12 职场文书
文明村镇申报材料
2014/05/06 职场文书
会计学毕业生求职信
2014/06/25 职场文书
群众路线四风问题整改措施
2014/09/27 职场文书
国庆庆典邀请函
2015/02/02 职场文书
2015年前台文员工作总结
2015/05/18 职场文书
出生证明范本
2015/06/15 职场文书
小学六一儿童节活动开幕词
2016/03/04 职场文书
创业开店,这样方式更合理
2019/08/26 职场文书