L-BFGS算法介绍

本文由做者林洋港受权网易云社区发布。算法


1、 L-BFGS是什么

L-BFGS是解无约束非线性规划问题最经常使用的方法,具备收敛速度快、内存开销少等优势,在机器学习各种算法中常有它的身影。简单的说,L-BFGS和梯度降低、SGD干的一样的事情,但大多数状况下收敛速度更快,这点在大规模计算中很重要。下图是深度学习Autoencoder模型不一样优化方法的比较。安全

2、 L-BFGS“以前”的那些方法


这里的“以前”并非说L-BFGS问世以前就已经存在的方法,而是指为了更好的理解L-BFGS须要了解的其余方法。无约束问题定义:服务器

咱们先从泰勒展开开始,这能够说是本文介绍的全部方法的基础。f在的一阶泰勒展开为机器学习

二阶泰勒展开为函数

去掉最后的余项,获得微服务

2.1 最速降低法(Gradient descent)post


CD算法的一个前提条件就是f在连续可微,而且在处的导数不为0。由公式1可知当第二项<0时f的值将降低。由Cauchy-Schwartz不等式可得学习

为最速降低方向。所以迭代公式为优化

知足code

2.2 牛顿法(Newton method)


因为f的极值点就是知足f的导数为0,根据公式2,获得

假设Hesse矩阵可逆,由上式可得牛顿法迭代公式

牛顿法具备二次终止性的特色,即通过有限次迭代必达到极小点。例如,对于二次凸函数

A是对称正定矩阵,取任意初始点,根据公式3有

显然通过1次迭代即达到极值点。

但牛顿法要求f二次连续可微,而且Hesse矩阵知足可逆和正定两个条件;同时,牛顿方向不必定每次迭代都是降低方向。

阻尼牛顿法是牛顿法的修正,与牛顿法的区别是迭代公式增长了牛顿方向上的一维搜索,即

其中

是一维搜索获得的步长,知足

2.3 拟牛顿法(Quasi-Newton Method)

牛顿法每次迭代都须要计算处的Hesse矩阵的逆,同时Hesse矩阵也不必定是正定的。人们又提出了拟牛顿法,其基本思想是用不包含二阶导数的矩阵来近似Hesse矩阵的逆。将f在处展开成2阶泰勒级数并取近似,即

设Hesse矩阵可逆,可得

设近似矩阵为根据上述,必须知足

公式7称为拟牛顿条件。的不一样构造方法,决定了不一样的拟牛顿方法。

时n阶对称正定矩阵时,知足牛顿条件的也必须是n阶对称正定矩阵。所以的通常构造策略为:取为任意n阶对称正定矩阵(一般为单位矩阵

I
),而后经过下式求出

称为校订矩阵。

DFP算法将校订矩阵定义为:

至此,根据公式四、五、六、七、十、11能够由得出而且不须要每次迭代计算Hesse矩阵。

BFGS算法用矩阵近似公式8中的Hesse矩阵,从而获得

将q与p互换,分别取代由DFP公式能够获得

,从而获得BFGS公式:

从公式11和公式12能够看出,拟牛顿法每次迭代只须要根据前次迭代的便可以计算出,不须要求出Hesse矩阵的逆。

2.4 L-BFGS(limited-memory BFGS)

BFGS算法中每次迭代计算须要前次迭代获得的矩阵,该矩阵的存储空间至少为N(N+1)/2,N为特征维数,对于高维的应用场景,须要的存储空间将是很是巨大的。L-BFGS的基本思想就是经过存储前m次迭代的少许数据来替代前一次的矩阵。令y=q,s=p,公式12能够改写成

公式13展开并取前m项的近似,可得

因为ρ、V、s、y这些变量都最终能够由q、p两个向量计算获得,所以,咱们只需存储最后m次的q、p向量便可算出加上对角阵H0,总共须要存储2*m+1个N维向量(实际应用中m通常取4到7之间的值,所以须要存储的数据远小于Hesse矩阵)。

注:公式4中步长的肯定须要使用一维搜索,顾名思义,一维搜索就是沿着直线方向寻找使得目标函数值最小的参数值。一维搜索具体又分为精确一维搜索和非精确一维搜索,具体可参看相关文献。

3、 其余相关方法

因为L-BFGS是创建在目标函数的2阶泰勒展开基础上的,其前提条件就是函数的2阶导不为0。在机器学习中通常若是用L2正则都是能够知足这个条件的。若是用的是L1正则,则目标函数可能出现2阶导为0的状况。对于使用L1正则的状况,可使用OWL-QN方法(Orthant-Wise Limited-memory Quasi-Newton),它是基于L-BFGS修改的。

听说百度独创了Shooting算法,收敛速度比L-BFGS快得多,目前还不知道怎么作的。


此外,Chih-Jen Lin(LIBSVM做者)提出的信赖域牛顿方法(Trust Region Newton Method),其收敛速度也比L-BGFS快,他开发的另外一个针对大规模线性分类的软件LIBLINEAR用的就是这种优化方法。

此外,Chih-Jen Lin(LIBSVM做者)提出的信赖域牛顿方法(Trust Region Newton Method),其收敛速度也比L-BGFS快,他开发的另外一个针对大规模线性分类的软件LIBLINEAR用的就是这种优化方法。


免费领取验证码、内容安全、短信发送、直播点播体验包及云服务器等套餐

更多网易技术、产品、运营经验分享请访问网易云社区

相关文章:
【推荐】 为何 kubernetes 自然适合微服务

相关文章
相关标签/搜索