无约束优化方法简介

来源:互联网 发布:邓超孙俪真实关系 知乎 编辑:程序博客网 时间:2024/06/05 01:17

两种基本框架

一般的,对于监督学习问题,在经过一系列分析和建模后,都将目标问题转化为一个如下形式的优化问题:

minL(x)=f(x)+r(x)(1-1)

其中,f(x)表征了模型刻画目标问题的准确程度;r(x)表征了对于模型本身施加的某种约束。

不论f(x)r(x)采取何种形式,最终都需要求解出(1-1)式的最大或最小值,而这就是所谓的优化方法。

Line Search (线搜索)

Line Search包括很多大家熟悉的优化方法,例如最速下降法(Steepest Descent)、牛顿法(Newton’s method)、拟牛顿法(Quasi-Newton)等等。该方法的基本思路如(1-2)式所示:

xk+1=xk+αkpk(1-2)

其中,pk是当前的求解方向,αk是沿该方向移动的步长。

该方法的过程为

Repeat
- 选择方向pk
- αk=argminL(xk+αpk)
- xk+1=xk+αkpk
Until 收敛

Trust Region (信赖域)

与Line Search的想法相反,该方法先确定一个region,该region以xk为中心,以δ为半径。然后,在该region内选择某个步长sk以最小化L的某种近似模型m(一般是线性,例如m(xk+sk)=L(xk)+L(xk)sk;或者二次模型,例如m(xk+s)=L(xk)+L(xk)sk+12sk2L(xk)sk)。如果sk同样使得L也能够减少到相当程度,那么xk+1=xk+sk;否则,xk保持不变,同时减少δ

该方法的过程为

Repeat
- 选择δ
- 选择sk 以最小化L的某种近似模型m,且||sk||<δ
- 如果 L(xk+sk)L(xk)m(xk+sk)m(xk)>τ,那么xk+1=xk+sk;否则,δδγγ<1
Until 收敛

Trust Region方法不如Line Search方法常见,但liblinear中的l2-loss logistic regresssion 和 svm 的优化方法使用了该方法。

Line Search

方向计算

最速下降法(Steepest Descent)

在选择方向的方法中,最速下降法是最简单的。因为它以当前点的梯度方向作为下降方向,即:

xk+1=xk+αgk(2-1)

其中,gk=L(xk)
然后,计算最佳步长α,使得式(2-1)取得最小值。

牛顿法(Newton’s method)

Δxk=αpk,则式(1-2)可改写为

hk+1(Δx)=L(xk+1)=L(xk+Δx)(2-2)

利用泰勒展开,有

hk+1(Δx)=L(xk+Δx)L(xk)+ΔxTgk+12ΔxTHkΔx(2-3)
其中,Hk=2L(xk)gk=L(xk)。式(2-3)右侧对Δx求导有
hk+1(Δx)=gk+HkΔx(2-4)

令(2-4)的值为0,有
Δx=H1kgk(2-5)
此时,式(2-3)取得最小值。这意味着,H1kgk可以作为x=xk时的下降方向,即pk=H1kgk

在实际中,往往取xk+1=xkα(H1kgk),以使得L(xk+1)L(xk)充分小。

拟牛顿法(Quasi-Newton)

求解式(2-5)涉及到矩阵求逆。当优化问题所涉及的参数非常多时,求逆的过程将非常繁琐。因此可以考虑近似求解H1。这就是所谓的拟牛顿法。

BFGS

对于hk+1()而言,应满足

hk+1(Δx)gk+1(2-6)

因此, 根据式(2-4)有
gk+1=gk+Hk(xk+1xk)(2-7)


sk=xk+1xk(2-8)
yk=gk+1gk(2-9)

Hk(xk+1xk)=gk+1gk(2-10)

则有
H1kyk=sk(2-11)

H1k+1=(IρkyksTk)H1k(IρkskyTk)+ρksksTk(2-12)
其中I是单位矩阵,ρk=(yTksk)1

L-BFGS

在本算法中,不需要存储H1k,而是保存{ski|i=0,1,}{yki|i=0,1,}

Vk=IρkyksTk,则式(2-12)可写为:

H1k+1=VTkHkVk+ρksksTk(2-13)

H10=I,则有,

H11=VT0H10V0+ρ0s0sT0=VT0I1V0+ρ0s0sT0

H12=VT1H1V1+ρ1s1sT1=VT1(VT0H10V0+ρ0s0sT0)V1+ρ1s1sT1=VT1VT0IV0V1+VT1ρ0s0sT0V1+ρ1s1sT1

H1k+1=(VTkVTk1VT1VT0)I(V0V1Vk1Vk)+(VTkVTk1VT1)ρ1s1sT1(V1Vk1Vk)++VTkρksksTk1Vk1+ρksksTk

L-BFGS,即limited BFGS,使用最近的m轮迭代结果来近似Hk+1,从而达到了节约存储空间的目的。

OWLQN

L-BFGS方法中,需要使用到L(x)的一阶导数。然而,在许多场景下无法求取目标函数的一阶导。例如,L(x)中的r(x)采用L1正则化,即r(x)=λi|xi|时,就无法直接计算其一阶导数。

OWLQN(Orthant-Wise Limited-memory Quasi-Newton)与LBFGS十分相似,所不同的只是在于计算方向p和步长α时充分考虑到了L1正则化导向稀疏的特点。其基本流程如下:

初始化x0SY
for k=0,1,2.
1. vk=pseudoL(xk)
2. pk=Hkvk
3. αk=argminL(xk+αpk)
4. xk+1=xk+αkpk
5. 更新S, 使得sk=xk+1xk
6. 更新Y, 使得yk=L(xk+1)L(xk)

相比于LBFGS,其中的第1、2、3、6有所不同。

需要指出,针对L1正则化有众多的优化方法,这里之所以选取OWLQN进行介绍是因为它本质是LBFGS的衍生方法。

步长计算

在已知搜索方向pk之后,需要求取最佳步长αk,使得L(xk)的值下降的最多,即:

αk=argminα>0ϕ(α)=argminα>0L(xk+αpk)
下面介绍求αk的一些方法

回溯法

我们希望每次的步长αk都使得函数值L(xk)充分地下降,即

L(xk+αkpk)L(xk)+cαkL(xk)Tpk
其中,c(0,1)。在实际中希望c充分的小, 一般取c=104。其基本流程如下:

α0>0
ρ(0,1)
c(0,1)
for k=0,1,2.
1. if L(xk+αkpk)>L(xk)+cαkL(xk)Tpk, return αk
2. αk+1ραk

4 Trust Region

以下以二次模型为近似模型,列出实现流程
初始化x0
for k=0,1,2.
1. gL(xk)T
2. H2L(xk)
3. if ||g||>ϵ, return xk
4. skargmin||sk||<δm(xk+sk)=L(xk)+gTsk+12sTkHsk
5. predm(xk+sk)m(x)
6. aredL(xk+sk)L(x)
7. if ared/pred < η1 then δδγ1 // reject step, reduce  δ
8. else xk+1xk+sk
9. if ared/pred > η2 then δmax{δ,γ2||s||} // enlarge δ

需要指出的是,上述流程的第4步被成为信赖域法的子问题(Trust Region Subproblems)。它本质是个带约束的优化问题。具体求解的方式有很多。其中,参考文献[1]使用了共轭梯度法,可供参考。

[1] Rong-En Fan, Kai-Wei Chang, Cho-Jui Hsieh, Xiang-Rui Wang, and Chih-Jen Lin. 2008. LIBLINEAR: A Library for Large Linear Classification. J. Mach. Learn. Res. 9 (June 2008), 1871-1874.

0 0
原创粉丝点击