优化算法中的“带冲量”是什么意思?

  统计/机器学习 数值计算 最优化 人工神经网络    浏览次数:4670        分享
2

优化算法中的“带冲量”是什么意思?英文是momentum。怎么理解“冲量”以及“带冲量”?


好像还有一种说法是“动量”,但是我也不是很清楚。


谢谢!

 

稻草人lyd   2018-09-01 01:09



   1个回答 
7

momentum就是说每次更新时也考虑前一步的变化。

比如我们熟悉的SGD,迭代步骤是这样的

$$\beta_{i+1}=\beta_i+u_i$$

$u_i$是每次调整的大小,对于SGD,$u_i=-\alpha \nabla_i$。

对于SGD with momentum,迭代公式中的$u_i$就成了

$$u_i = -\alpha \nabla_i + \nu u_{i-1}$$

其中$\nu$是momentum参数,越大就代表过去的梯度权重更大。

用图表示的话,绿色表示之前的迭代方向$u_{i-1}$,红色表示当前根据梯度计算的方向,蓝色就是实际更新$u_i$。

SofaSofa数据科学社区DS面试题库 DS面经

蘑菇蘑菇   2018-09-04 21:34



  相关讨论

线性回归有精确的解析解为什么还要用梯度下降得到数值解?

最速下降法与梯度下降法

随机梯度下降(sgd)的收敛问题

Adam优化算法

用SGD时陷入局部最优解的解决方法

随机平均梯度法(Stochasitc Average Gradient)和随机梯度下降(SGD)有什么区别

Newton–Raphson和牛顿法区别?

为什么梯度的反方向是函数下降最快的方向?

RMSProp的直白解释

nesterov’s momentum和momentum的区别?

  随便看看

python里怎么求一个矩阵的秩?

pandas.DataFrame里的loc和iloc什么区别?

在jupyter后台进程没有shutdown的notebook一直会占用内存吗?

怎么在已有的dataframe中插入一个新列(Pandas)

如果数据不是正态分布,能用3sigma原则剔除异常值吗?