如果本文有错误,特别欢迎大家指出。
目标: 我们的目标是在一定的限制条件下找到一个函数的最大、最小值。
正式的描述: 给定目标函数
f
f
f和定义在
Ω
∈
R
n
\Omega \in R^n
Ω∈Rn上的函数
g
1
,
g
2
,
.
.
.
,
g
m
g_1,g_2,...,g_m
g1,g2,...,gm和
h
1
,
h
2
,
.
.
.
,
h
l
h_1,h_2,...,h_l
h1,h2,...,hl,求函数
f
f
f的极值。数学表示为:
对于这个问题,下面会在以下4种情况下,得出(局部)最优的充分必要条件
- 没有限制
- 只有等式限制(拉格朗日)
- 只有不等式限制(KKT)
- 有不等式和等式限制
1.没有限制的优化
假设:
f
:
Ω
→
R
f:\Omega \rightarrow \R
f:Ω→R是一个连续可微函数。
局部最小的充分必要条件是:
x
∗
x^*
x∗是函数
f
(
x
)
f(x)
f(x)的局部最小点,当且仅当:
-
f
f
f在
x
∗
x^*
x∗处的梯度为0,即
- 函数
f
f
f的Hessian阵在
x
∗
x^*
x∗是半正定的,即
x ∗ x^* x∗是函数 f ( x ) f(x) f(x)的局部最大点,当且仅当:
-
f
f
f在
x
∗
x^*
x∗处的梯度为0,即
- 函数
f
f
f的Hessian阵在
x
∗
x^*
x∗是半负定的,即
2 受限的优化:等式约束
受限等式约束优化问题:
函数
f
f
f的等值线:
加上可行区域(feasible region):
加上可行点
X
F
X_F
XF:
寻找一个
δ
x
\delta x
δx满足
h
(
X
F
+
α
δ
x
)
=
0
h(X_F+\alpha \delta x)=0
h(XF+αδx)=0且
f
(
X
F
+
α
δ
x
)
<
f
(
X
F
)
f(X_F+\alpha \delta x)<f(X_F)
f(XF+αδx)<f(XF),就可以实现优化的一小步。
从点
x
x
x移动
δ
x
\delta x
δx需要满足:
图示为:
留在约束面上的条件:求约束
h
h
h的法线
∇
x
h
(
x
)
\nabla_xh(x)
∇xh(x)。如图:
留在约束面上的条件如图:
为了让在约束面上的点移动
δ
x
\delta x
δx后依然在约束面上,这个点移动的方向要和法线正交。
总结:
如果点
X
F
X_F
XF在约束面上,
- 设置 δ x \delta x δx与 ∇ x h ( x F ) \nabla_xh(x_F) ∇xh(xF)正交,可以保证 h ( x F + δ x ) = 0 h(x_F+\delta x)=0 h(xF+δx)=0
- 只有当 δ x ∗ ( − ∇ x f ( x F ) ) > 0 \delta x*(-\nabla_xf(x_F))>0 δx∗(−∇xf(xF))>0,才有 f ( x F + δ x ) < f ( x F ) f(x_F+\delta x)<f(x_F) f(xF+δx)<f(xF)
当
∇
x
f
(
x
∗
)
\nabla_xf(x^*)
∇xf(x∗)和
∇
x
h
(
x
∗
)
\nabla_xh(x^*)
∇xh(x∗)平行的时候,
x
∗
x^*
x∗就是局部最小点。如图:
还记得我们的优化问题是:
多个不等式限制的问题为:
构造Lagrangian(对每个等式限制引入一个乘子):
3 受限优化:不等式约束
考虑问题:
图示一下:
我们怎么认定
X
F
X_F
XF是局部最小值呢?
所以最小值的条件和无限制情况下相同,即:
问题(满足上述条件的可行解不在可行阈之内):
图示一下:
怎么确定
X
F
X_F
XF是一个局部最小值?
这相当于把不等式约束转化为等式约束。如图:
总结:
最后KKT条件为: