网上看到这句话“中期以及现在最普及的就是引入动量因子:
Δxt=ρΔxt−1−η⋅gt
ρ为动量因子,通常设为0.9
在更新中引入0.9这样的不平衡因子,使得:
★在下降初期,使用前一次的大比重下降方向,加速。
★在越过函数谷面时,异常的学习率,会使得两次更新方向基本相反,在原地”震荡“
此时,动量因子使得更新幅度减小,协助越过函数谷面。
★在下降中后期,函数面局部最小值所在的吸引盆数量较多,一旦陷进吸引盆当中,
Gradient→0
Gradient→0
,但是前后两次更新方向基本相同。
此时,动量因子使得更新幅度增大,协助跃出吸引盆。”
我想问的是:
1、Δxt是否就是每次训练的负梯度,那gt又是代表什么。
2、“谷面”和“吸引盆”感觉好像一个意思,这个有啥区别。
3、Gradient代表什么
迭代正常写是x[t+1] = x[t] - η * g[t],η是学习率,g[t]是梯度。
转换下:Δx[t] = x[t+1] - x[t] = - η * g[t]
加入动量(momentum)后的更新公式为
Δx[t] = - η * g[t] + ρ * Δx[t-1]
如楼上所说,吸引盆(这个名字谁起的)和谷面应该都是局部最优解的意思。
比较直观的作用是:
1)假如现在x[t]靠近局部最优解,那么不带动量的Δx[t-1]和Δx[t]的方向应该是一致的,加上动量的话,就会加强Δx[t]在这个方向的更新力度,有助于
帮助跳出局部最优解;
2)训练刚开始时,参数离局部最优解(或全局)位置都比较远,这个时候学习率和梯度都比较大,Δx[t-1]和Δx[t]的方向很大概率时不一致的,不加动量的话,x[t]容易乱跳,而加上动量,Δx[t-1]能够抵消一部分Δx[t],缓解这种现象。
以上是我自己的理解。。。
g是Gradient,梯度。gt就是第t次的梯度。Δxt是第t次的x的变化量
谷面相当于局部最优点,但不是全局最优点,吸引盆和谷面是一个意思。