在约束优化问题中,最优点的求解不再简单的基于梯度为 0,需要考虑更复杂的情况。
课程中给出了最优点的充分必要条件:Karush-Kuhn-Tucker 即 KKT 条件。
但我一直好奇,那几个条件到底有什么意义呢?
我还是比较喜欢从简单几何的角度来思考这些数学问题,能更直观的理解。
当然对于高纬度的复杂问题,有些简化不一定严谨和正确,但是思想也能帮助理解。
另外文中有些点可能重复有点多,主要是我在编辑的时候也需要不断重复,才能确认自己的思考。
先让我们看一下 KKT 条件到底有哪些,我会在最后给出法国萨克雷大学最优化课程中的证明。
定理 Karush-Kuhn-Tucker 条件
设 f , g i : R d → R f, g_i: \mathbb{R}^d \to \mathbb{R} f,gi:Rd→R 满足以下条件:
- f ∈ C 1 ( R d ) f \in C^1(\mathbb{R}^d) f∈C1(Rd),且 f f f 是凸函数;
- 对于 ∀ i ∈ { 1 , … , ℓ } \forall i \in \{1, \ldots, \ell\} ∀i∈{ 1,…,ℓ}, g i ( x ) ∈ C 1 ( R d ) g_i(x) \in C^1(\mathbb{R}^d) gi(x)∈C1(Rd) 且 g i ( x ) g_i(x) gi(x) 是凸函数。
定义集合:
K = { x ∈ R d ∣ ∀ i ∈ { 1 , … , ℓ } , g i ( x ) ≤ 0 } . K = \{x \in \mathbb{R}^d \mid \forall i \in \{1, \ldots, \ell\}, \ g_i(x) \leq 0\}. K={
x∈Rd∣∀i∈{
1,…,ℓ}, gi(x)≤0}.
设 x ∗ x^* x∗ 是 f f f 在 K K K 上的极小值点,并假设在 x ∗ x^* x∗ 处约束条件是以定义 21 的意义合格的。那么:
x ∗ ∈ arg min x ∈ K f ( x ) ⟺ ∃ λ ∈ R ℓ 使得: x^* \in \arg \min_{x \in K} f(x) \iff \exists \lambda \in \mathbb{R}^\ell \text{ 使得:} x∗∈argx∈Kminf(x)⟺∃λ∈Rℓ 使得:
-
梯度条件(驻点条件):
− ∇ f ( x ∗ ) = ∑ i = 1 ℓ λ i ∇ g i ( x ∗ ) . -\nabla f(x^*) = \sum_{i=1}^\ell \lambda_i \nabla g_i(x^*). −∇f(x∗)=i=1∑ℓλi∇gi(x∗). -
原始可行性条件:
x ∗ ∈ K . x^* \in K. x∗∈K. -
对偶可行性条件:
λ i ≥ 0 , ∀ i ∈ { 1 , … , ℓ } . \lambda_i \geq 0, \quad \forall i \in \{1, \ldots, \ell\}. λi≥0,∀i∈{ 1,…,ℓ}. -
互补松弛条件:
λ i g i ( x ∗ ) = 0 , ∀ i ∈ { 1 , … , ℓ } . \lambda_i g_i(x^*) = 0, \quad \forall i \in \{1, \ldots, \ell\}. λigi(x∗)=0,∀i∈{ 1,…,ℓ}.
注释:
- 梯度条件:目标函数 f f f 的梯度在最优点处与约束梯度的线性组合相等。
- 原始可行性:最优点必须满足所有的约束条件。
- 对偶可行性:拉格朗日乘子 λ i \lambda_i λi 必须是非负的。
- 互补松弛:对于每个约束 g i g_i gi,如果在最优点 x ∗ x^* x∗ 上该约束不是紧逼的(即 g i ( x ∗ ) < 0 g_i(x^*) < 0 gi(x∗)<0),则对应的拉格朗日乘子 λ i = 0 \lambda_i = 0 λi=0。
KKT 条件总结与理解
最优点与不活跃约束
假设 x ∗ x^* x∗ 是最优点,那么对于所有满足 g i ( x ∗ ) < 0 g_i(x^*) < 0 gi(x∗)<0 的约束 g i g_i gi,这些约束被称为不活跃约束,原因如下:
- 根据最优点的定义,目标函数 f ( x ) f(x) f(x) 在 x ∗ x^* x∗ 处无法通过任意可行方向进一步降低,也就是 f 在该点理应为最小值。
- 即使沿着不活跃约束梯度方向移动(即朝着 g i ( x ) g_i(x) gi(x) 更大的方向),也不会让 f ( x ) f(x) f(x) 减小,同时仍然满足可行性条件 g i ( x ) ≤ 0 g_i(x) \leq 0 gi(x)≤0。换句话说,就是在不活跃的方向上,f 在最优点还没有达到不活跃约束所构成的边界,所以即使沿着不活跃方向移动一点,也不会出界。
- 因此,不活跃约束不会对原函数在假设最优点的移动做限制,也就是不会对最优点的梯度平衡产生影响。
最优点与活跃约束
对于所有活跃约束(即 g i ( x ∗ ) = 0 g_i(x^*) = 0 gi(x∗)=0),它们会限制 x ∗ x^* x∗ 的移动方向:
- 最优点 x ∗ x^* x∗ 必须处于每一个活跃约束构成的边界上,这限制了