无约束优化方法简介

两种基本框架

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

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 的优化方法使用了该方法。

方向计算

最速下降法(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正则化导向稀疏的特点。其基本流程如下:

初始化 x0 S Y
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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值