基于梯度爆炸的解决方法: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中的__slots__缓存资源以节省内存开销的方法
Apr 02 Python
对Python中的@classmethod用法详解
Apr 21 Python
numpy中矩阵合并的实例
Jun 15 Python
基于Python3.6+splinter实现自动抢火车票
Sep 25 Python
python批量获取html内body内容的实例
Jan 02 Python
使用selenium模拟登录解决滑块验证问题的实现
May 10 Python
python2.7的flask框架之引用js&css等静态文件的实现方法
Aug 22 Python
tensorflow实现二维平面模拟三维数据教程
Feb 11 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
Feb 26 Python
Python+OpenCV实现图像的全景拼接
Mar 05 Python
django使用JWT保存用户登录信息
Apr 22 Python
Python如何将函数值赋给变量
Apr 28 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
linux系统下php安装mbstring扩展的二种方法
2014/01/20 PHP
使用PHPExcel操作Excel用法实例分析
2015/03/26 PHP
比较详细的关于javascript 解析json的代码
2009/12/16 Javascript
JQuery 学习笔记01 JQuery初接触
2010/05/06 Javascript
javascript函数中的arguments参数
2010/08/01 Javascript
基于jQuery的倒计时插件代码
2011/05/07 Javascript
jquery实现鼠标拖动图片效果示例代码
2014/01/09 Javascript
javascript中match函数的用法小结
2014/02/08 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
jQuery实现列表自动滚动循环滚动展示新闻
2014/08/22 Javascript
Javascript aop(面向切面编程)之around(环绕)分析
2015/05/01 Javascript
js实现索引图片切换效果
2015/11/21 Javascript
jQuery实现放大镜效果实例代码
2016/03/17 Javascript
Node.js 应用跑得更快 10 个技巧
2016/04/03 Javascript
Bootstrap每天必学之标签页(Tab)插件
2020/08/09 Javascript
Vue.js每天必学之过渡与动画
2016/09/06 Javascript
fullCalendar中文API官方文档
2017/02/07 Javascript
jQuery轻松实现无缝轮播效果
2017/03/22 jQuery
Django与Vue语法的冲突问题完美解决方法
2017/12/14 Javascript
Angular4 组件通讯方法大全(推荐)
2018/07/12 Javascript
ant-design表单处理和常用方法及自定义验证操作
2020/10/27 Javascript
通过C++学习Python
2015/01/20 Python
动感网页相册 python编写简单文件夹内图片浏览工具
2016/08/17 Python
python使用str & repr转换字符串
2016/10/13 Python
python僵尸进程产生的原因
2017/07/21 Python
基于DATAFRAME中元素的读取与修改方法
2018/06/08 Python
Django model反向关联名称的方法
2018/12/15 Python
np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴
2019/11/30 Python
html5教程实现Photoshop渐变色效果
2013/12/04 HTML / CSS
俄罗斯卫浴采暖及维修用品超级市场:Dkrussia
2020/05/12 全球购物
新加坡鲜花速递/新加坡网上花店:Ferns N Petals
2020/08/29 全球购物
测量实习生自我鉴定
2013/09/19 职场文书
通用求职信范文模板分享
2013/12/27 职场文书
总经理助理的职责
2014/03/14 职场文书
2015政治思想表现评语
2015/03/25 职场文书
大学生军训感言
2015/08/01 职场文书