基于梯度爆炸的解决方法: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 06 Python
python元组操作实例解析
Sep 23 Python
Python list操作用法总结
Nov 10 Python
python常见排序算法基础教程
Apr 13 Python
Python使用getpass库读取密码的示例
Oct 10 Python
python3实现逐字输出的方法
Jan 23 Python
python实现nao机器人身体躯干和腿部动作操作
Apr 29 Python
使用python爬取微博数据打造一颗“心”
Jun 28 Python
解决echarts中饼图标签重叠的问题
May 16 Python
基于django micro搭建网站实现加水印功能
May 22 Python
Keras load_model 导入错误的解决方式
Jun 09 Python
python 识别登录验证码图片功能的实现代码(完整代码)
Jul 03 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命名空间(Namespace)简明教程
2014/06/11 PHP
zen cart实现订单中增加paypal中预留电话的方法
2016/07/12 PHP
php注册审核重点解析(数据访问)
2017/05/23 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
javascript replace方法与正则表达式
2008/02/19 Javascript
Tinymce+jQuery.Validation使用产生的BUG
2010/03/29 Javascript
jQuery学习笔记(3)--用jquery(插件)实现多选项卡功能
2013/04/08 Javascript
JS代码同步文本框内容的实例方法
2013/07/12 Javascript
js 自动播放的实例代码
2013/11/19 Javascript
谈谈impress.js初步理解
2015/09/09 Javascript
全面解析Bootstrap表单使用方法(表单样式)
2015/11/24 Javascript
微信小程序开发(一) 微信登录流程详解
2017/01/11 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
vue.js实现请求数据的方法示例
2017/02/07 Javascript
关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法
2017/03/02 Javascript
学习Vue组件实例
2018/04/28 Javascript
Vue.js中的组件系统
2019/05/30 Javascript
粗略分析Python中的内存泄漏
2015/04/23 Python
深入探究Python中变量的拷贝和作用域问题
2015/05/05 Python
详解Python的Django框架中的templates设置
2015/05/11 Python
利用Tkinter和matplotlib两种方式画饼状图的实例
2017/11/06 Python
解决django服务器重启端口被占用的问题
2019/07/26 Python
python 数据生成excel导出(xlwt,wlsxwrite)代码实例
2019/08/23 Python
解决windows下python3使用multiprocessing.Pool出现的问题
2020/04/08 Python
pandas分组聚合详解
2020/04/10 Python
Python3 pywin32模块安装的详细步骤
2020/05/26 Python
pytorch加载自己的图像数据集实例
2020/07/07 Python
美国婴童服装市场上的领先品牌:Carter’s
2018/02/08 全球购物
意大利宠物用品购物网站:Bauzaar
2018/09/15 全球购物
XD健身器材:Kevlar球、Crossfit健身球
2019/03/26 全球购物
Microsoft Advertising美国:微软搜索广告
2019/05/01 全球购物
腾讯公司的一个sql题
2013/01/22 面试题
服务中心夜班服务员岗位职责
2013/11/27 职场文书
班主任远程培训研修日志
2015/11/13 职场文书
《植树问题》教学反思
2016/03/03 职场文书
Python合并多张图片成PDF
2021/06/09 Python