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

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

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

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

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

你可能感兴趣的:(机器学习基础(五十九)—— 高级优化算法(L-BFGS、共轭梯度))