sgd Momentum Vanilla SGD RMSprop adam等优化算法在寻找函数最值的应用

1\sgd

q=q-a*gt

a是学习率  gt是函数的梯度

也就是沿着梯度的反方向得到下降最快的,最快能找到函数的最值

2 Momentum

sgd Momentum Vanilla SGD RMSprop adam等优化算法在寻找函数最值的应用

然后q=q-mt

 

3 RMSprop

sgd Momentum Vanilla SGD RMSprop adam等优化算法在寻找函数最值的应用

 

4 Adam

Adam[6] 可以认为是 RMSprop 和 Momentum 的结合。和 RMSprop 对二阶动量使用指数移动平均类似,Adam 中对一阶动量也是用指数移动平均计算。

sgd Momentum Vanilla SGD RMSprop adam等优化算法在寻找函数最值的应用

然后求解的过程为 

将mt=mt/(1-b1)

vt=vt/(1-b2)

q=q-mt*a/(sqrt(vt+0.000000001))

5  Adam解耦权重衰减

sgd Momentum Vanilla SGD RMSprop adam等优化算法在寻找函数最值的应用

def train_adam_jieou():
    cur_x = 40
    cur_y = 20
    lr = 0.003
    r_x, r_y = 0, 0 #伪代码中的r
    v_x, v_y = 0, 0 #伪代码中的r
    alpha = 0.9
    alpha1 = 0.99
    shuaijian=0.9999
    eps = 1e-16
    track_x = [cur_x]
    track_y = [cur_y]
    for i in range(10):
        grad_x, grad_y = grad(cur_x, cur_y)
        
        r_x = alpha * r_x + (1 - alpha) * (shuaijian*grad_x)
        v_x = alpha1 * v_x + (1 - alpha1) * (shuaijian*grad_x * grad_x)
        r_x =r_x /( 1-alpha )
        v_x =v_x /( 1-alpha1 )
        cur_x =cur_x -(r_x / (np.sqrt(v_x) + eps)) * lr-lr*shuaijian*cur_x
        
        r_y = alpha * r_y + (1 - alpha) * (shuaijian*grad_y)
        v_y = alpha1 * v_y + (1 - alpha1) * (shuaijian*grad_y * grad_y)
        r_y =r_y /( 1-alpha )
        v_y =v_y /( 1-alpha1 )
        cur_y =cur_y- (r_y / (np.sqrt(v_y) + eps)) * lr-lr*shuaijian*cur_y
        
        #r_y = alpha * r_y + (1 - alpha) * (grad_y * grad_y)
        #cur_y -= (grad_y / (np.sqrt(r_y) + eps)) * lr
        track_x.append(cur_x)
        track_y.append(cur_y)
    #print(track_x)
    #print(track_y)
    return track_x, track_y
 

6  adam修正指数移动均值

sgd Momentum Vanilla SGD RMSprop adam等优化算法在寻找函数最值的应用

 sgd Momentum Vanilla SGD RMSprop adam等优化算法在寻找函数最值的应用

sgd Momentum Vanilla SGD RMSprop adam等优化算法在寻找函数最值的应用 

sgd Momentum Vanilla SGD RMSprop adam等优化算法在寻找函数最值的应用 

sgd Momentum Vanilla SGD RMSprop adam等优化算法在寻找函数最值的应用 

sgd Momentum Vanilla SGD RMSprop adam等优化算法在寻找函数最值的应用

sgd Momentum Vanilla SGD RMSprop adam等优化算法在寻找函数最值的应用

 

 

 

 

上一篇:AudioFlinger Thread中的几个buffer


下一篇:数学-剪绳子-JZ67