当前位置: 首页 > news >正文

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

【1】引言

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

【2】对偶函数

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

【2.1】原问题的标准形式

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

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

【2.2】构造拉格朗日函数

如何构造拉格朗日函数,将两种约束代入目标函数,有两个步骤:
对不等式约束gi(x)≤0g_{i}(x)\leq0gi(x)0引入对偶变量λi≥0\lambda_{i}\geq0λi0,这里也要求了非负性,非负性的构成不会改变gig_{i}gi在函数中的方向;
对等式约束hj(x)=0h_{j}(x)=0hj(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∈Rn\mu_{j} \in R^{n}μjRn
RnR^{n}Rn原问题的定义域,而μj\mu_{j}μjhjh_{j}hj的乘数因子,μj\mu_{j}μj是量化等式约束条件对于原问题最优解的“影响程度”。原问题有m个等式约束,就会有m个μ\muμ来担任影响因子,每个μ\muμ都是标量,它们在实数域RRR上取值已经完全足够。
所以从本质上来说,xxxμ\muμ是完全不同的定义域,所以它们没有必要取值范围统一。

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

L(x,λ,μ)=f(x)+∑i=1mλigi(x)+∑j=1pμjhjL(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(λ,μ)=infx∈RL(x,λ,μ)=f(x)+∑i=1mλigi(x)+∑j=1pμjhj(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−xe^{-x}ex,随着xxx的逐渐增加,函数无限接近于0而不等于0,0就是负指数函数的下确界。
对偶函数的核心性质:找出原问题最优解的下确界。
假设原问题的最优值为p∗=minf(x)∣gi(x)≤0,hj(x)=0p*=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(λ,μ)是拉格朗日函数的最小值,显然任何实际的取值会比这个最小值要大。但这个解释依然粗糙,详细说明为:

  • 因为hj=0h_{j}=0hj=0,所以必定会有μjhj=0\mu _{j}h_{j}=0μjhj=0
  • 因为gi(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=1mλigi(x)≤0\sum_{i=1}^{m}\lambda_{i}g_{i}(x)\leq0i=1mλigi(x)0
  • 所以代回拉格朗日函数有:
    L(x,λ,μ)=f(x)+∑i=1mλigi(x)+∑j=1pμjhj=f(x)+∑i=1mλigi(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^{*}pf(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λ,μ的变化而变化,所以对偶问题就是最大化对偶函数问题:
maxλ,μ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∗>0p^*-d^*>0pd>0,对偶间隙大于0,称为弱对偶性;
p∗−d∗=0p^*-d^*=0pd=0, 对偶间隙等于0,称为强对偶性。此时对偶问题的最优值等于原问题的最优值,求解对偶问题即可等价获得原问题的最优解。
强对偶并非总能成立,但在凸优化问题中,若满足Slater条件,则强对偶性一定成立。
对偶问题是在对偶可行域上最大化对偶函数,目的是找到最紧的下界。

【4】仿射函数

【4.1】仿射函数定义

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

【4.2】仿射函数凹凸性

最易于理解的仿射函数就是f(x)=ax+bf(x)=ax+bf(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)
凸函数和非凸函数有一个共同的交集是等号,刚好仿射函数全部都是等号,所以可以认为仿射函数既是凸函数又是非凸函数。
仿射函数的梯度和导数实常数,不会随着xxx变化。

【5】Slater条件

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

【5.1】凸优化问题定义

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

【5.2】Slater条件

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

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

记原问题的可行域为X={x∣gi(x)≤0(i=1,2,...,m),hj=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∗=infx∈Xf(x)p^*=inf_{x \in X}f(x)p=infxXf(x)
对偶问题最优解d∗=supλ≥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),g1(x),...,gm(x),h1(x),...,hp(x)∣x∈dom(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,s1,...sm,r1,...,rp)∣t<p∗,si≤0,rj=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 且约束满足” 的集合
ttt对应原问题目标函数f(x)f(x)f(x)的取值,要求t<p∗t<p^*t<pp∗p^*p是原问题的最优值),所以ttt是比原问题最优目标值更小的目标函数值;
sis_{i}si对应原问题不等式约束gi(x)g_{i}(x)gi(x)的取值,要求si≤0s_{i}\leq0si0和原问题里的不等式约束gi(x)≤0g_{i}(x)\leq0gi(x)0相对应,代表“满足不等式约束的函数值”;
rjr_{j}rj对应原问题等式约束hj(x)h_{j}(x)hj(x)的取值,要求rj=0r_{j}=0rj=0和原问题里的等式约束gi(x)=0g_{i}(x)=0gi(x)=0相对应,代表“满足等式约束的函数值”。
集合B是在“目标函数值-约束函数值”这个空间里,刻画比原问题最优情况更优(但实际上达不到的)虚拟集合:
t<p∗t<p^*t<p就假设存在比最优还小的目标值;
si≤0,rj=0s_{i}\leq0,r_{j}=0si0,rj=0继续维持了原问题的约束要求。
很显然,这两个集合必然满足:A∩B=∅A \cap B=\varnothingAB=

此时存在非零向量(μ,v1,...,vm,w1,...,wp)(\mu,v_{1},...,v_{m},w_{1},...,w_{p})(μ,v1,...,vm,w1,...,wp)和常数ccc,使得对所有的α∈A\alpha \in AαAb∈Bb \in BbB,满足:
u⋅α1+∑viαi+1+∑wjαm+j+1≥c≥u⋅b1+∑vibi+1+∑wjbm+j+1u \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
这个公式其实无需证明,因为BBB集合和值小于AAA集合的值,所以上述式子成立也在情理之中,但它确实有一个名字:凸集分离定理。

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

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

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

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

此时的对偶函数可以定义为:
d(λ,μ)=infx∈dom(f)[f(x)+∑i=1mλigi+∑j=1pμjhj]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=1mλi⋅gi+∑j=1pμj⋅hj≥cf(x)+\sum_{i=1}^{m}\lambda_{i}\cdot g_{i}+\sum_{j=1}^{p}\mu_{j}\cdot h_{j}\geq cf(x)+i=1mλigi+j=1pμjhjc
由于对偶函数取的是下确界,所以有d(λ,μ)≥cd(\lambda,\mu)\geq cd(λ,μ)c
那所有函数的实际取值都不会小于下确界,所以有p∗≥d∗≥cp^* \geq d^*\geq cpdc所以只能取值p∗=d∗p^*=d^*p=d
所以强对偶成立。

【6】总结

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

http://www.xdnf.cn/news/1233865.html

相关文章:

  • Vim编辑器详解:从入门到高效使用
  • 【Unity】背包系统 + 物品管理窗口 (上)
  • 【一天一个知识点】RAG遇见推理
  • 谷歌开源Agent框架ADK快速入门
  • 前端应用权限设计面面观
  • 防御综合实验
  • 【0基础PS】PS工具详解--图案图章工具
  • 安灯系统(Andon System)
  • 【昇腾推理PaddleOCR】生产级部署方式
  • SpringBoot与TurboGears2跨栈、整合AI服务、智能客服路由系统整合实战
  • FreeRTOS源码分析二:task启动(RISCV架构)
  • 单位长度上的RC参数
  • Codeforces Round 1039 (Div. 2) A-C
  • sifu mod制作 相关经验
  • LangGraph认知篇-Command函数
  • 【ROS2】ROS2节点Node机制与常用命令行
  • 快速了解决策树
  • 一个物理引擎仿真器(mujoco这种)的计算流程
  • 面经——电子电路技术知识详解
  • 关于鸦片战争的历史
  • python匿名函数lambda
  • 题单【模拟与高精度】
  • leetcode热题——组合
  • Java 中的 HashMap.merge() 方法详解
  • 【AI学习】RadioDiff:代码学习
  • 西门子 G120 变频器全解析:从认知到参数设置
  • SpringBoot 02 AOP
  • 「iOS」————weak底层原理
  • 「iOS」————SideTable
  • OpenVLA复现