本章进入凸优化问题的求解、算法阶段。

无约束优化问题

本文讨论一下无约束问题:

minf(x)\min f(x)

其中,ff是二次可微凸函数。假定该问题可解,即存在最优解xx^\star,用pp^\star表示最优值为:infxf(x)=f(x)\inf _xf(x) = f(x^\star)

因为ff可微,则最优点xx^\star满足以下条件:

f(x)=0\triangledown f(x^\star)= 0

在特殊情况下,我们可以通过解析法求解最优性方程,但大多数情况下没有办法求得解析解。因此,最常见的方法是使用迭代法。

我们需要计算点列:x(0),x(1),..x^{(0)},x^{(1)},..,使得k,f(x(k))pk\rightarrow \infty ,f(x^{(k)}) \rightarrow p^\star。使用ϵ\epsilon 表示容许误差值,当f(x(k))pϵf(x^{(k)}) - p^\star \le \epsilon 时,算法终止。

例子p438{p_{438}}

二次优化

min(1/2)xTPx+qTx+r\min (1/2)x^TPx + q^Tx +r

很容易我们可以对其求导得到Px+q=0Px^\star +q= 0

因此,若PP为正定矩阵,则存在唯一解x=P1qx^\star = -P^{-1}q

若此方程无解,则优化问题无下界。

最小二乘

作为二次优化的特例:

minAxb22=xT(ATA)x2(ATb)Tx+bTb\min ||Ax - b||^2_2= x^T(A^TA)x - 2(A^Tb)^Tx + b^Tb

其最优性解为其正规方程

ATAx=ATbA^TAx^\star = A^Tb

强凸性

强凸是指:

2f(x)mI\triangledown^2 f(x) \succeq mI

对任意xSx\in S都成立。这里的2f(x)\triangledown^2 f(x)表示Hessian矩阵

我们可以通过强凸性推导出有意义的方程。

次优性条件

f(y)=f(x)+f(x)T(yx)+12(yx)T2f(z)(yx)f(x)+f(x)T(yx)+m2yx22 \begin{aligned} f(y) &=f(x)+\nabla f(x)^{T}(y-x)+\frac{1}{2}(y-x)^{T} \nabla^{2} f(z)(y-x) \\ & \geq f(x)+\nabla f(x)^{T}(y-x)+\frac{m}{2}\|y-x\|_{2}^{2} \end{aligned}

m=0m =0 时,上式变为凸性的基本不等式(一阶可微),当m0m\ge 0时,对f(y)f(y)的下界得到了更好的估计结果。

对上式进行求导可得:f(x)+m(yx)=0\triangledown f(x) + m(y-x) = 0

因此,带入原式可得:

f(y)f(x)+f(x)T(yx)+m2yx22f(x)12mf(x)22 \begin{aligned} f(y) & \geq f(x)+\nabla f(x)^{T}(y-x)+\frac{m}{2}\|y-x\|_{2}^{2} \\ & \geq f(x)-\frac{1}{2 m}\|\nabla f(x)\|_{2}^{2} \end{aligned} 既然该式子对任意ySy\in S都成立,则:

pf(x)12mf(x)22p^\star \ge f(x) - \frac{1}{2m}||\triangledown f(x)||^2_2

由于f(x)2(2mϵ)1/2||\triangledown f(x)||_2 \le (2m\epsilon )^{1/2} ,因此带入可得到次优性条件:

f(x)pϵf(x) - p^\star \le \epsilon

我们也可以得到xx与任意最优解xx^\star之间的距离与f(x)2||\triangledown f(x)||_2的关系:

xx22mf(x)2||x- x^\star||_2 \le \frac {2}{m}||\triangledown f(x)||_2

关于2f(x)\triangledown^2 f(x)的上界

由于2f(x)||\triangledown^2 f(x)||的最大特征值是xxSS上的连续函数,因此他在SS上有界,即存在常数MM,使得(没懂):

2f(x)MI||\triangledown^2 f(x)|| \preceq MI

与上面类似,我们可以得到pp^\star的上界:

pf(x)12M2f(x)22p^\star \le f(x) - \frac{1}{2M}||\triangledown^2 f(x)||_2^2

对比pp^\star的上界:

pf(x)12mf(x)22p^\star \ge f(x) - \frac{1}{2m}||\triangledown f(x)||^2_2

下水平集的条件数

从之前的分析我们可以得到:

mI2f(x)MImI \preceq ||\triangledown^2 f(x)|| \preceq MI

因此,比值M/mM/m是矩阵2f(x)\triangledown^2 f(x) 的条件数的上界,这是影响其计算效率的重要因素。

下降方法

我们讨论的所有方法都是下降方法,只要不是最优点则应该满足:

f(x(k+1))<f(x(k))f(x^{(k+1)}) < f(x^{(k)})

而优化点列为:

x(k+1)=x(k)+t(k)x(k),t(k)>0x^{(k+1)} = x^{(k)} + t^{(k)}\triangle x^{(k)},\quad t^{(k)} > 0

由凸性可知f(x(k))T(yk(k))0\triangledown f(x^{(k)})^T(y-k^{(k)}) \ge 0意味着f(y)f(x(k))f(y)\ge f(x^{(k)}),因此,一个下降方法的搜索方向必须满足:

f(x(k))TΔx(k)<0\triangledown f(x^{(k)})^T\Delta x^{(k)} <0

这将作为我们判断后面下降算法的条件之一。

通用下降算法

  1. 确定下降方向Δx\Delta x
  2. 直线搜索。选择步长t>0t > 0
  3. 修改。x:=x+tΔxx := x+t\Delta x
  4. 直到满足停止条件

精确直线搜索p444{p_{444}}

tt值是通过沿着射线{x+txt0}\{x+t\triangle x| t\ge 0\}优化ff而确定的:

t=argmins0f(x+sx)t = \arg\min_{s\ge0} f(x+s\triangle x)

当求解式中的单变量优化问题的成本比计算搜索方向的成本低时,采用精确直线搜索。

特殊情况可以用解析的方法确定最优解。

回溯直线搜索

很多时候我们并不需要找到一个最小的tt,只需要ff有“足够的”减少即可。

常用的方法为:

  1. 给定下降方向Δx\Delta x,参数α(0,0.5),β(0,1)\alpha\in (0,0.5),\beta\in (0,1)
  2. 设定初始t=1t = 1
  3. iff(x+tx)>f(x)+αtf(x)Tx,thent:=βtif \quad f(x+t\triangle x )> f(x) + \alpha t \triangledown f(x)^T \triangle x,then \quad t :=\beta t

回溯算法从单位步长开始,按比例逐渐减小,直到满足停止条件。

由于Δx\Delta x是下降方向,f(x)TΔx<0\triangledown f(x)^T \Delta x< 0,所以只要tt足够小,一定有:

f(x+tΔx)f(x)+tf(x)TΔx<f(x)+tαf(x)TΔxf(x+t\Delta x) \approx f(x) + t\triangledown f(x)^T\Delta x< f(x) + t\alpha\triangledown f(x)^T\Delta x

因此回溯算法一定会停止。

梯度下降方法

梯度下降利用x=f(x)\triangle x = -\triangledown f(x) ,是一种自然的选择。

算法过程

  1. 给定初始点xdomfx\in dom fΔx:=f(x)\Delta x := \triangledown f(x)
  2. 直线搜索。通过精确或回溯直线搜索确定步长tt
  3. 修改x:=x+tΔxx:=x+t\Delta x
  4. 直到满足停止准则

收敛性分析

我们可以推导得出:

f(x(k))pck(f(x(0))p)f(x^{(k)}) - p^\star \le c^k(f(x^{(0)}) - p^\star)

其中c=1m/M<1c = 1-m/M <1,因此最多经过log(f(x(0))p)/ϵlog(1/c)\frac{\log (f(x^{(0)}) -p^\star)/ \epsilon }{\log (1/c)}次迭代,可以收敛到次优性条件。

例子

R2R^2空间中的二次问题

考虑二次目标函数

f(x)=12(x12+γx22)f(x) = \frac{1}{2}(x_1^2 + \gamma x_2^2)

其中γ\gamma 大于0。很容易得到其Hessian矩阵为常数,特征值为1和γ\gamma ,因此其下水平集的条件数都等于:

max(1,γ)min(1,γ)=max(γ,1/γ)\frac{\max(1,\gamma)}{\min(1,\gamma)} = \max (\gamma ,1/\gamma )

我们选取初始点x(0)=(γ,1)x^{(0)} = (\gamma ,1),可以计算:

unconstrain

最速下降方法p454{p_{454}}

f(x+v)f(x+v)xx处进行一阶Taylor展开:

f(x+v)f^(x+v)=f(x)+f(x)Tvf(x+v) \approx \hat f(x+v) = f(x) +\triangledown f(x)^Tv

其中f(x)Tv\triangledown f(x)^Tvffxx在沿着方向vv的方向导数,若其为负数,则vv为下降方向。

如何选择vv使得其方向导数尽可能小(下降最快),我们定义一个规范化的最速下降方向

Δxnsd=argmin{f(x)Tv  v=1}\Delta x_{nsd} = \arg\min \{\triangledown f(x)^T v\space | \space ||v|| =1 \}

我们也可以考虑将最速下降方向乘以一个特殊的比例因子,从而考虑非规范化的最速下降方向:

Δxsd=f(x)Δxnsd\Delta x_{sd} = ||\triangledown f(x)|| _\star \Delta x_{nsd}

其中|| \odot ||_\star定义为对偶范数(z=sup{zTxx1}||z||_\star = \sup\{z^Tx | ||x||\le1\})。

对于这种最速下降步径,我们有:

f(x)TΔxsd=f(x)f(x)TΔxnsd=f(x)2<0 \nabla f(x)^{T} \Delta x_{s d}=\|\nabla f(x)\|_{\star} \nabla f(x)^{T} \Delta x_{n s d}=-\|\nabla f(x)\|_{\star}^{2}<0

Newton方法p462{p_{462}}

Newton步径

Δxnt=2f(x)1f(x)\Delta x_{nt} = -\triangledown^2 f(x)^{-1}\triangledown f(x)

2f(x)\triangledown^2f(x)的正定性可知(凸函数的二阶条件),除非f(x)=0\triangledown f(x) = 0,否则:

f(x)TΔx=f(x)T2f(x)1f(x)<0\triangledown f(x)^T\Delta x = -\triangledown f(x)^T \triangledown^2 f(x)^{-1}\triangledown f(x) <0

因此,Δxnt\Delta x_{nt}与负梯度方向为锐角,Δxnt\Delta x_{nt}是下降方向。

可以从以下几个方面来了解Newton步径。

二阶近似的最优解

考虑函数ffxx处的二阶Taylor近似为:

f(x+v)^=f(x)+f(x)Tv+12vTf(x)v\hat{f(x+v)} = f(x)+\triangledown f(x)^Tv+\frac{1}{2}v^Tf(x)v

这是vv的二次凸函数,在v=Δxntv =\Delta x_{nt}处达到最小值。

因此,将xx加上Newton步径Δxnt\Delta x_{nt}能够极小化ffxx处的二阶近似。

如果函数是二次的,那么使用Newton步径是ff的精确最优解。若函数近似二次,则x+Δxntx+ \Delta x_{nt}ff的最优解,即xx^\star的很好的估计值。

Hessian范数下的最速下降方向

若定义Hessian矩阵2f(x)\triangledown^2 f(x)定义的二次范数,即:

u2f(x)=(uT2f(x)u)1/2||u||_{\triangledown^2 f(x)} = (u^T\triangledown^2 f(x)u)^{1/2}

那么可以通过最速下降方向推出Δxnt\Delta x_{nt}

线性化最优性条件的解

若我们在xx附近对最优性条件f(x)=0\triangledown f(x^\star)=0进行线性化,可得到:

f(x+v)f(x)+2f(x)v=0\triangledown f(x+v) \approx \triangledown f(x) + \triangledown^2 f(x)v = 0

其解就是我们的Newton步径。

Newton减量p464{p_{464}}

λ(x)=(f(x)T2f(x)1f(x))1/2\lambda(x) = (\triangledown f(x) ^T\triangledown^2 f(x)^{-1}\triangledown f(x))^{1/2}

λ(x)\lambda(x)称为Newton减量,可以用来设计停止准则

Δxnt\Delta x_{nt}带入f(x+tΔx)f(x+t\Delta x)得:f(x+tΔx)=f(x)12Tf(x)2f(x)1f(x)f(x+t\Delta x) = f(x)- \frac{1}{2}\triangledown ^Tf(x)\triangledown^2 f(x)^{-1}\triangledown f(x)

因此:f(x)f(x+tΔx)=12Tf(x)2f(x)1f(x)=12λ(x)2f(x) - f(x+t\Delta x) = \frac{1}{2}\triangledown ^Tf(x)\triangledown^2 f(x)^{-1}\triangledown f(x) = \frac{1}{2}\lambda(x)^2

因此,λ/2\lambda^/2ffxx处的二阶近似对f(x)pf(x) - p^\star作出的估计。

我们也可以将Newton减量表示为λ=(ΔxntT2f(x)Δxnt)1/2\lambda = (\Delta x_{nt}^T\triangledown ^2f(x)\Delta x_{nt})^{1/2},表明λ\lambda是Newton步径的二次范数,该范数由Hessian矩阵定义。

Newton减量也出现在回溯直线搜索中,因为我们可以得到:

Tf(x)Δxnt=λ(x)2\triangledown ^Tf(x)\Delta x_{nt} = -\lambda(x)^2

Newton方法

  1. 给定初始点xdomfx \in dom f,误差阈值ϵ>0\epsilon >0
  2. 计算Newton步径和减量
  3. 停止准则:如果λ2/2ϵ\lambda^2/2\le \epsilon ,退出
  4. 直线搜索,根据回溯直线搜索确定步长tt
  5. 改进:x:=x+tΔxntx:=x + t\Delta x_{nt}

results matching ""

    No results matching ""