各优化算法的优缺点整理

固定学习率的优化算法

SGD

SGD在深度学习中指的是小批量梯度下降,是按照数据分布将总体数据划分为多个小批量数据,然后利用小批量数据对参数进行更新。
优点:每一步更新的计算时间不依赖于训练样本数目的多寡,即使训练样本数目非常大时,他们也能收敛。对于足够大的数据集,SGD可能会在处理整个训练集之前就收敛到最终测试机误差的某个容错范围内。
缺点:选择合适的learning rate比较困难,若设置过大,学习曲线将会剧烈震荡,代价函数值通常会明显增加;太小则学习过程会很缓慢,如果初始学习率太低,那么学习可能会卡在一个相当高的代价值。

Momentum动量

动量方法旨在加速学习,特别是处理高曲率、小但一致的梯度,或是带噪声的梯度。动量算法积累了之前梯度指数级衰减的移动平均,并且继续沿该方向移动。它模拟的是物体运动时的惯性,即在更新时在一定程度上会考虑之前更新的方向,同时利用当前batch的梯度微调最终的结果,这样可以在一定程度上增加稳定性,从而更快的学习。
优点:对方向一致的参数能够加速学习,对梯度改变方向的参数能够减少其更新,因此就是momentum能够在相关方向上加速学习,抑制振荡,从而加速收敛。
缺点:比较难学习一个较好的学习率。

Nesterov动量

是momentum动量的一个变种。Nesterov的改进就是让之前的动量直接影响当前的动量,因此Nesterov动量往往可以解释为往标准动量方法中添加了一个校正因子,加快收敛。

自适应学习率的优化算法

Adagrad

在更新参数的时候,缩放每个参数反比于其所有梯度历史平均值总和的平方根。
特点:1.这样在训练初期,分母较小,学习率较大,学习比较快,2.后期时,学习会逐渐减慢,3.而且它适合于处理稀疏梯度,具有损失最大偏导的参数相应地有一个快速下降的学习率,而具有小偏导的参数在学习率上有相对较小的下降。
缺点:1.从训练开始就积累梯度方差会导致有效学习率过早和过量的减小。2.只能解决凸问题,当应用于非凸函数训练神经网络时,学习可能会到达一个局部是凸碗的区域。3.需要一个全局的学习率。

RMSProp

RMSProp修改Adagrad以在非凸设定下效果更好(这也是为什么神经网络中多用RMSprop的原因,神经网络的损失函数大多都是非凸的),改变梯度累积为指数加权的移动平均。相比于Adagrad,RMSProp使用指数衰减平均以丢弃遥远过去的历史。
很常用的一个优化算法。
优点:1.改进了Adagrad在深度学习中过早结束的问题;2.适用于处理非平稳。
缺点:依然依赖一个全局学习率。

Adam

结合了动量和RMSProp,利用了梯度的一阶矩估计和二阶矩估计动态调节每个参数的学习率,并且加上了偏置修正。

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: de算法是一种基于贪心思想的算法,它主要用于求解一些最短路径问题。de算法每次从起始顶点开始,选择与当前顶点直接相连的边中权值最小的边,然后将该边所连接的顶点标记为已访问,继续寻找下一个最短边。直到找到终点顶点或所有可达顶点都被访问完了,最终得到的路径就是最短路径。 sade算法是一种用于求解约束最优化问题的算法,也可以用于求解一些最短路径问题。sade算法通过人工选择一些约束条件,然后利用近似解求解最优解的方法来得到最优路径。sade算法的优点是能够处理具有复杂结构的问题,但是其缺点是在问题规模较大时,计算量会比较大。 jade算法是一种基于进化算法的优化算法,它能够通过一个种群中个体之间的交叉和变异来搜索问题的最优解。jade算法的核心是通过选择适应度较高的个体来进行繁殖和优胜劣汰,逐渐优化种群中的个体,最终得到问题的最优解。 shade算法是一种基于自适应差分进化算法的优化算法,它通过自适应地调整差分进化算法的参数来提高算法的收敛性和搜索能力。shade算法主要通过自适应机制来调整差分进化算法的缩放因子和交叉概率,从而有效地搜索最优解。 L-shade算法是shade算法的改进版本,它通过引入局部搜索操作和适应度嵌入来增加算法的优化性能。L-shade算法在每一代的演化中都会进行局部搜索操作,以进一步提高解的质量。同时,L-shade算法还引入了适应度嵌入,利用先前的搜索信息来加快搜索速度。 综上所述,de、sade、jade、shade和L-shade算法都是用于求解优化问题的算法,它们分别采用不同的策略来进行搜索,以找到问题的最优解。这些算法在不同的问题领域有着广泛的应用。 ### 回答2: DE算法是一种基于遗传规划理论的算法。它通过将问题空间中的个体编码为染色体,并通过适应度函数评估每个个体的优劣,然后根据对适应度函数值的排序选择一部分个体进行交叉和变异操作,以生成新的个体。通过不断迭代,最终找到最优解。 SADE算法是改进的差分进化算法,它引入了自适应差异权重和自适应的缩放因子来提高搜索效果。算法的基本思想是通过在原始解向量中引入随机扰动产生一组新的解向量,并通过适应度函数评估它们。然后,根据一定的选择策略,选择其中最好的解向量作为下一代的种群。通过不断迭代,最终找到最优解。 JADE算法是一种基于进化策略的算法。它通过自适应策略来调整差分进化算法的参数,以提高搜索效果。该算法有两个重要的自适应机制:参数适应度机制和机率适应度机制。通过这两个机制,JADE算法可以动态调整差分进化算法的参数,以适应不同问题和难度。 SHADE算法是JADE算法的改进版本,引入了变异策略翻转机制和相对适应度排序策略。变异策略翻转机制使得算法能够更好地处理高维优化问题,避免了参数的过度调整。相对适应度排序策略则提高了个体选择的效率,使得每一代的迭代过程更加高效。 L-SHADE算法是SHADE算法的改进版本,引入了学习策略和自适应校准参数。学习策略允许算法在迭代过程中学习到更好的搜索策略,从而提高搜索效果。自适应校准参数则帮助算法自动调整差异权重和缩放因子,避免了参数的手动调整。通过这些改进,L-SHADE算法在解决优化问题时具有更好的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值