概述
在神经网络中有几种常用的优化求解算法,在这里主要记录一下各个算法的优势和缺点,对选择提供一些依据。
常用算法
- sgd:随机梯度下降法。每次从训练集中随机选择batch_size个样本进行正向传播计算平均loss,再进行反向传播更新权重参数。
- Momentum SGD和Nesterov Momentum(下面统称动量法):增加了动量项。
- Adagrad:在学习率上做文章。固定的学习率除以每个参数的历史更新累加值。
- Adadelta:直接对每次更新的△W进行改进,学习率由一个除法得到,分母是历史的梯度累加,分子是历史的参数更新累加值。
- RMSprop:Hinton提出的。固定的学习率除以参数的历史更新累加值。看起来与Adagrad很像,但是RMSprop是按权重累加,解决了Adagrad越加越大的问题。
- Adam:同时使用了动量和梯度的平方和加权。
算法优缺点
算法名称 | 优点 | 缺点 |
---|---|---|
sgd | 每次都能直奔目标点,不走弯路 | 收敛速度慢,容易陷入局部最优点 |
动量法 | 收敛速度比较快,具备跳出局部最优点的能力 | 由于动量比较大,因此经常容易冲过目标点,然后再往回进行收敛 |
Adagrad | 对不同参数的学习率区别对待,前期收敛速度比较快,不会陷入局部最优点 | 训练后期学习率过小导致收敛速度变慢 |
Adadelta | 不需要人工给定学习率,收敛速度快,不会陷入局部最优点 | 容易冲过全局最优点 |
RMSprop | Hinton已经给出学习率,收敛速度快,不会陷入局部最优点 | 容易冲过全局最优点 |
实际使用中,可以选择目前最常用的几个,如RMSprop、Adam等,效果一般不错。不过据说Adam会比同样达到最优的sgd在性能上低1个百分点。
最后
以上就是无情微笑为你收集整理的学习心得:不同优化求解器的特点常用算法算法优缺点的全部内容,希望文章能够帮你解决学习心得:不同优化求解器的特点常用算法算法优缺点所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复