ML-对偶(Duality)问题初识

Primal vs Dual

为什么要把原始问题(primal) 转为 对偶问题(dual), 主要原因在于, 求解方便吧大概.

对偶问题

  • 原始问题和其对偶问题, 都是对看待同一个问题的,从不同角度, 例如求解一个最小化问题, 然后通过对偶形式求解最大化问题等.
  • 原问题不好求解, 转为对偶问题, 有一种类似逼近的思想, 比如拉格朗日 或是 泰勒级数展开

既然是对于同一个问题的不同角度来看, 假设就两个角度: primal 和 dual. 假设, 在primal 即原始问题下的最优解为 p, 在其dual的角度下, 最优解为 d则有

  • p* = d* (Strong duality), 强对偶, 比如SVM 的KKT条件
  • p* != d* (Week duality)

从primal 转为 dual, 可以通过 拉格朗日乘子来实现.

Lower bound property

结论: p >= d**

Standard Form:

minmize f0(x)s.t.fi(x)<=0,i=1,2,..mhj(x)=0,j=1,2...p

通过拉格朗日乘子(将约束转为无约束求极值)

why 拉格朗日乘子法?

  • 回顾多元函数求条件极值的思路(高数),

  • 假设2维, 曲线g(x,y) = 0 与f(x,y) =Ck, 的等值线(面) 相交, 那么沿着g(x,y)=0的方向两头向曲点靠近, 必然一个方向使得f(x,y)=Ck增大, 而另一个方向使CK减少, 必然在g(x,y)上存在一点使得Ck最小. 而这个点就是f(x,y)=a 与g(x,y)=0 相切的点, 切点处的两个法向量(梯度向量) 是平行的

  • 即: 在切点的法向量(梯度方向) 是平行的 (相乘λ 倍常数, λ>0)

假设切点是 (x0,y0), 根据f(x,y), g(x,y) 在该处的梯度是平行的, 即

f(x0,y0)=(fx(x0,y0),fy(x0,y0))g(x0,y0)=(gx(x0,y0),gy(x0,y0))

f(x0,y0)//g(x0,y0)f(x0,y0)g(x0,y0)=λ0:

fx(x0,y0)+λ0 gx(x0,y0))=0fy(x0,y0)+λ0 gy(x0,y0))=0g(x0,y0)=0

由此将条件极值问题通过拉格朗日乘子,转为了求解方程组的问题.

为了求解,引入一个辅助函数 L(x,y,λ)=f(x,y)+λ g(x,y)

  • 这个函数称为拉格朗日函数, λ 称为拉格朗日乘子
  • 可微函数去极值的必要条件是梯度向量等于零

即: L(x0,y0,λ0)=0, 恰好对应上面的方程组, 巧了吗, 这不是.

(ps, 当然也可以通过分析方法隐函数相关知识来推导出, 这里不展开了).

通过拉格朗日, 将primal 转为dual 即

L(x,λ,ν)=f0(x)+i=1mλifi(x)+i=1pνihi(x)

转为拉格朗日的 dual 函数形式即:

g(λ,ν)=infimumxL(x,λ,ν), inf..

=infx[f0(x)+i=1mλifi(x)+i=1pνihi(x)]

即所谓的 lower bound property:

即: g(λ,ν)<=p=f0(x)λ,ν (此乃最为关键一环),

这种思想就是: min primalmax dual

证明如下:

minmize f0(x)s.t.fi(x)<=0,i=1,2,..mhj(x)=0,j=1,2...p

假设 x' 是primal 问题的可行解, 即:

L(x,λ,ν)=f0(x)+i=1mλifi(x)+i=1pνihi(x) , 则必然有

f0(x)>=L(x,λ,ν)>=infx(x,λ,ν)=g(λ,ν) (可证: g(λ,ν)"" )

  • i=1mλifi(x)<=0, 因为x'是可行解, 满足约束条件
  • i=1pνihi(x)=0, 同样因为约束条件

即证: f0(x)>=g(λ,ν),:p>=d

case1: Least Norm Minimization

min xTxs.t. Ax=b

解:

引入拉格朗日函数:

L(x,λ)=xTx+λT(Axb)""x:xL(x,λ)=0=2x+ATλx=12ATλ

g(λ)=infx[xTx+λT(Axb)]=(12ATλ)T(12ATλ)+λT[A(12ATλ)b]

=14λTAATλ12λTAATλλTb

=14λTAATλλTb

即: p>=14λTAATλλTb

即对应的dual:

max z=14λTAATλλTbs.t...

case2: Linear Programing

min wTxs.t.Ax=bx≻=0

先进行标准化得到:

min wTxs.t.Ax=bx<=0

引入拉格朗日函数得:

L(x,λ,ν)=wTx+λT(Axb)+νT(x)

=wTx+λTAxλTbνTx

=(w+ATλν)xλTb

同样首先"固定x:"

xL(x,λ,ν)=0=w+ATλv:x

将不影响的x 代入g得到:

g(λ,ν)=infx(λTb)

即对应的 daul:

max λTbs.t. w+ATλν=0

发现 ν>0 其实跟木目标函数无关, 即可转为:

max νTbs.t. w+AT>=0

Strong and Weak duality

由上, 关于primal 问题和 dual 问题, 如果其最优解分别是 p* 和 d* ,

根据 lower bound property 的推导则有**p * >= d * ** :

  • if p* = d*, 则称为强对偶

  • if p* < d*, 则称为弱对偶

强对偶(strong) ,一般情况下不会发生, 在凸函数下一般会成立; 对于non-convex 有时是会成立的. 针对于convex 判断其是强对偶的条件称为:

slater's condtions

即: minmize f0(x)s.t.fi(x)<=0,i=1,2,..mhj(x)=0,j=1,2...p

 x,fi(x)<0,hj(x)=0

则称满足 slater's conditons, 可判定该凸函数是强对偶的哦.

complementary slackness

暂时我也不知道该怎么进行翻译, "松弛条件?", 感觉也不大合理. 算了, 就英文吧, 反正都是一个符号而已. 假设, 我们来来*考虑强对偶的情况下(p * = d ):

  • x* 是 primal 问题的解
  • λ,ν 是dual 问题的解

minmize f0(x)s.t.fi(x)<=0,i=1,2,..mhj(x)=0,j=1,2...p

即有

f0(x)=g(λ,ν)infx[f0(x)+i=1mλifi(x)+i=1pνihi(x)]

必然:

<=infx[f0(x)+i=1mλifi(x)+i=1pνihi(x)]

  • hi(x)=0
  • λfi(x)<=0

<=f0(x)

这就发现有点矛盾(= 和 <=)了, 要使不等式成立的话, 发现只能取等于哦, 即:

λfi(x)=0, 这样也就意味着2种情况:

  • λ=0, λfi(x)<=0
  • λ>0, λfi(x)=0

把这个条件: λfi(x)=0 就称为 complementary slackness, 它是构成KKT条件的一部分, 后面再整一波KKT吧.

posted @   致于数据科学家的小陈  阅读(880)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示

目录导航