无约束优化

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

无约束优化问题

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

min f ( x )

其中, f 是二次可微凸函数。假定该问题可解,即存在最优解 x ,用 p 表示最优值为: inf x f ( x ) = f ( x )

因为 f 可微,则最优点 x 满足以下条件:

f ( x ) = 0

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

我们需要计算点列: x ( 0 ) , x ( 1 ) , . . ,使得 k , f ( x ( k ) ) p 。使用 ϵ 表示容许误差值,当 f ( x ( k ) ) p ϵ 时,算法终止。

例子 p 438

二次优化

min ( 1 / 2 ) x T P x + q T x + r

很容易我们可以对其求导得到 P x + q = 0

因此,若 P 为正定矩阵,则存在唯一解 x = P 1 q

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

最小二乘

作为二次优化的特例:

min | | A x b | | 2 2 = x T ( A T A ) x 2 ( A T b ) T x + b T b

其最优性解为其正规方程

A T A x = A T b

强凸性

强凸是指:

2 f ( x ) m I

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

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

次优性条件

(1) f ( y ) = f ( x ) + f ( x ) T ( y x ) + 1 2 ( y x ) T 2 f ( z ) ( y x ) (2) f ( x ) + f ( x ) T ( y x ) + m 2 | | y x | | 2 2

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

对上式进行求导可得:

f ( x ) + m ( y x ) = 0

因此,带入原式可得:

(3) f ( y ) f ( x ) + f ( x ) T ( y x ) + m 2 | | y x | | 2 2 (4) f ( x ) 1 2 m | | f ( x ) | | 2 2

既然该式子对任意 y S 都成立,则:

p f ( x ) 1 2 m | | f ( x ) | | 2 2

由于 | | f ( x ) | | 2 ( 2 m ϵ ) 1 / 2 ,因此带入可得到次优性条件:

f ( x ) p ϵ

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

| | x x | | 2 2 m | | f ( x ) | | 2

关于 2 f ( x ) 的上界

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

| | 2 f ( x ) | | M I

与上面类似,我们可以得到 p 的上界:

p f ( x ) 1 2 M | | 2 f ( x ) | | 2 2

对比 p 的上界:

p f ( x ) 1 2 m | | f ( x ) | | 2 2

下水平集的条件数

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

m I | | 2 f ( x ) | | M I

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

下降方法

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

f ( x ( k + 1 ) ) < f ( x ( k ) )

而优化点列为:

x ( k + 1 ) = x ( k ) + t ( k ) x ( k ) , t ( k ) > 0

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

f ( x ( k ) ) T Δ x ( k ) < 0

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

通用下降算法

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

精确直线搜索 p 444

t 值是通过沿着射线 { x + t x | t 0 } 优化 f 而确定的:

t = arg min s 0 f ( x + s x )

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

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

回溯直线搜索

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

常用的方法为:

  1. 给定下降方向 Δ x ,参数 α ( 0 , 0.5 ) , β ( 0 , 1 )
  2. 设定初始 t = 1
  3. i f f ( x + t x ) > f ( x ) + α t f ( x ) T x , t h e n t := β t

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

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

f ( x + t Δ x ) f ( x ) + t f ( x ) T Δ x < f ( x ) + t α f ( x ) T Δ x

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

梯度下降方法

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

算法过程

  1. 给定初始点 x d o m f Δ x := f ( x )
  2. 直线搜索。通过精确或回溯直线搜索确定步长 t
  3. 修改 x := x + t Δ x
  4. 直到满足停止准则

收敛性分析

我们可以推导得出:

f ( x ( k ) ) p c k ( f ( x ( 0 ) ) p )

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

例子

R 2 空间中的二次问题

考虑二次目标函数

f ( x ) = 1 2 ( x 1 2 + γ x 2 2 )

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

max ( 1 , γ ) min ( 1 , γ ) = max ( γ , 1 / γ )

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

52992965233

最速下降方法 p 454

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

f ( x + v ) f ^ ( x + v ) = f ( x ) + f ( x ) T v

其中 f ( x ) T v f x 在沿着方向 v 的方向导数,若其为负数,则 v 为下降方向。

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

Δ x n s d = arg min { f ( x ) T v   |   | | v | | = 1 }

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

Δ x s d = | | f ( x ) | | Δ x n s d

其中 | | | | 定义为对偶范数( | | z | | = sup { z T x | | | x | | 1 } )。

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

f ( x ) T Δ x s d = | | f ( x ) | | f ( x ) T Δ x n s d = | | f ( x ) | | 2 < 0

Newton方法 p 462

Newton步径

Δ x n t = 2 f ( x ) 1 f ( x )

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

f ( x ) T Δ x = f ( x ) T 2 f ( x ) 1 f ( x ) < 0

因此, Δ x n t 与负梯度方向为锐角, Δ x_{nt}是下降方向。

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

二阶近似的最优解

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

f ( x + v ) ^ = f ( x ) + f ( x ) T v + 1 2 v T f ( x ) v

这是 v 的二次凸函数,在 v = Δ x n t 处达到最小值。

因此,将 x 加上Newton步径 Δ x n t 能够极小化 f x 处的二阶近似。

如果函数是二次的,那么使用Newton步径是 f 的精确最优解。若函数近似二次,则 x + Δ x n t f 的最优解,即 x 的很好的估计值。

Hessian范数下的最速下降方向

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

| | u | | 2 f ( x ) = ( u T 2 f ( x ) u ) 1 / 2

那么可以通过最速下降方向推出 Δ x n t

线性化最优性条件的解

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

f ( x + v ) f ( x ) + 2 f ( x ) v = 0

其解就是我们的Newton步径。

Newton减量 p 464

λ ( x ) = ( f ( x ) T 2 f ( x ) 1 f ( x ) ) 1 / 2

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

Δ x n t 带入 f ( x + t Δ x ) 得: f ( x + t Δ x ) = f ( x ) 1 2 T f ( x ) 2 f ( x ) 1 f ( x )

因此: f ( x ) f ( x + t Δ x ) = 1 2 T f ( x ) 2 f ( x ) 1 f ( x ) = 1 2 λ ( x ) 2

因此, λ / 2 f x 处的二阶近似对 f ( x ) p 作出的估计。

我们也可以将Newton减量表示为 λ = ( Δ x n t T 2 f ( x ) Δ x n t ) 1 / 2 ,表明 λ 是Newton步径的二次范数,该范数由Hessian矩阵定义。

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

T f ( x ) Δ x n t = λ ( x ) 2

Newton方法

  1. 给定初始点 x d o m f ,误差阈值 ϵ > 0
  2. 计算Newton步径和减量
  3. 停止准则:如果 λ 2 / 2 ϵ ,退出
  4. 直线搜索,根据回溯直线搜索确定步长 t
  5. 改进: x := x + t Δ x n t

猜你喜欢

转载自blog.csdn.net/crazy_scott/article/details/80914329