clip\_gradient
来源:互联网 发布:psp模拟器 mac 编辑:程序博客网 时间:2024/05/16 08:44
作者:Gein Chen
链接:https://www.zhihu.com/question/29873016/answer/77647103
来源:知乎
clip_gradient 的引入是为了处理gradient explosion的问题。当在一次迭代中权重的更新过于迅猛的话,很容易导致loss divergence。clip_gradient 的直观作用就是让权重的更新限制在一个合适的范围。
具体的细节是,
1.在solver中先设置一个clip_gradient
2.在前向传播与反向传播之后,我们会得到每个权重的梯度diff,这时不像通常那样直接使用这些梯度进行权重更新,而是先求所有权重梯度的平方和sumsq_diff,如果sumsq_diff > clip_gradient,则求缩放因子scale_factor = clip_gradient / sumsq_diff。这个scale_factor在(0,1)之间。如果权重梯度的平方和sumsq_diff越大,那缩放因子将越小。
3.最后将所有的权重梯度乘以这个缩放因子,这时得到的梯度才是最后的梯度信息。
这样就保证了在一次迭代更新中,所有权重的梯度的平方和在一个设定范围以内,这个范围就是clip_gradient.
最后补充一点,这个参数多用于LSTM中,而我这个回答是基于jeffdonahue 在caffe Pull的RNN 代码,你可以在 jeffdonahue/caffe at recurrent · GitHub 中的src/caffe/solver.cpp里看到具体的实现代码。
0 0
- clip\_gradient
- clip
- clip
- code clip
- android clip
- clip属性
- Canvas---clip
- clip 学习
- CLIR CLIP
- clip属性
- background-clip
- clip介绍
- Pixhawk之姿态解算篇(6)_Gradient Descent
- Paper Clip 上手指南
- Dashboard与Web Clip
- clip协议实现
- Geoprocessor.Clip(裁剪)
- 关于clip的运算
- Struts2输入校验(二)非配置文件校验
- Struts1 DispatchAction类
- 开博客第一天
- android反编译-smali语法
- More Effective C++ --- 理解临时对象
- clip\_gradient
- python学习笔记 使用元类
- 正则表达式个符号的含义与基本内容
- Java并发编程:Lock
- java 多态的含义及特征
- 算法-选择排序
- nodejs中require、exports与module.exports的区分
- JZOJ 4826. 【NOIP2016提高A组集训第2场10.30】小澳的葫芦
- 由一道题目总结幂级数的收敛域问题