[模式识别-从入门到入土] 拓展-KKT条件
知乎:https://www.zhihu.com/people/byzh_rc
CSDN:https://blog.csdn.net/qq_54636039
注:本文仅对所述内容做了框架性引导,具体细节可查询其余相关资料or源码
参考文章:各方资料
文章目录
- [[模式识别-从入门到入土] 拓展-KKT条件](#[模式识别-从入门到入土] 拓展-KKT条件)
- KKT条件
- 解释!!!
- 典例-线性可分SVM
KKT条件
KKT: Karush-Kuhn-Tucker: 解决带不等式约束的优化问题
对于凸优化问题 ,KKT条件同时也是其充分条件
(满足 KKT 条件的解就是全局最优解)
是拉格朗日乘子法的扩展
-> 传统拉格朗日乘子法只能处理等式约束
-> KKT 条件可以同时处理等式约束 + 不等式约束
| 方法 | 适用约束类型 | 区别 |
|---|---|---|
| 传统拉格朗日乘子法 | 仅等式约束 | 无乘子非负性、无互补松弛性 |
| KKT 条件 | 等式约束 + 不等式约束 | 新增乘子非负性、互补松弛性两个关键条件 |
通用的带约束极小化问题:
min x f ( x ) s.t. g i ( x ) ≤ 0 , i = 1 , 2 , ... , m (不等式约束) h j ( x ) = 0 , j = 1 , 2 , ... , l (等式约束) \begin{align} \min_{\boldsymbol{x}} &\quad f(\boldsymbol{x}) \\ \text{s.t.} &\quad g_i(\boldsymbol{x}) \le 0, \quad i=1,2,\dots,m \quad \text{(不等式约束)} \\ &\quad h_j(\boldsymbol{x}) = 0, \quad j=1,2,\dots,l \quad \text{(等式约束)} \end{align} xmins.t.f(x)gi(x)≤0,i=1,2,...,m(不等式约束)hj(x)=0,j=1,2,...,l(等式约束)
x \boldsymbol{x} x 是优化变量(如 SVM 中的 ω , b \omega, b ω,b)
为了将约束融入目标函数,构造广义拉格朗日函数:
L ( x , α , β ) = f ( x ) + ∑ i = 1 m α i g i ( x ) + ∑ j = 1 l β j h j ( x ) L(\boldsymbol{x},\boldsymbol{\alpha},\boldsymbol{\beta}) = f(\boldsymbol{x}) + \sum_{i=1}^m \alpha_i g_i(\boldsymbol{x}) + \sum_{j=1}^l \beta_j h_j(\boldsymbol{x}) L(x,α,β)=f(x)+i=1∑mαigi(x)+j=1∑lβjhj(x)
α = ( α 1 , α 2 , ... , α m ) T \boldsymbol{\alpha}=(\alpha_1,\alpha_2,\dots,\alpha_m)^T α=(α1,α2,...,αm)T:不等式约束对应的拉格朗日乘子 ,要求 α i ≥ 0 \alpha_i \ge 0 αi≥0
β = ( β 1 , β 2 , ... , β l ) T \boldsymbol{\beta}=(\beta_1,\beta_2,\dots,\beta_l)^T β=(β1,β2,...,βl)T:等式约束对应的拉格朗日乘子,无符号限制
若 x ∗ \boldsymbol{x}^* x∗ 是上述优化问题的局部最优解,且满足约束规格 ,则存在乘子 α ∗ , β ∗ \boldsymbol{\alpha}^*,\boldsymbol{\beta}^* α∗,β∗,使得以下 5 个条件同时成立:
-
梯度条件(无约束最优性推广):
最优时无下降方向
∇ x L ( x ∗ , α ∗ , β ∗ ) = 0 \nabla_{\boldsymbol{x}} L(\boldsymbol{x}^*,\boldsymbol{\alpha}^*,\boldsymbol{\beta}^*) = 0 ∇xL(x∗,α∗,β∗)=0 -
不等式约束可行性:
最优解必须满足原不等式约束
g i ( x ∗ ) ≤ 0 , i = 1 , 2 , ... , m g_i(\boldsymbol{x}^*) \le 0, \quad i=1,2,\dots,m gi(x∗)≤0,i=1,2,...,m -
等式约束可行性:
最优解必须满足原等式约束
h j ( x ∗ ) = 0 , j = 1 , 2 , ... , l h_j(\boldsymbol{x}^*) = 0, \quad j=1,2,\dots,l hj(x∗)=0,j=1,2,...,l -
乘子非负性:
对不等式约束的乘子要求
α i ∗ ≥ 0 , i = 1 , 2 , ... , m \alpha_i^* \ge 0, \quad i=1,2,\dots,m αi∗≥0,i=1,2,...,m -
互补松弛性:
对每个不等式约束,要么乘子 α i ∗ = 0 \alpha_i^*=0 αi∗=0,要么约束取等号 g i ( x ∗ ) = 0 g_i(\boldsymbol{x}^*)=0 gi(x∗)=0
两者不能同时非零
α i ∗ g i ( x ∗ ) = 0 , i = 1 , 2 , ... , m \alpha_i^* g_i(\boldsymbol{x}^*) = 0, \quad i=1,2,\dots,m αi∗gi(x∗)=0,i=1,2,...,m
适用场景
- 凸优化问题 :此时 KKT 条件是充要条件
-> 满足条件的解就是全局最优解(如 SVM、线性回归的带约束优化) - 非凸优化问题 :此时 KKT 条件只是必要条件
-> 满足条件的解不一定是最优解,还需进一步验证
例题:二维不等式约束优化
问题:求函数 f ( x , y ) = x 2 + y 2 f(x,y) = x^2 + y^2 f(x,y)=x2+y2 在约束 g ( x , y ) = x + y − 1 ≤ 0 g(x,y) = x + y - 1 \leq 0 g(x,y)=x+y−1≤0 下的最小值
步骤拆解:
-
构造广义拉格朗日函数: L ( x , y , α ) = x 2 + y 2 + α ( x + y − 1 ) L(x,y,\alpha) = x^2 + y^2 + \alpha(x + y - 1) L(x,y,α)=x2+y2+α(x+y−1),其中 α ≥ 0 \alpha \geq 0 α≥0
-
列KKT条件:
{ ∂ L ∂ x = 2 x + α = 0 ( 1 ) ∂ L ∂ y = 2 y + α = 0 ( 2 ) x + y − 1 ≤ 0 ( 3 ) α ≥ 0 ( 4 ) α ( x + y − 1 ) = 0 ( 5 ) \begin{cases} \frac{\partial L}{\partial x} = 2x + \alpha = 0 \quad (1) \\ \frac{\partial L}{\partial y} = 2y + \alpha = 0 \quad (2) \\ x + y - 1 \leq 0 \quad (3) \\ \alpha \geq 0 \quad (4) \\ \alpha(x + y - 1) = 0 \quad (5) \end{cases} ⎩ ⎨ ⎧∂x∂L=2x+α=0(1)∂y∂L=2y+α=0(2)x+y−1≤0(3)α≥0(4)α(x+y−1)=0(5) -
分情况讨论互补松弛性(关键!):
-
情况1: α = 0 \alpha = 0 α=0(约束不起作用)
代入 (1)(2) 得 x = 0 , y = 0 x=0, y=0 x=0,y=0,检查约束 (3): 0 + 0 − 1 = − 1 ≤ 0 0+0-1 = -1 \leq 0 0+0−1=−1≤0,满足条件。此时 f ( 0 , 0 ) = 0 f(0,0)=0 f(0,0)=0
- 情况2: α > 0 \alpha > 0 α>0(约束起作用,需满足 x + y − 1 = 0 x + y - 1 = 0 x+y−1=0)
由 (1)(2) 得 x = y x=y x=y,代入 x + y − 1 = 0 x + y - 1 = 0 x+y−1=0 得 x = y = 0.5 x=y=0.5 x=y=0.5,则 α = − 2 x = − 1 \alpha = -2x = -1 α=−2x=−1,但 α = − 1 < 0 \alpha = -1 < 0 α=−1<0 违反条件 (4),故此情况无解
- 情况2: α > 0 \alpha > 0 α>0(约束起作用,需满足 x + y − 1 = 0 x + y - 1 = 0 x+y−1=0)
-
最优解: x = 0 , y = 0 x=0, y=0 x=0,y=0,最小值 f ( 0 , 0 ) = 0 f(0,0)=0 f(0,0)=0。
几何意义: f ( x , y ) = x 2 + y 2 f(x,y)=x^2+y^2 f(x,y)=x2+y2 是原点的圆,约束 x + y − 1 ≤ 0 x+y-1 \leq 0 x+y−1≤0 是直线 x + y = 1 x+y=1 x+y=1 下方的区域,原点(函数最小值点)在区域内,因此约束不起作用,最优解就是无约束的最小值点
解释!!!
约束规格
KKT 条件成立的前提,目的是排除 "异常约束"
满足约束规格的情况:
- 所有约束函数都是线性函数(如 SVM 的约束)
- 不等式约束函数 g i ( x ) g_i(\boldsymbol{x}) gi(x) 是凸函数,等式约束 h j ( x ) h_j(\boldsymbol{x}) hj(x) 是线性函数
若不满足约束规格,最优解可能不满足 KKT 条件
互补松弛性
只有"起作用的约束"(约束取等号 g i ( x ∗ ) = 0 g_i(\boldsymbol{x}^*)=0 gi(x∗)=0)对应的乘子才非零
"不起作用的约束"(约束严格满足 g i ( x ∗ ) < 0 g_i(\boldsymbol{x}^*)<0 gi(x∗)<0)对应的乘子必为零
α i ∗ > 0 ⇒ g i ( x ∗ ) = 0 g i ( x ∗ ) < 0 ⇒ α i ∗ = 0 \alpha_i^* > 0 \quad \Rightarrow \quad g_i(\boldsymbol{x}^*) = 0 \\ g_i(\boldsymbol{x}^*) < 0 \quad \Rightarrow \quad \alpha_i^* = 0 αi∗>0⇒gi(x∗)=0gi(x∗)<0⇒αi∗=0
-> 约束只有在"卡住最优解"时,才允许对目标函数施加力( α > 0 \alpha>0 α>0)
等式约束对应的拉格朗日乘子 β \beta β
等式约束最优化时, 求导为0, 得到自然平衡点
-> 没有任何"外力",系统自己就停在这里
不等式约束对应的拉格朗日乘子 α \alpha α
不等式约束最优化时, 不等式相当于一堵不可穿越的墙
可以在墙的这一侧自由走, 但不能越过去,
尽管如果没有这个不等式, 最优解应该在墙的另一侧
-> 此时相当于受到"外力"
假设在某点满足了不等式约束, 但是距离墙还有距离
-> 约束根本没有理由对你施加任何力
-> α = 0 \alpha=0 α=0
约束只有在"卡住最优解"时
-> 若继续沿着目标函数的下降方向走, 马上就会违反约束
->才允许对目标函数施加力(抵消目标函数的下降趋势)
-> α > 0 \alpha>0 α>0
假设在某点满足了不等式约束, 但是距离墙还有距离
-> 如果施加外力 α > 0 \alpha>0 α>0
-> 会把你推向一个更差的点, 而这违反"最优解"的定义
如上题:
如果没有
约束5, 那么就可能出现 α = 2 , x = y = − 1 \alpha=2,\quad x=y=-1 α=2,x=y=−1的情况, 满足所有条件, 却不是最优解
典例-线性可分SVM
带约束极小化问题 -> 拉格朗日函数:
min α 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ⟨ x i , x j ⟩ − ∑ i = 1 m α i s.t. α i ≥ 0 , i = 1 , ⋯ , m ∑ i = 1 m α i y i = 0 \min_{\alpha} \frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} \langle x_{i}, x_{j} \rangle - \sum_{i=1}^{m} \alpha_{i} \\ \begin{align} \text{s.t.} \quad & \alpha_{i} \geq 0, \quad i=1, \cdots, m \\ &\sum_{i=1}^{m} \alpha_{i} y_{i} = 0 \end{align} αmin21i=1∑mj=1∑mαiαjyiyj⟨xi,xj⟩−i=1∑mαis.t.αi≥0,i=1,⋯,mi=1∑mαiyi=0
得到KKT条件:
-
乘子非负性
α i ≥ 0 \alpha_i \ge 0 αi≥0 -
不等式约束可行性:
y i f ( x i ) − 1 ≥ 0 y_i f(x_i) - 1 \ge 0 yif(xi)−1≥0 -
互补松弛性:
α i ( y i f ( x i ) − 1 ) = 0 \alpha_i (y_i f(x_i) - 1) = 0 αi(yif(xi)−1)=0
只有在"刚好卡在间隔边界上的样本"才具有 α i > 0 \alpha_i > 0 αi>0,因此才是真正影响超平面的位置 的样本 → 支持向量
情况 1: α i = 0 \alpha_i=0 αi=0
此时不管 y i f ( x i ) − 1 y_i f(x_i)-1 yif(xi)−1 的值是多少,等式都成立
对应样本的位置: y i f ( x i ) − 1 > 0 y_i f(x_i)-1>0 yif(xi)−1>0 → 样本在间隔外(距离超平面较远)
情况 2: α i > 0 \alpha_i>0 αi>0
要满足等式,必须让另一个因子为 0 → y i f ( x i ) − 1 = 0 y_i f(x_i)-1=0 yif(xi)−1=0
而 y i f ( x i ) − 1 = 0 y_i f(x_i)-1=0 yif(xi)−1=0 正好是 间隔边界的定义
因此 α i > 0 \alpha_i>0 αi>0 的充要条件是:样本刚好落在间隔边界上