基于梯度爆炸的解决方法: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数据类型转换函数总结
Mar 11 Python
Python构造自定义方法来美化字典结构输出的示例
Jun 16 Python
Python实现将HTML转换成doc格式文件的方法示例
Nov 20 Python
pygame游戏之旅 添加键盘按键的方法
Nov 20 Python
python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)
May 30 Python
pycharm访问mysql数据库的方法步骤
Jun 18 Python
Python 中pandas索引切片读取数据缺失数据处理问题
Oct 09 Python
Django项目中使用JWT的实现代码
Nov 04 Python
Python控制台输出时刷新当前行内容而不是输出新行的实现
Feb 21 Python
使用python批量修改XML文件中图像的depth值
Jul 22 Python
Python文件操作及内置函数flush原理解析
Oct 13 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
Dec 17 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
php实现Linux服务器木马排查及加固功能
2014/12/29 PHP
php实现格式化多行文本为Js可用格式
2015/04/15 PHP
PHP连接MySQL进行增、删、改、查操作
2017/02/19 PHP
js 输出内容到新窗口具体实现代码
2013/05/31 Javascript
动态加载dtree.js树treeview(示例代码)
2013/12/17 Javascript
JS设置网页图片vspace和hspace属性的方法
2015/04/01 Javascript
用JS动态设置CSS样式常见方法小结(推荐)
2016/11/10 Javascript
Bootstrap基本样式学习笔记之表格(2)
2016/12/07 Javascript
jQuery实现的事件绑定功能基本示例
2017/10/11 jQuery
vue获取input输入值的问题解决办法
2017/10/17 Javascript
详解angular如何调用HTML字符串的方法
2018/06/30 Javascript
Bootstrap导航菜单点击后无法自动添加active的处理方法
2018/08/10 Javascript
关于Vue Router中路由守卫的应用及在全局导航守卫中检查元字段的方法
2018/12/09 Javascript
JavaScript代码异常监控实现过程详解
2020/02/17 Javascript
jQuery实现飞机大战小游戏
2020/07/05 jQuery
[39:19]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第二场 11.26
2020/11/30 DOTA
python实现的简单窗口倒计时界面实例
2015/05/05 Python
Python中isnumeric()方法的使用简介
2015/05/19 Python
python字典的常用操作方法小结
2016/05/16 Python
基于Python实现对PDF文件的OCR识别
2016/08/05 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
2017/08/24 Python
如何利用Boost.Python实现Python C/C++混合编程详解
2018/11/08 Python
在Python文件中指定Python解释器的方法
2019/02/18 Python
Python类class参数self原理解析
2020/11/19 Python
Python之字符串的遍历的4种方式
2020/12/08 Python
详解canvas绘制多张图的排列顺序问题
2019/01/21 HTML / CSS
美国最大的存储市场:SpareFoot
2018/07/23 全球购物
小学毕业家长寄语
2014/01/19 职场文书
学习决心书
2014/03/11 职场文书
联欢晚会主持词
2014/03/25 职场文书
安全协议书
2014/04/23 职场文书
国贸专业求职信
2014/06/28 职场文书
工资收入证明
2014/10/07 职场文书
法制主题班会教案
2015/08/13 职场文书
微软Win11什么功能最惊艳? Windows11新功能特性汇总
2021/11/21 数码科技
通过Python把学姐照片做成拼图游戏
2022/02/15 Python