优化相关-凸优化
凸优化相关
凸函数的定义
为了避免陷入局部最优,人们尽可能使用凸函数作为优化问题的目标函数。
- 凸集定义:欧式空间中,对于集合中的任意两点的连线,连线上任意一点都在集合中,我们就说这个集合是凸集;
- 凸函数定义:对于任意属于[0,1]的a和任意属于凸集的两点x, y,有 f ( a x + ( 1 − a ) y ) ≤ a ∗ f ( x ) + ( 1 − a ) ∗ f ( y ) f( ax + (1-a)y ) \leq a * f(x) +(1-a) * f(y) f(ax+(1−a)y)≤a∗f(x)+(1−a)∗f(y),几何上的直观理解就是两点连线上某点的函数值,大于等于两点之间某点的函数值;
- 凸函数的性质:凸函数的任一局部极值点也是全局极值点;
- 半正定矩阵的定义:特征值大于等于0的实对称矩阵;
- 半正定矩阵的充要条件:行列式(n阶顺序主子式)等于0,行列式的i阶顺序主子式>=0,i从1到n-1;
- 凸函数的充要条件:如果f(x)在开凸集S上具有二阶连续偏导数,且f(x)的海塞矩阵(二阶偏导的矩阵)在S上处处半正定,则f(x)为S上的凸函数。
凸优化问题的定义
1.无约束优化
无约束优化问题中,如果f(x)是凸函数,那么可以直接通过f(x)的梯度等于0来求得全局极小值点。
2.带约束优化
考虑带约束的优化问题,可以描述为如下形式:
其中f(x)是目标函数,g(x)为不等式约束,h(x)为等式约束。
- 若f(x),h(x),g(x)三个函数都是线性函数,则该优化问题称为线性规划;若任意一个是非线性函数,则称为非线性规划;
- 若目标函数f(x)为二次函数,约束g(x), h(x)全为线性函数,称为二次规划;
- 若f(x)为凸函数,g(x)为凸函数,h(x)为线性函数,则该问题称为凸优化。注意这里不等式约束若为 g ( x ) ≤ 0 g(x) \leq 0 g(x)≤0则要求g(x)为凸函数,若 g ( x ) ≥ 0 g(x) \geq 0 g(x)≥0则要求g(x)为凹函数;
- 凸优化的性质:局部最优也是全局最优,KKT条件就是极小值点(而且是全局极小)存在的充要条件;不是凸优化的话,KKT条件是极小值点的必要不充分条件(满足KKT条件的点,也不一定是极小值点,但极小值点一定满足KKT条件)。
凸优化问题的求解
- 对于无约束的优化问题,直接令梯度等于0求解;
- 对于含有约束的优化问题:
- 对于含有等式约束的优化问题,拉格朗日乘子法,构造拉格朗日函数,令偏导为0求解;
- 对于含有不等式约束的优化问题,同样构造拉格朗日函数,利用KKT条件求解;
- 对于含有约束的优化问题,还可以转化为对偶问题来求解
拉格朗日乘子法和KKT条件
统计学习方法-李航
针对带约束的原始问题
构造拉格朗日函数:
L
(
x
,
α
,
β
)
=
f
(
x
)
+
∑
i
=
1
k
α
i
c
i
(
x
)
+
∑
j
=
1
l
β
j
h
j
(
x
)
,
L(x, \alpha, \beta)=f(x)+\sum \limits_{i=1}^k \alpha_ic_i(x)+\sum \limits_{j=1}^l \beta_jh_j(x),
L(x,α,β)=f(x)+i=1∑kαici(x)+j=1∑lβjhj(x),
其中
α
i
\alpha_i
αi,
β
i
\beta_i
βi是拉格朗日乘子,
α
i
≥
0
\alpha_i \geq 0
αi≥0.
当原始问题满足凸优化条件时,使用如下KKT条件求解最优值:
以下是瑞典皇家理工学院-KKT课件(表达上有一定偏差,但个人倾向以李航为准):
- 当优化问题时凸优化时,针对带不等式约束的原始问题如下求解:
- 不是凸优化的话,还需要附加多一个正定的条件才能变成充要条件,如下图所示:
- 对于同时有多个等式约束和多个不等式约束,构造的拉格朗日函数就是在目标函数后面把这些约束相应的加起来,KKT条件也是如此,如下图所示:
拉格朗日对偶性
约束最优化问题中,常利用拉格朗日对偶性将原始问题转换为对偶问题,通过解对偶问题得到原始问题的解。(实质上利用了对偶问题一定是凸函数,而凸函数容易优化)
但是要明确,对偶问题的解不一定直接等于原问题的解(弱对偶),对偶问题有三点性质:
- 强对偶-原始、对偶问题同解 ;
- 弱对偶-原始、对偶问题不同解,但对偶问题的解是原始解的下界;
- 对偶问题一定是凸函数,但原始问题不一定是;
1.原始问题
将求带约束的
m
i
n
f
(
x
)
min \ f(x)
min f(x)转换为求对应拉格朗日函数上界的最小值,由于参数不同,可能会有多个上界。
2.对偶问题
证明:对偶问题的解是原始问题解的下界
如上,
d
∗
≤
p
∗
d^* \leq p^*
d∗≤p∗称为弱对偶,对于所有优化问题都成立。
d
∗
=
p
∗
d^* = p^*
d∗=p∗称为强对偶,满足某些条件才成立,这时可以用解对偶问题替代原始问题。
满足如下条件时,对偶问题的解与原始问题解相同(即强对偶成立)。注意:这里的条件只是强对偶成立的一种情况,对于非凸的问题也有可能是强对偶)
当强对偶成立时,对偶问题的解也即是原始问题解:
参考
拉格朗日对偶性
拉格朗日乘子法和KKT条件
机器学习原理-拉格朗日乘子法和KKT条件
瑞典皇家理工学院(KTH)“统计学习基础”
统计学习方法-李航