标签:alpha1 cur track RMSprop sgd alpha shuaijian grad SGD
1\sgd
q=q-a*gt
a是学习率 gt是函数的梯度
也就是沿着梯度的反方向得到下降最快的,最快能找到函数的最值
2 Momentum
然后q=q-mt
3 RMSprop
4 Adam
Adam[6] 可以认为是 RMSprop 和 Momentum 的结合。和 RMSprop 对二阶动量使用指数移动平均类似,Adam 中对一阶动量也是用指数移动平均计算。
然后求解的过程为
将mt=mt/(1-b1)
vt=vt/(1-b2)
q=q-mt*a/(sqrt(vt+0.000000001))
5 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修正指数移动均值
标签:alpha1,cur,track,RMSprop,sgd,alpha,shuaijian,grad,SGD 来源: https://blog.csdn.net/tcuuuqladvvmm454/article/details/120587448
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。