文章目录
1. 优化方法研究的主要问题
优化方法研究的主要问题在于得到一个模型的最优解,而机器学习关注的如何建立一个模型能够很好地解决实际问题,而其中模型的求解便依赖于优化方法。解决优化问题分为解析解法和数值解法,我们主要focus在数值解法。
2 . 优化问题的最优性条件
在设计一些算法时,最核心的指导思想便是最最优性条件。
- 无约束问题尽可能的达到驻点,在根据其他条件判断是否达到极值点。
- 约束优化问题
- 要么通过拉格朗日乘子法转为无约束,达到满足规范条件的KKT点
- 如果很难满足,就转为一系列无约束或者满足线性约束的优化问题,希望得到满足约束的KKT点。
- 最后实在不可以,还可以通过引入惩罚,放松约束,转化为一系列无约束,达到满足约束的驻点上。
总之,无约束优化和有约束优化在设计迭代算法时,都是朝着满足最优性条件的方向设计的。
无约束优化问题的最优性条件
一阶必要条件 – 最优解的一阶梯度为0
如果 x ∗ x^* x∗是最优解,则梯度 ∇ f ( x ∗ ) = 0 \nabla f(x^*) = 0 ∇f(x∗)=0
二阶充分条件 – 一阶梯度为零,海森阵正定,则为最优值
当 ∇ f ( x ∗ ) = 0 \nabla f(x^*) = 0 ∇f(x∗)=0, ∇ 2 f ( x 0 ∗ ) \nabla ^2 f(x^*_0) ∇2f(x0∗)正定,则 x ∗ x^* x∗为最优值点。
二阶必要条件 – 最优解的一阶梯度为0,海森阵半正定
若 x ∗ 若x^* 若x∗为最优值点,则 ∇ f ( x ∗ ) = 0 \nabla f(x^*) = 0 ∇f(x∗)=0, ∇ 2 f ( x 0 ∗ ) \nabla ^2 f(x^*_0) ∇2f(x0∗)半正定。
有约束优化问题的最优性条件
一阶必要条件–KKT条件—满足规范性约束的优化问题,最优解一定是KKT点
定理(kuHn - Tucker 定理)设x是约束优化问题的局部极小解,f(x)在x处可微,当约束规范条件
S
F
D
(
x
∗
,
D
)
=
L
F
D
(
x
∗
,
D
)
SFD (x*,D) = LFD(x*,D)
SFD(x∗,D)=LFD(x∗,D)成立时,存在实数
λ
i
∗
(
i
=
1
,
2
,
⋯
,
m
)
\lambda_i^* (i =1,2,\cdots,m) \quad
λi∗(i=1,2,⋯,m)S.t.
∇
f
(
x
∗
)
−
∑
i
=
1
m
λ
i
∗
∇
c
i
(
x
∗
)
=
0
\nabla f(x*) -\sum\limits_{i=1}^m \lambda_i^* \nabla c_i(x^*) = 0
∇f(x∗)−i=1∑mλi∗∇ci(x∗)=0
λ
i
∗
∇
c
i
(
x
∗
)
=
0
,
λ
i
∗
≥
0
,
i
∈
I
∗
\lambda_i^* \nabla c_i(x^*) = 0,\quad \lambda_i^* \geq 0, i\in I^*
λi∗∇ci(x∗)=0,λi∗≥0,i∈I∗
互补松弛条件
λ
i
∗
∇
c
i
(
x
∗
)
=
0
\lambda_i^* \nabla c_i(x^*) = 0
λi∗∇ci(x∗)=0是为了让拉格朗日乘子法成立, 对于
λ
\lambda
λ的非负性要求是在farkas引理里引入的。\
证明的思路为:
farkas lemma:
方程
{
A
x
≤
0
c
T
x
≥
0
\left\{ \begin{aligned} &Ax \leq 0\\ & c^Tx \geq 0 \end{aligned} \right.
{Ax≤0cTx≥0
方程
{
A
T
y
≤
c
y
>
0
\left\{ \begin{aligned} &A^Ty \leq c\\ &y > 0 \end{aligned} \right.
{ATy≤cy>0
上述两个方程iif一个有解。
约束规范条件
S
F
D
(
x
∗
,
D
)
=
L
F
D
(
x
∗
,
D
)
SFD (x*,D) = LFD(x*,D)
SFD(x∗,D)=LFD(x∗,D) 可得
∇ f ( x ∗ ) T d ≥ 0 ∀ d ∈ L F D ( x ∗ , D ) \nabla f(x_*)^T d \geq 0 \quad \forall{d} \in LFD(x^*,D) ∇f(x∗)Td≥0∀d∈LFD(x∗,D)
根据LFD(x*,D)定义可以得到方程组:
{
∇
c
i
(
x
∗
)
T
d
=
0
i
∈
E
∇
c
i
(
x
∗
)
T
d
=
0
i
∈
I
∗
∇
f
(
x
∗
)
T
d
<
0
\left\{ \begin{array}{l} \nabla c_i(x^*)^T d = 0 \quad i \in E\\ \nabla c_i(x^*)^T d = 0 \quad i \in I^*\\ \nabla f(x^*)^Td < 0 \end{array} \right.\\
⎩⎨⎧∇ci(x∗)Td=0i∈E∇ci(x∗)Td=0i∈I∗∇f(x∗)Td<0
无解,也就是
{
A
d
≤
0
∇
f
(
x
∗
)
T
d
>
0
\left\{ \begin{array}{l} Ad \leq 0\\ \nabla f(x^*)^Td > 0 \end{array} \right.
{Ad≤0∇f(x∗)Td>0
A
=
[
∇
c
i
(
x
∗
)
T
,
−
∇
c
i
(
x
∗
)
T
,
i
∈
E
∇
−
c
i
(
x
∗
)
T
i
∈
I
∗
]
A = [\nabla c_i(x^*)^T,-\nabla c_i(x^*)^T, \quad i \in E \quad \nabla -c_i(x^*)^T \quad i \in I*]
A=[∇ci(x∗)T,−∇ci(x∗)T,i∈E∇−ci(x∗)Ti∈I∗]
无解,那么
根据farkas lemma,
{
A
T
y
≤
f
(
x
∗
)
y
>
0
\left\{ \begin{aligned} &A^Ty \leq f(x^*)\\ &y > 0 \end{aligned} \right.
{ATy≤f(x∗)y>0
有解, 其中
y
=
(
μ
∗
−
T
,
μ
∗
+
T
,
ω
∗
−
T
)
T
y= (\mu_{*-T},\mu_{*+T}, \omega_{*-T})^T
y=(μ∗−T,μ∗+T,ω∗−T)T也就是部分
λ
\lambda
λ,加上互补松弛条件刚好使得拉格朗日乘子法的梯度等于零。
构成了一阶必要条件。\
二阶充分条件,达到KKT点,拉格朗日函数的海森阵正定。
(1)当x为KKT点
(2)对于
∀
d
∈
M
=
{
d
∈
R
n
∣
d
T
∇
c
i
(
x
∗
)
=
0
,
i
∈
E
∪
I
∗
}
\forall d \in M = \{d \in R_n \ \ |\ \ d^T \nabla c_i(x^*) =0, i\in E \cup I^*\}
∀d∈M={d∈Rn ∣ dT∇ci(x∗)=0,i∈E∪I∗}都有
d
T
∇
x
2
L
(
x
∗
,
λ
∗
)
d
>
0
d^T \nabla^2_x L(x^*,\lambda^*)d > 0
dT∇x2L(x∗,λ∗)d>0 则x*为严格局部最优解。
2. 梯度下降法的一般框架
迭代算法与梯度下降算法
数值解法中最常用的是迭代算法,
迭代算法: 给定初始点x0,一次产生点列
x
1
,
x
2
.
.
.
x
k
,
.
.
.
记
为
x
k
x_1,x_2...x_k,...记为{x_k}
x1,x2...xk,...记为xk使得某个
x
k
x_k
xk恰好是问题的一个最优解,或者该点列
x
k
{x_k}
xk收敛到问题的一个最优解
x
∗
x^*
x∗,这就是迭代法。
梯度下降法 利用梯度信息,使得每次迭代,函数的值总在下降的算法叫做梯度下降算法
梯度下降法的框架
- 只要 ∇ f ( x ) T d < 0 \nabla f(x)^T d < 0 ∇f(x)Td<0,就进行迭代 x k + 1 = x k + α k d k x^{k+1} = x^k + \alpha^kd^k xk+1=xk+αkdk
- 由梯度产生下降 d k = − D k ∇ f ( x k ) w i t h D k > 0 d^k = -D^k \nabla f(x^k) with D^k > 0 dk=−Dk∇f(xk)withDk>0
- 根据一维搜索确定
α
\alpha
α
∇ f ( x ) T d < 0 \nabla f(x)^T d < 0 ∇f(x)Td<0函数仍在下降可以通过泰勒展开式加以证明。
无约束优化方法举例,最速下降算法,牛顿算法
- 最速下降算法对f(x)进行一阶展开,将f(x)理解为线性,得到d= - ∇ f ( x ) \nabla f(x) ∇f(x)的下降算法;
- 牛顿法对f(x)进行二阶展开,将f(x)进行局部二次化,得到d= - ∇ f ( x ) [ ∇ 2 f ( x ) ] − 1 \nabla f(x)[\nabla^2f(x)]^{-1} ∇f(x)[∇2f(x)]−1
- 我们可以对f(x)进行更高阶的展开,但是无法写成诸如 f ( x ) = x T Q x + b x f(x ) = x^TQx+bx f(x)=xTQx+bx这样的形式
- 后续的拟牛顿等其他算法是改进牛顿法中对于矩阵的求逆;
约束优化方法举例,有效集法和罚函数法
对于约束,下降方向很难保证是可行方向,最直观的做法是转化为一系列无约束优化问题,来进行求解。
- 有效集法通过active coinstraints利用等式成立的不等式,通过拉格朗日乘子法,转为无约束,求解后,重新通过active coinstraints和拉格朗日构造无约束优化问题,指导达到KKT点。
- 通过对违反约束加惩罚,使得最终最终的近似解满足约束并且达到近似最优值。
4. 解决优化问题的一般框架
当我们需要求解一个数学模型,可以按照无约束规划直接求解,当解满足约束的时候,我们便得到了问题的最优解,如果不可以我们按照上面的流程图所画的一步一步求解。