机器学习各优化算法的简单总结

本文总结了机器学习中常见的优化算法,包括梯度下降的三种变体:SGD、Momentum和Nestrov Momentum,以及自适应方法Adagrad、RMSprop、Adadelta和Adam。这些算法各有优缺点,如SGD简单但可能陷入局部最优,而Adam结合了动量和自适应学习率,稳定性好。此外,还介绍了牛顿法和拟牛顿法,尽管它们的收敛速度快,但计算复杂度较高。
摘要由CSDN通过智能技术生成

1 梯度下降

1.1 SGD

算法介绍

SGD(Stochasitic Gradient Descent)很简单,就是沿着梯度的反方向更新参数,优化目标函数。优化公式如下:
di=g(θi1) d i = g ( θ i − 1 )
θi=θi1λdi θ i = θ i − 1 − λ d i
其中 di d i 为当前位置的梯度,也就是损失函数关于参数的一阶导数

优点

操作简单,计算量小,在损失函数是凸函数的情况下能够保证收敛到一个较好的全局最优解

缺点
  • λ λ 是个定值(在最原始的版本),它的选取直接决定了解的好坏,过小会导致收敛太慢,过大会导致震荡而无法收敛到最优解。
  • 对于非凸问题,只能收敛到局部最优,并且没有任何摆脱局部最优的能力(一旦梯度为0就不会再有任何变化)
    对于非凸的优化问题,我们可以将其转化为对偶问题,对偶函数一定是凹函数,但是这样求出来的解并不等价于原函数的解,只是原函数的一个确下界

1.2 Momentum

算法介绍
Momentum改进自SGD,让每一次的参数更新方向不仅取决于当前位置的梯度,还受到上一次参数更新方向的影响。 di=βdi1+(1β)g(θi1) d i = β d i − 1 + ( 1 − β ) g ( θ i − 1 ) θi=θi1λdi θ i = θ i − 1 − λ d i Momentum的意思就是动量,也就意味着上一次更新的方向对本次更新仍然有影响。
优点
一定程度上缓解了SGD收敛不稳定的问题,并且有一定的摆脱局部最优的能力(当前梯度为0时,仍可能按照上次迭代的方向冲出局部最优点),直观上理解,它可以让每次迭代的“掉头方向不是那个大“。
缺点
这里又多了另外一个超参数 β β 需要我们设置,它的选取同样会影响到结果。

β β 一般取0.9

1.3 Nestrov Momentum

算法介绍
Nestrov Momentum的意义在于,既然下一次一定会更新 λdi λ d i ′ ,那么求梯度的时候就可以用提前位置的梯度 g(θi1λdi) g ( θ i − 1 − λ d i ′ ) ,则: di=βdi1+(1β)g(θi1) d i ′ = β d i − 1 + ( 1 − β ) g ( θ i − 1 ) di=βdi1+(1β)g(θi1λd
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值