CS231n作业笔记2.3:优化算法Momentum, RMSProp, Adam
2016-12-29 21:13
489 查看
CS231n简介
详见 CS231n课程笔记1:Introduction。本文都是作者自己的思考,正确性未经过验证,欢迎指教。
作业笔记
本部分实现的是Momentum,RMSProb, Adam三种优化算法,优化算法是用于从随机点出发,逐渐找到局部最优点的算法。关于各种优化算法的详细介绍,请参考CS231n课程笔记6.1:优化迭代算法之SGD,Momentum,Netsterov Momentum,AdaGrad,RMSprop,Adam。1. Momentum
方程:v = mu*v - learning_rate*dx x += v
代码:
v = v*config['momentum']-config['learning_rate']*dw next_w = w + v
2. RMSProp
方程:cache = cache*decay_rate + (1-decay_rate)*dx*dx x -= learning_rate * dx/(sqrt(cache)+1e-7)
代码:
config['cache'] = config['cache']*config['decay_rate'] + (1-config['decay_rate'])*dx*dx next_x = x - config['learning_rate']*dx/np.sqrt(config['cache']+config['epsilon'])
3. Adam
此算法需要注意的是ppt中的方程是错误的,正确方法如下图,主要区别在于bias correction的部分,不更新m和v,详见Adam: A Method for Stochastic Optimization还要注意t的更新,此部分也没有显示的写在ppt里。
代码:
m = config['m']*config['beta1']+(1-config['beta1'])*dx v = config['v']*config['beta2']+(1-config['beta2'])*dx*dx config['t'] += 1 mb = m / (1 - config['beta1']**config['t']) vb = v / (1 - config['beta2']**config['t']) next_x = x - config['learning_rate']*mb/(np.sqrt(vb)+config['epsilon']) config['m'] = m config['v'] = v
相关文章推荐
- CS231n课程笔记6.1:优化迭代算法之SGD,Momentum,Netsterov Momentum,AdaGrad,RMSprop,Adam
- 深度学习笔记:优化方法总结(BGD,SGD,Momentum,AdaGrad,RMSProp,Adam)
- 深度学习笔记:优化方法总结(BGD,SGD,Momentum,AdaGrad,RMSProp,Adam)
- 深度学习之momentum,RMSprop,Adam优化算法
- 深度学习笔记:优化方法总结(BGD,SGD,Momentum,AdaGrad,RMSProp,Adam)
- 【deeplearning.ai笔记第二课】2.2 优化算法(动量梯度下降,RMSprop,adam)
- 深度学习笔记:优化方法总结(BGD,SGD,Momentum,AdaGrad,RMSProp,Adam)
- 深度学习笔记:优化方法总结(BGD,SGD,Momentum,AdaGrad,RMSProp,Adam)
- SGD,Momentum,AdaGrad,RMSProp,Adam等优化算法发展历程
- 转:深度学习笔记:优化方法总结(BGD,SGD,Momentum,AdaGrad,RMSProp,Adam)
- 神经网络优化方法总结:SGD,Momentum,AdaGrad,RMSProp,Adam
- 优化方法总结(BGD,SGD,Momentum,AdaGrad,RMSProp,Adam)
- 优化方法总结:SGD,Momentum,AdaGrad,RMSProp,Adam
- 梯度下降与优化方法(BGD & SGD & Momentum & AdaGrad & RMSProp & Adam)
- CS231n作业笔记1.3:SVM的误差函数以及反向传播(非向量及向量算法)
- 深度学习优化算法Momentum RMSprop Adam
- 深度学习笔记6:神经网络优化算法之从SGD到Adam
- 深度学习——优化器算法Optimizer详解(BGD、SGD、MBGD、Momentum、NAG、Adagrad、Adadelta、RMSprop、Adam)
- 【深度学习】深入理解优化器Optimizer算法(BGD、SGD、MBGD、Momentum、NAG、Adagrad、Adadelta、RMSprop、Adam)
- SGD、Momentum、RMSprop、Adam区别与联系