凸优化学习:无约束优化

无约束优化


模型

无约束优化的问题模型:

minf(x) min f ( x )

其中 f(x) f ( x ) 是二次可微凸函数。假定该问题存在最优点 x x ∗ ,那么应该有:
f(x)=0 ∇ f ( x ∗ ) = 0

因此,该问题等价于求解 n n 个变量的n个方程。在一些特殊情况下,可以得到该问题的解析解;通常情况下,需要通过迭代的方式来获得该问题的数值解。

强凸性
如果存在 m>0 m > 0 使得 2f(x)mI ∇ 2 f ( x ) ≥ m I 对任意的 xS x ∈ S 都成立,则称 f(x) f ( x ) S S 上是强凸的。

以下讨论均假设目标函数具有强凸性。

下降方法

无约束的优化方法通常采用下降的迭代方法来获取最优值。通常是产生一个点列x(k)

x(k+1)=x(k)+t(k)Δx(k),t(k)0 x ( k + 1 ) = x ( k ) + t ( k ) Δ x ( k ) , t ( k ) ≥ 0

其中, Δx Δ x 是一个向量,称之为 搜索方向;标量 t(k) t ( k ) 称为 步长。在下降法中,总有:
f(x(k+1))f(x(k)) f ( x ( k + 1 ) ) ≤ f ( x ( k ) )

函数的二阶展开式:

f(x(k+1))=f(x(k))+f(x(k))T(f(x(k+1))f(x(k)))+12(f(x(k+1))f(x(k)))T2f(z)(f(x(k+1))f(x(k))),z[f(x(k)),x(k+1)] f ( x ( k + 1 ) ) = f ( x ( k ) ) + ∇ f ( x ( k ) ) T ( f ( x ( k + 1 ) ) − f ( x ( k ) ) ) + 1 2 ( f ( x ( k + 1 ) ) − f ( x ( k ) ) ) T ∇ 2 f ( z ) ( f ( x ( k + 1 ) ) − f ( x ( k ) ) ) , z ∈ [ f ( x ( k ) ) , x ( k + 1 ) ]

对于强凸性函数,最后一项非负,因此第二项必须为负,即:
f(x(k))T(f(x(k+1))f(x(k)))=f(x(k))TΔx(k)<0 ∇ f ( x ( k ) ) T ( f ( x ( k + 1 ) ) − f ( x ( k ) ) ) = ∇ f ( x ( k ) ) T Δ x ( k ) < 0

也就是说,搜索方向应该与梯度方向成锐角才能使得函数值有所下降。称这样的方向为 下降方向。那么可以给出优化迭代的伪代码:
~—————————————下降算法伪码———————————-

  1. 给定初始迭代点(该点应该定义域内)
  2. 确定下降方向 Δx Δ x
  3. 选择步长 t t ,直线搜索
  4. 修改迭代点:x:=x+tΔx
  5. 检测终止条件,不满足则跳至第2步

~———————————————————————————————-

梯度下降法

Δx=f(x) Δ x = − ∇ f ( x ) , 则很容易满足下降条件。此方法称为梯度下降法。

~—————————————梯度下降算法伪码———————————-

  1. 给定初始迭代点(该点应该定义域内)
  2. 确定下降方向 Δx=f(x) Δ x = − ∇ f ( x )
  3. 选择步长 t t ,直线搜索
  4. 修改迭代点:x:=x+tΔx
  5. 检测终止条件,不满足则跳至第2步

~———————————————————————————————-

梯度下降法的收敛速度依赖于Hessian矩阵。

最速下降法

如果对函数进行一阶泰勒展开:

f(x+Δx)f(x)+f(x)TΔx f ( x + Δ x ) ≈ f ( x ) + ∇ f ( x ) T Δ x

称第二项为 f f x处的方向导数,近似地给出了在方向 Δx Δ x 下的变化趋势。如果这一项为负,则该方向就是下降方向。方向导数是搜索方向的线性函数(x是已知的迭代点,那么其一阶导数也是已知的),在下降方向上 Δx Δ x 越大该方向导数则越小。为了使其有意义,可以规范 Δx Δ x 的大小,此时的方向为规范化的最速下降方向:
Δxnsd=argmin{f(x)TΔx|Δx1} Δ x n s d = a r g m i n { ∇ f ( x ) T Δ x | ‖ Δ x ‖ ≤ 1 }

~—————————————最速下降算法伪码———————————-

  1. 给定初始迭代点(该点应该定义域内)
  2. 计算最速下降方向 Δxsd Δ x s d
  3. 选择步长 t t ,直线搜索
  4. 修改迭代点:x:=x+tΔxsd
  5. 检测终止条件,不满足则跳至第2步

~—————————————————————————————————-
1 ℓ 1 − 范 数 的 最 速 下 降 法 是 坐 标 下 降 法 。
二次 P P -范数的最速下降法等同于对问题进行了坐标变化x¯=p1/2

牛顿法

对函数进行二阶泰勒展开:

f(x+Δx)f(x)+f(x)TΔx+12ΔxT2f(x)Δx f ( x + Δ x ) ≈ f ( x ) + ∇ f ( x ) T Δ x + 1 2 Δ x T ∇ 2 f ( x ) Δ x

右边是一个关于 Δx Δ x 的二次凸函数,由最优性条件可以得知,对其求导可得导数为0:
f(x)T+2f(x)Δx=0 ∇ f ( x ) T + ∇ 2 f ( x ) Δ x = 0

解该方程得:
Δx=(2f(x))1f(x)T Δ x = − ( ∇ 2 f ( x ) ) − 1 ∇ f ( x ) T

将该解带入原式可得:
f(x+Δx)f(x)f(x)TΔx+12ΔxT2f(x)Δx=f(x)T(2f(x))1f(x)f(x)T(2f(x))Tf(x)=[(2)T+(2)1] f ( x + Δ x ) − f ( x ) ≈ ∇ f ( x ) T Δ x + 1 2 Δ x T ∇ 2 f ( x ) Δ x = − ∇ f ( x ) T ( ∇ 2 f ( x ) ) − 1 ∇ f ( x ) − ∇ f ( x ) T ( ∇ 2 f ( x ) ) − T ∇ f ( x ) = − ∇ [ ( ∇ 2 ) − T + ( ∇ 2 ) − 1 ] ∇

2f(x) ∇ 2 f ( x ) 的正定性可知,上式子在非最优值处均小于0。所以 Δx Δ x 方向为下降方向。此搜索方向称之为牛顿搜索方向。

~—————————————牛顿下降算法伪码———————————-

  1. 给定初始迭代点(该点应该定义域内)
  2. 计算牛顿方向 Δxnt=(2f(x))1f(x)T Δ x n t = − ( ∇ 2 f ( x ) ) − 1 ∇ f ( x ) T
  3. 选择步长 t t ,直线搜索
  4. 修改迭代点:x:=x+tΔxsd
  5. 检测终止条件,不满足则跳至第2步

~—————————————————————————————————-

实际上,牛顿搜索方向就是采用Hessian矩阵 2f(x) ∇ 2 f ( x ) 定义的二次范数推导的最速下降法。

拟牛顿法

共轭梯度法


Reference

[1] 凸优化

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值