python学智能算法(三十一)|SVM-Slater条件理解

发布于:2025-08-04 ⋅ 阅读:(17) ⋅ 点赞:(0)

【1】引言

前序学习进程中,对KKT条件进行了翻来覆去担仍然不够深入的理解,文章链接包括且不限于:KKT条件引入KKT条件理解KKT条件数学表达溯源等。
实际上,为保障KKT条件的应用是准确的,还需要问题满足Slater条件。
Slater条件是凸优化问题中,判断KKT条件是否为最优解的充要条件,它主要用于保证凸优化问题的强对偶性成立。

【2】对偶函数

既然上述提及了强对偶性成立,也就是可能涉及对偶函数和对偶问题,这就先来学习相关概念。
对偶函数的目的是找出原目标函数在可行域上的“下界函数”。

【2.1】原问题的标准形式

这批给出原问题的标准形式,适用于一般约束的优化问题。
最小化目标函数: min ⁡ x f ( x ) \min_{x} f(x) minxf(x)
约束条件:
不等式约束: g i ( x ) ≤ 0 ( i = 1 , 2 , . . . , m ) g_{i}(x)\leq0(i=1,2,...,m) gi(x)0(i=1,2,...,m)
等式约束: h j ( x ) = 0 ( j = 1 , 1 , . . . , p ) h_{j}(x)=0(j=1,1,...,p) hj(x)=0(j=1,1,...,p)
定义域: x ∈ R n x\in R^{n} xRn

构造对偶函数,实际上也是构造拉格朗日函数,通过引入拉格朗日乘子,将约束代入目标函数,再在定义域上取最小值。
如果不了解如何构造拉格朗日函数,可以通过拉格朗日乘数法理解拉格朗日函数构造两篇文章学习。

【2.2】构造拉格朗日函数

如何构造拉格朗日函数,将两种约束代入目标函数,有两个步骤:
对不等式约束 g i ( x ) ≤ 0 g_{i}(x)\leq0 gi(x)0引入对偶变量 λ i ≥ 0 \lambda_{i}\geq0 λi0,这里也要求了非负性,非负性的构成不会改变 g i g_{i} gi在函数中的方向;
对等式约束 h j ( x ) = 0 h_{j}(x)=0 hj(x)=0引入对偶变量 μ j ( μ j ∈ R ) \mu_{j}(\mu_{j}\in R) μj(μjR),此处的 μ j \mu_{j} μj没有任何符号限制。

需要强调的是,取值范围上, μ j ∈ R \mu_{j}\in R μjR而不是 μ j ∈ R n \mu_{j} \in R^{n} μjRn
R n R^{n} Rn原问题的定义域,而 μ j \mu_{j} μj h j h_{j} hj的乘数因子, μ j \mu_{j} μj是量化等式约束条件对于原问题最优解的“影响程度”。原问题有m个等式约束,就会有m个 μ \mu μ来担任影响因子,每个 μ \mu μ都是标量,它们在实数域 R R R上取值已经完全足够。
所以从本质上来说, x x x μ \mu μ是完全不同的定义域,所以它们没有必要取值范围统一。

下一步是构造拉格朗日函数:

L ( x , λ , μ ) = f ( x ) + ∑ i = 1 m λ i g i ( x ) + ∑ j = 1 p μ j h j L(x,\lambda,\mu)=f(x)+\sum_{i=1}^{m}\lambda_{i}g_{i}(x)+\sum_{j=1}^{p}\mu_{j}h_{j} L(x,λ,μ)=f(x)+i=1mλigi(x)+j=1pμjhj
对偶函数 d ( λ , μ ) d(\lambda,\mu) d(λ,μ)定义为拉格朗日函数对原变量x的下确界:
d ( λ , μ ) = i n f x ∈ R L ( x , λ , μ ) = f ( x ) + ∑ i = 1 m λ i g i ( x ) + ∑ j = 1 p μ j h j ( x ) d(\lambda,\mu)=inf_{x\in R}L(x,\lambda,\mu)=f(x)+\sum_{i=1}^{m}\lambda_{i}g_{i}(x)+\sum_{j=1}^{p}\mu_{j}h_{j}(x) d(λ,μ)=infxRL(x,λ,μ)=f(x)+i=1mλigi(x)+j=1pμjhj(x)

这里的下确界有两种解释:
第一种,拉格朗日函数 L ( x , λ , μ ) L(x,\lambda,\mu) L(x,λ,μ)可以取到最小值,这个最小值就是下确界;
第二种,拉格朗日函数 L ( x , λ , μ ) L(x,\lambda,\mu) L(x,λ,μ)不可以取到最小值,但有一个无线逼近的界限,类似负指数函数 e − x e^{-x} ex,随着 x x x的逐渐增加,函数无限接近于0而不等于0,0就是负指数函数的下确界。
对偶函数的核心性质:找出原问题最优解的下确界。
假设原问题的最优值为 p ∗ = m i n f ( x ) ∣ g i ( x ) ≤ 0 , h j ( x ) = 0 p*=min{f(x)|g_{i}(x)\leq0,h_{j}(x)=0} p=minf(x)gi(x)0,hj(x)=0,则对任意可行的对偶变量 λ > 0 \lambda>0 λ>0 μ ∈ R \mu \in R μR均满足: d ( λ , μ ) ≤ p ∗ d(\lambda,\mu)\leq p^{*} d(λ,μ)p
这个理解起来也非常直观,因为 d ( λ , μ ) d(\lambda,\mu) d(λ,μ)是拉格朗日函数的最小值,显然任何实际的取值会比这个最小值要大。但这个解释依然粗糙,详细说明为:

  • 因为 h j = 0 h_{j}=0 hj=0,所以必定会有 μ j h j = 0 \mu _{j}h_{j}=0 μjhj=0
  • 因为 g i ( x ) ≤ 0 ( i = 1 , 2 , . . . , m ) g_{i}(x)\leq0(i=1,2,...,m) gi(x)0(i=1,2,...,m) λ i ≥ 0 \lambda_{i}\geq0 λi0,所以 ∑ i = 1 m λ i g i ( x ) ≤ 0 \sum_{i=1}^{m}\lambda_{i}g_{i}(x)\leq0 i=1mλigi(x)0
  • 所以代回拉格朗日函数有:
    L ( x , λ , μ ) = f ( x ) + ∑ i = 1 m λ i g i ( x ) + ∑ j = 1 p μ j h j = f ( x ) + ∑ i = 1 m λ i g i ( x ) ≤ f ( x ) L(x,\lambda,\mu)=f(x)+\sum_{i=1}^{m}\lambda_{i}g_{i}(x)+\sum_{j=1}^{p}\mu_{j}h_{j}=f(x)+\sum_{i=1}^{m}\lambda_{i}g_{i}(x)\leq f(x) L(x,λ,μ)=f(x)+i=1mλigi(x)+j=1pμjhj=f(x)+i=1mλigi(x)f(x)

p ∗ p^{*} p f ( x ) f(x) f(x)的一个最佳取值, d ( λ , μ ) d(\lambda,\mu) d(λ,μ)是拉格朗日函数的下确界,所以一定会满足:
d ( λ , μ ) ≤ p ∗ d(\lambda,\mu)\leq p^{*} d(λ,μ)p

【3】对偶问题

对偶问题是在对偶变量的可行域上 ( λ ≥ 0 , μ ∈ R ) (\lambda \geq 0,\mu \in R) (λ0,μR)最大化对偶函数。
为何要找这个最大的对偶函数,因为 d ( λ , μ ) d(\lambda,\mu) d(λ,μ)的实际取值上会随 λ , μ \lambda,\mu λ,μ的变化而变化,所以对偶问题就是最大化对偶函数问题:
m a x λ , μ d ( λ , μ ) max_{\lambda,\mu} d(\lambda,\mu) maxλ,μd(λ,μ)
由于 μ \mu μ没有取值限制,所以对偶问题唯一的约束是: λ i ≥ 0 ( i = 1 , 2 , . . . , m ) \lambda_{i}\geq0 (i=1,2,...,m) λi0(i=1,2,...,m)
可以将对偶问题的最优值记为 d ∗ = max ⁡ { d ( λ , μ ) ∣ λ ≥ 0 } d^*=\max \{{d(\lambda,\mu)|\lambda \geq0}\} d=max{d(λ,μ)λ0}

【3.1】强对偶性与弱对偶性

由于对偶函数依然是在拉格朗日函数的下确界中进行取值,所以依然满足:
d ∗ ≤ p ∗ d^* \leq p^* dp
对偶问题的最优值始终小于原问题的最优值。
定义对偶间隙为:
p ∗ − d ∗ p^*-d^* pd
p ∗ − d ∗ > 0 p^*-d^*>0 pd>0,对偶间隙大于0,称为弱对偶性;
p ∗ − d ∗ = 0 p^*-d^*=0 pd=0, 对偶间隙等于0,称为强对偶性。此时对偶问题的最优值等于原问题的最优值,求解对偶问题即可等价获得原问题的最优解。
强对偶并非总能成立,但在凸优化问题中,若满足Slater条件,则强对偶性一定成立。
对偶问题是在对偶可行域上最大化对偶函数,目的是找到最紧的下界。

【4】仿射函数

【4.1】仿射函数定义

未进行Slater条件的解读,好需要补充一个仿射函数的小知识。
仿射函数是指具有以下形式的函数:
定义域为 R n R^n Rn(n维实数空间)、值域为 R m R^m Rm(m维实数空间)的函数可以记为: R n → R m R^n \rightarrow R^m RnRm
如果存在一个线性变换(矩阵) A ∈ R m × n A \in R^{m \times n} ARm×n和一个常数 b ∈ R m b \in R^m bRm,使得对任意的 x ∈ R n x \in R^n xRn,都满足: f ( x ) = A x + b f(x)=Ax+b f(x)=Ax+b
则称 f ( x ) f(x) f(x)维仿射函数。
仿射函数式线性函数+常数项的组合,仿射函数对应的图像可以理解为是线性空间平移后的表现,比如:
f ( x ) = a x + b f(x)=ax+b f(x)=ax+b是一条直线,当 b = 0 b=0 b=0直线过原点,否则就是过原点直线的平移;
f ( x 1 , x 2 ) = a 1 x 1 + a 2 x 2 + b f(x_{1},x_{2})=a_{1}x_{1}+a_{2}x_{2}+b f(x1,x2)=a1x1+a2x2+b是三维空间中的一个面,当 b = 0 b=0 b=0平面过原点,否则就是过原点平面的平移;线动成面,无数的线组成了面,可以将一个维度理解为一个线性子空间,面就是两个线性子空间的组合;
进入更高维度,仿射函数对应的图像就是线性子空间平移后的综合表现。

【4.2】仿射函数凹凸性

最易于理解的仿射函数就是 f ( x ) = a x + b f(x)=ax+b f(x)=ax+b,这是一条直线。
那推广到任意仿射函数,会发现所有仿射函数既满足凸函数的定义,又满足非凸函数的定义。
这里回顾一下凸函数的定义:
首先定义域是凸集,也就是定义域内任意两点的连线一定还在定义域上;
然后还需满足:
f ( λ x + ( 1 − λ ) y ) ≤ λ f ( x ) + ( 1 − λ ) f ( y ) ( 0 ≤ λ ≤ 1 ) f(\lambda x+(1-\lambda)y)\leq \lambda f(x)+(1-\lambda)f(y)(0 \leq \lambda \leq 1) f(λx+(1λ)y)λf(x)+(1λ)f(y)(0λ1)
非凸函数的定义:
f ( λ x + ( 1 − λ ) y ) ≥ λ f ( x ) + ( 1 − λ ) f ( y ) ( 0 ≤ λ ≤ 1 ) f(\lambda x+(1-\lambda)y)\geq \lambda f(x)+(1-\lambda)f(y)(0 \leq \lambda \leq 1) f(λx+(1λ)y)λf(x)+(1λ)f(y)(0λ1)
凸函数和非凸函数有一个共同的交集是等号,刚好仿射函数全部都是等号,所以可以认为仿射函数既是凸函数又是非凸函数。
仿射函数的梯度和导数实常数,不会随着 x x x变化。

【5】Slater条件

对于凸优化问题,如果Slater条件满足,则原问题与对偶问题的最优值相等,也就是强对偶性成立。

【5.1】凸优化问题定义

先考虑标准形式的凸优化问题:
最小化目标函数: min ⁡ x f ( x ) \min_{x} f(x) minxf(x)
约束条件:
不等式约束: g i ( x ) ≤ 0 ( i = 1 , 2 , . . . , m ) g_{i}(x)\leq0(i=1,2,...,m) gi(x)0(i=1,2,...,m)
等式约束: h j ( x ) = 0 ( j = 1 , 2 , . . . , p ) h_{j}(x)=0(j=1,2,...,p) hj(x)=0(j=1,2,...,p)
定义域: x ∈ R n x\in R^{n} xRn
这里会有新要求:
f ( x ) f(x) f(x) g i ( x ) g_{i}(x) gi(x)是凸函数;
h j ( x ) h_{j}(x) hj(x)是仿射函数。

【5.2】Slater条件

Slater条件:存在一个严格可行点 x ∈ d o m ( f ) x\in dom(f) xdom(f),使得:
g i ( x ) < 0 ( i = 1 , 2 , . . . , m ) g_{i}(x)< 0(i=1,2,...,m) gi(x)<0(i=1,2,...,m) h j = 0 ( j = 1 , 1 , . . . , p ) h_{j}=0(j=1,1,...,p) hj=0(j=1,1,...,p)
dom(f)是domain of f的英文缩写,也就是要求这个严格可行点 x x x必须落在目标函数 f f f的定义域里,这样计算才是有效的。

【5.3】证明Slater条件保证强对偶性

记原问题的可行域为 X = { x ∣ g i ( x ) ≤ 0 ( i = 1 , 2 , . . . , m ) , h j = 0 ( j = 1 , 2 , . . . , p ) } X={\{x|g_{i}(x)\leq 0(i=1,2,...,m),h_{j}=0}(j=1,2,...,p)\} X={xgi(x)0(i=1,2,...,m),hj=0(j=1,2,...,p)}
原问题最优解为 p ∗ = i n f x ∈ X f ( x ) p^*=inf_{x \in X}f(x) p=infxXf(x)
对偶问题最优解 d ∗ = s u p λ ≥ 0 , μ d ( λ , μ ) d^*=sup_{\lambda \geq 0,\mu}d(\lambda ,\mu) d=supλ0,μd(λ,μ),且满足对偶间隙 d ∗ ≤ p ∗ d^*\leq p^* dp
证明目的:Slater条件成立, d ∗ = p ∗ d^*=p^* d=p

【5.3.1】反证法假设存在对偶间隙

假设 d ∗ < p ∗ d^*<p^* d<p,现在的目标是推出矛盾:

定义集合:
A = { f ( x ) , g 1 ( x ) , . . . , g m ( x ) , h 1 ( x ) , . . . , h p ( x ) ∣ x ∈ d o m ( f ) } A={\{f(x),g_{1}(x),...,g_{m}(x),h_{1}(x),...,h_{p}(x)}|x \in dom(f)\} A={f(x),g1(x),...,gm(x),h1(x),...,hp(x)xdom(f)}
B = { ( t , s 1 , . . . s m , r 1 , . . . , r p ) ∣ t < p ∗ , s i ≤ 0 , r j = 0 } B={\{(t,s_{1},...s_{m},r_{1},...,r_{p})|t<p^*,s_{i}\leq 0,r_{j}=0}\} B={(t,s1,...sm,r1,...,rp)t<p,si0,rj=0}
A是原问题目标函数与约束函数在定义域上的取值集合;
B是“目标值小于 p ∗ p^* p 且约束满足” 的集合
t t t对应原问题目标函数 f ( x ) f(x) f(x)的取值,要求 t < p ∗ t<p^* t<p p ∗ p^* p是原问题的最优值),所以 t t t是比原问题最优目标值更小的目标函数值;
s i s_{i} si对应原问题不等式约束 g i ( x ) g_{i}(x) gi(x)的取值,要求 s i ≤ 0 s_{i}\leq0 si0和原问题里的不等式约束 g i ( x ) ≤ 0 g_{i}(x)\leq0 gi(x)0相对应,代表“满足不等式约束的函数值”;
r j r_{j} rj对应原问题等式约束 h j ( x ) h_{j}(x) hj(x)的取值,要求 r j = 0 r_{j}=0 rj=0和原问题里的等式约束 g i ( x ) = 0 g_{i}(x)=0 gi(x)=0相对应,代表“满足等式约束的函数值”。
集合B是在“目标函数值-约束函数值”这个空间里,刻画比原问题最优情况更优(但实际上达不到的)虚拟集合:
t < p ∗ t<p^* t<p就假设存在比最优还小的目标值;
s i ≤ 0 , r j = 0 s_{i}\leq0,r_{j}=0 si0,rj=0继续维持了原问题的约束要求。
很显然,这两个集合必然满足: A ∩ B = ∅ A \cap B=\varnothing AB=

此时存在非零向量 ( μ , v 1 , . . . , v m , w 1 , . . . , w p ) (\mu,v_{1},...,v_{m},w_{1},...,w_{p}) (μ,v1,...,vm,w1,...,wp)和常数 c c c,使得对所有的 α ∈ A \alpha \in A αA b ∈ B b \in B bB,满足:
u ⋅ α 1 + ∑ v i α i + 1 + ∑ w j α m + j + 1 ≥ c ≥ u ⋅ b 1 + ∑ v i b i + 1 + ∑ w j b m + j + 1 u \cdot \alpha_{1}+\sum v_{i}\alpha_{i+1}+\sum w_{j}\alpha_{m+j+1}\geq c \geq u \cdot b_{1}+\sum v_{i}b_{i+1}+\sum w_{j}b_{m+j+1} uα1+viαi+1+wjαm+j+1cub1+vibi+1+wjbm+j+1
这个公式其实无需证明,因为 B B B集合和值小于 A A A集合的值,所以上述式子成立也在情理之中,但它确实有一个名字:凸集分离定理。

【5.3.1.1】证明 u > 0 u>0 u>0

定义集合:
通过分析 B B B集合中元素的极限: t → − ∞ , s i → − ∞ t \rightarrow -\infty,s_{i} \rightarrow -\infty t,si
可以推出:
u ≥ 0 u\geq 0 u0,否则不等式无法对 b ∈ B b \in B bB成立
u = 0 u=0 u=0,则 v i ≥ 0 v_{i}\geq 0 vi0且不全为零,为证明这一点,我们把前面的凸集分离定理换一个更好读懂的写法:
u ⋅ f + ∑ i m v i ⋅ g i + ∑ j = 1 p w j ⋅ h j ≥ u ⋅ t + ∑ i = 1 m v i ⋅ s i + ∑ j = 1 p w j ⋅ r j u \cdot f+\sum_{i}^{m}v_{i}\cdot g_{i}+\sum_{j=1}^{p}w_{j}\cdot h_{j}\geq u\cdot t+\sum_{i=1}^{m}v_{i}\cdot s_{i}+\sum_{j=1}^{p}w_{j}\cdot r_{j} uf+imvigi+j=1pwjhjut+i=1mvisi+j=1pwjrj
然后此时只讨论适用于集合 B B B的右侧部分:
u ⋅ t + ∑ i = 1 m v i ⋅ s i + ∑ j = 1 p w j ⋅ r j ≤ c u \cdot t+\sum_{i=1}^{m}v_{i}\cdot s_{i}+\sum_{j=1}^{p}w_{j}\cdot r_{j}\leq c ut+i=1mvisi+j=1pwjrjc
u = 0 u=0 u=0的时候,如果出现 v i < 0 v_{i}<0 vi<0,由于此时已经假设了 s i → − ∞ s_{i}\rightarrow -\infty si,所以就会有 v i s i → + ∞ v_{i}s_{i}\rightarrow +\infty visi+的情况,这会破坏上式的成立,所以 v i v_{i} vi必然非负。
此外 v i v_{i} vi不能全0,之后再详细分析。
此时对于集合 A A A,会有: u ⋅ f + ∑ i m v i ⋅ g i + ∑ j = 1 p w j ⋅ h j = ∑ i m v i ⋅ g i + ∑ j = 1 p w j ⋅ h j ≥ c u \cdot f+\sum_{i}^{m}v_{i}\cdot g_{i}+\sum_{j=1}^{p}w_{j}\cdot h_{j}=\sum_{i}^{m}v_{i}\cdot g_{i}+\sum_{j=1}^{p}w_{j}\cdot h_{j}\geq c uf+imvigi+j=1pwjhj=imvigi+j=1pwjhjc因为 h j = 0 h_{j}=0 hj=0恒成立,所以上式进一步化简为 ∑ j = 1 m v i ⋅ g i ≥ c \sum_{j=1}^{m}v_{i}\cdot g_{i}\geq c j=1mvigic
因为 g i < 0 , v i ≥ 0 g_{i}<0,v_{i}\geq0 gi<0,vi0,所以 v i ⋅ g i ≤ 0 v_{i}\cdot g_{i}\leq 0 vigi0,所以此时 c ≤ 0 c\leq0 c0
此时对于 v i ⋅ s i ≤ c v_{i} \cdot s_{i}\leq c visic,因为 s i ≤ 0 , v i ≥ 0 s_{i}\leq 0,v_{i}\geq0 si0,vi0,所以要求 c ≥ 0 c \geq 0 c0,此时只有 c = 0 c=0 c=0满足条件。
但实际上一定存在KaTeX parse error: Undefined control sequence: \< at position 11: v_{i}g_{i}\̲<̲0的情况,所以 c = 0 c=0 c=0不能满足 ∑ v i ⋅ g i < 0 ≥ c = 0 \sum v_{i}\cdot g_{i}<0 \geq c=0 vigi<0c=0
所以到这一步, u = 0 u=0 u=0不可取,那就只有 u > 0 u>0 u>0

【5.3.1.2】证明 d ∗ = p ∗ d^*=p^* d=p

面对 u > 0 u>0 u>0这一条件,可以通过等比例缩放所有系数使得 u = 1 u=1 u=1.
此时对集合 A A A有:
f ( x ) + ∑ i = 1 m v i ⋅ g i + ∑ j = 1 p w j ⋅ h j ≥ c f(x)+\sum_{i=1}^{m}v_{i}\cdot g_{i}+\sum_{j=1}^{p}w_{j}\cdot h_{j}\geq c f(x)+i=1mvigi+j=1pwjhjc
对集合 B B B有:
t + ∑ i = 1 m v i ⋅ s i + ∑ j = 1 p w j ⋅ r j ≤ c t+\sum_{i=1}^{m}v_{i}\cdot s_{i}+\sum_{j=1}^{p}w_{j}\cdot r_{j}\leq c t+i=1mvisi+j=1pwjrjc
因为在 B B B中,要求 t < p ∗ t<p^* t<p p ∗ p^* p是原问题的最优值),也就是 t t t是比原问题最优目标值更小的目标函数值;
这时候进一步设置 s i = 0 s_{i}=0 si=0,因为 s i ≥ 0 s_{i}\geq 0 si0,所以直接取 s i = 0 s_{i}=0 si=0不影响结果,会对集合B有:
t ≤ c t\leq c tc
t t t无限接近 p ∗ p^* p时,上式转化为 p ∗ ≤ c p^* \leq c pc

此时的对偶函数可以定义为:
d ( λ , μ ) = i n f x ∈ d o m ( f ) [ f ( x ) + ∑ i = 1 m λ i g i + ∑ j = 1 p μ j h j ] d(\lambda,\mu)=inf_{x\in dom(f)}{[f(x)+\sum_{i=1}^{m}\lambda_{i}g_{i}+\sum_{j=1}^{p}\mu_{j}h_{j}]} d(λ,μ)=infxdom(f)[f(x)+i=1mλigi+j=1pμjhj]

将对偶函数的系数代入集合A,有:
f ( x ) + ∑ i = 1 m λ i ⋅ g i + ∑ j = 1 p μ j ⋅ h j ≥ c f(x)+\sum_{i=1}^{m}\lambda_{i}\cdot g_{i}+\sum_{j=1}^{p}\mu_{j}\cdot h_{j}\geq c f(x)+i=1mλigi+j=1pμjhjc
由于对偶函数取的是下确界,所以有 d ( λ , μ ) ≥ c d(\lambda,\mu)\geq c d(λ,μ)c
那所有函数的实际取值都不会小于下确界,所以有 c ≥ p ∗ ≥ d ∗ ≥ c c \geq p^* \geq d^*\geq c cpdc所以只能取值 p ∗ = d ∗ p^*=d^* p=d
所以强对偶成立。

【6】总结

学习了拉格朗日函数、对偶函数、对偶问题、仿射函数、slater条件和它们之间的关联关系。


网站公告

今日签到

点亮在社区的每一天
去签到