参数的更新
来源:互联网 发布:c语言 生成随机数 编辑:程序博客网 时间:2024/06/03 16:54
参数的更新有许多方法;
1.Vanilla update
最简单的更新形式。假定
# Vanilla updatex+=-leaning_rate*dx
其中learning_rate是学习率。
2Mumentum update
在深度网络中,通常能够得到更好的收敛速率。这种更新方法来源于优化问题的物理学上的观点。特别的,损失函数可以解释为山丘的高(也可以说成是势能,因为U=mgh,其中U表示重力势能,m是质量, g是重力加速度, h是高度,
因为粒子上的力与势能的梯度相关(例如
Vanilla update 中的更新过程,将梯度直接整合位置(位置的更新直接使用了当前位置的梯度),Mumentum update中:梯度仅直接影响到速度,速度反过来才影响到位置。
#Momentum updatev=mu*v-learning_rate*dx #integrate velocityx+=v #intergrate position
上面的两个公式中,我们可以看到,第一个公式描述了梯度
Nesterov Momentum
Nesterov Momentum与Momentum update轻微的不同。对于凸函数,其具有更强的理论上的收敛保障,并且在实际应用中,一般略优于标准的Momentum 。
Nesterov Momentum的核心思想是,当前参数矢量在某个位置mu*v
推进参数矢量。那么我们可以试想一下,如果我们将要计算梯度,那么我们可将其未来的近似位置x+mu*v
看作是“预先”,这个点是我们将要达到的点的附近。因此,我们可以计算x+mu*v
处的梯度来替代“旧”位置x处的梯度。
上图(左):红色的原点表示当前位置x,绿色的箭头表示向量:mu*v
,红色的箭头表示向量:-learning_rate * dx
,蓝色的箭头表示向量: v
,最终的位置为:红色的点+向量v,移动到蓝色箭头处。
上图(右):红色的原点表示当前位置x,绿色的箭头表示向量:mu*v
,红色的箭头表示向量:-learning_rate * d(x+mu*v)
,蓝色的箭头表示向量: v
,最终的位置为:红色的点+向量v,移动到蓝色箭头处。
即更新过程描述如下:
x_ahead = x + mu * v# evaluate dx_ahead (the gradient at x_ahead instead of at x)v = mu * v - learning_rate * dx_aheadx += v
但是,在实际应用中,人们希望其更新表达形式类似于vanilla SGD 或者momenum update,即修改为下面的形式。
v_prev = v # back this upv = mu * v - learning_rate * dx # velocity update stays the samex += -mu * v_prev + (1 + mu) * v # position update changes form
http://cs231n.github.io/neural-networks-3/
- 参数的更新
- 参数更新
- 妙用Windows 更新程序的安装参数
- 神经网络更新参数的几种方法
- struts2 提交的action的参数数据不更新
- caffe的finetuning是如何更新网络参数的?
- caffe的finetuning是如何更新网络参数的
- 安装Windows安全更新补丁可使用的参数说明
- 黑苹果的一些常见参数 (陆续更新)
- 带parameter参数的批量插入和更新
- SQLite C-API带参数的查询/更新/删除操作
- django:通用视图-UpdateView更新有参数的form类
- 关于低功耗蓝牙的连接参数更新
- LoadRunner 的参数化数据更新方式解析
- 关于低功耗蓝牙的连接参数更新
- MySQL索引统计信息更新相关的参数
- 神经网络中的Softmax是如何更新参数的
- 关于低功耗蓝牙的连接参数更新
- Java并发控制synchronized与AtomicInteger类
- Android 投射工具和录屏工具
- Client-ServerRSA加解密通信方案-Client端(C#)(二)
- Android多文件断点续传(四)——处理网络状态变化
- 总结下Oracle 中的Insert用法
- 参数的更新
- Android打包过程
- (个人笔记)JAVA6和7的不同编码风格导致的错误
- python中对字典(dict)的迭代
- mysql 全面优化
- linux下devicetree中常用的of函数
- hiho#10362 最长回文子串
- jQuery.validator 验证规则详解
- python os模块 常用命令