无约束优化
模型
无约束优化的问题模型:
其中 f(x) f ( x ) 是二次可微凸函数。假定该问题存在最优点 x∗ x ∗ ,那么应该有:
因此,该问题等价于求解 n n 个变量的个方程。在一些特殊情况下,可以得到该问题的解析解;通常情况下,需要通过迭代的方式来获得该问题的数值解。
强凸性
如果存在
m>0
m
>
0
使得
∇2f(x)≥mI
∇
2
f
(
x
)
≥
m
I
对任意的
x∈S
x
∈
S
都成立,则称
f(x)
f
(
x
)
在
S
S
上是强凸的。
以下讨论均假设目标函数具有强凸性。
下降方法
无约束的优化方法通常采用下降的迭代方法来获取最优值。通常是产生一个点列:
其中, Δx Δ x 是一个向量,称之为 搜索方向;标量 t(k) t ( k ) 称为 步长。在下降法中,总有:
函数的二阶展开式:
对于强凸性函数,最后一项非负,因此第二项必须为负,即:
也就是说,搜索方向应该与梯度方向成锐角才能使得函数值有所下降。称这样的方向为 下降方向。那么可以给出优化迭代的伪代码:
~—————————————下降算法伪码———————————-
- 给定初始迭代点(该点应该定义域内)
- 确定下降方向 Δx Δ x
- 选择步长 t t ,直线搜索
- 修改迭代点:
- 检测终止条件,不满足则跳至第2步
~———————————————————————————————-
梯度下降法
令 Δx=−∇f(x) Δ x = − ∇ f ( x ) , 则很容易满足下降条件。此方法称为梯度下降法。
~—————————————梯度下降算法伪码———————————-
- 给定初始迭代点(该点应该定义域内)
- 确定下降方向 Δx=−∇f(x) Δ x = − ∇ f ( x )
- 选择步长 t t ,直线搜索
- 修改迭代点:
- 检测终止条件,不满足则跳至第2步
~———————————————————————————————-
梯度下降法的收敛速度依赖于Hessian矩阵。
最速下降法
如果对函数进行一阶泰勒展开:
称第二项为 f f 在处的方向导数,近似地给出了在方向 Δx Δ x 下的变化趋势。如果这一项为负,则该方向就是下降方向。方向导数是搜索方向的线性函数(x是已知的迭代点,那么其一阶导数也是已知的),在下降方向上 Δx Δ x 越大该方向导数则越小。为了使其有意义,可以规范 Δx Δ x 的大小,此时的方向为规范化的最速下降方向:
~—————————————最速下降算法伪码———————————-
- 给定初始迭代点(该点应该定义域内)
- 计算最速下降方向 Δxsd Δ x s d
- 选择步长 t t ,直线搜索
- 修改迭代点:
- 检测终止条件,不满足则跳至第2步
~—————————————————————————————————-
ℓ1−范数的最速下降法是坐标下降法。
ℓ
1
−
范
数
的
最
速
下
降
法
是
坐
标
下
降
法
。
二次
P
P
-范数的最速下降法等同于对问题进行了坐标变化
牛顿法
对函数进行二阶泰勒展开:
右边是一个关于 Δx Δ x 的二次凸函数,由最优性条件可以得知,对其求导可得导数为0:
解该方程得:
将该解带入原式可得:
由 ∇2f(x) ∇ 2 f ( x ) 的正定性可知,上式子在非最优值处均小于0。所以 Δx Δ x 方向为下降方向。此搜索方向称之为牛顿搜索方向。
~—————————————牛顿下降算法伪码———————————-
- 给定初始迭代点(该点应该定义域内)
- 计算牛顿方向 Δxnt=−(∇2f(x))−1∇f(x)T Δ x n t = − ( ∇ 2 f ( x ) ) − 1 ∇ f ( x ) T
- 选择步长 t t ,直线搜索
- 修改迭代点:
- 检测终止条件,不满足则跳至第2步
~—————————————————————————————————-
实际上,牛顿搜索方向就是采用Hessian矩阵 ∇2f(x) ∇ 2 f ( x ) 定义的二次范数推导的最速下降法。