算法 机器学习

理解L-BFGS算法

怎甘沉沦 提交于 2021-01-03 16:49:57
理解L-BFGS算法 Mar 30, 2015 # 数值优化 # 无约束最优化 L-BFGS(Limited-Memory BFGS)是BFGS算法在受限内存时的一种近似算法,而BFGS是数学优化中一种无约束最优化算法。本文的目的是介绍L-BFGS算法的具体原理,在此过程中附加上相关背景知识,力求简单易懂。参考文献在文后给出。 无约束优化 无约束最优化的基本形式是,给定一个多元函数f(x)f(x),求出该函数的最小值点x∗x∗。形式化地来说,即: x∗=argminxf(x)x∗=arg⁡minxf(x) 一般称f(x)f(x)为目标函数,x∗x∗为最优解。在本文中,假定目标函数都是凸函数。由凸函数的性质,可知其局部最优解必定为全局最优解,因此保证接下来介绍的算法必定收敛到局部最优解附近。 牛顿法 在使用计算机求解一个优化问题时,通常使用迭代方法。即我们的算法不断迭代,产生一个序列x1,x2…xkx1,x2…xk,若该序列能收敛到x∗x∗,则算法是有效的。 由于目标函数(假设为凸函数)存在最小值,若上述序列为递减序列,则最后会收敛到x∗x∗(不同的算法,收敛速度有差异)。 假设现在已经有点xnxn,如何构造xn+1xn+1,使得f(xn)<f(xn+1)f(xn)<f(xn+1)呢? 牛顿法的基本思想是,在离点xnxn足够近的距离,f(x)f(x)可以近似看作一个二次函数。即