机器学习基础(五十九)—— 高级优化算法(梯度下降、L-BFGS、共轭梯度)

优化算法两大核心,一曰:方向,比如由负梯度方向给出;二曰:步长。

在机器学习领域,不管是基础的梯度下降,还是更为高级的 L-BFGS、共轭梯度,都对应的是参数学习,用来学习相关模型的参数。

1. 梯度下降

梯度下降算法可以用来处理任何非约束优化问题。它最大的问题在于无法最终保证得到全局最优的结果,即最终的结果通常不能保证使损失函数最小,而只能保证在最终结果附近,没有更好的结果。因为梯度下降算法在参数更新的过程中,只利用了参数附近的梯度,对于整个参数空间的趋势,并未进行考虑。

由于步长的确定,将该问题从科学问题变成了一个工程问题

一种方法是让步长随着时间 t (迭代次数) 的推移而变化,一般是变小,初期大步快走,后期小步慢走,这也符合我们人类进行无启发式信息时的搜索。

2. 高级优化算法

迄今为止,我们的讨论都集中在使用梯度下降法来最小化 J(θ)。如果你已经实现了一个计算 J(θ) θJ(θ) 的函数,那么其实还有更精妙的算法来最小化 J(θ)

举例来说,可以想象这样一个算法:它使用梯度下降,并能够自动调整学习速率 α ,以得到合适的步长值,最终使 θ 能够快速收敛到一个局部最优解。还有更妙的算法:比如可以寻找一个 Hessian 矩阵的近似,得到最佳步长值,使用该步长值能够更快地收敛到局部最优(和牛顿法类似)。

使用这些高级优化算法时,你需要提供关键的函数:即对于任一个 θ ,需要你计算出 J(θ) θJ(θ) 。之后,这些优化算法会自动调整学习速率/步长值 α 的大小(并计算 Hessian 近似矩阵等等)来自动寻找 J(θ) 最小化时 θ 的值。诸如 L-BFGS 和共轭梯度算法通常比梯度下降法快很多。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值