在上一篇文章中,我们推导出了 SVM 的目标函数:
min(w,b)||w||s.t. yi(wTxi+b)≥δ, i=1,...,m
由于求解过程中,限制条件中的 δ 对结果不产生影响,所以简单起见我们把 δ 替换成 1。另外,为了之后求解的方便,我们会把原函数中的 ||w|| 换成 12||w||2,优化前者跟优化后者,最终的结果是一致的。这样,我们就得到 SVM 最常见的目标函数:
min(w,b)12w2s.t. yi(wTxi+b)≥1, i=1,...,m(1)
现在,我们要开始着手来解这个函数。
拉格朗日乘子法
对于(1)式中的问题,如果限制条件是等号的话,我们是可以直接用拉格朗日乘子法求解的。而为了应对不等号的情况,研究人员提出了 KKT 条件下的拉格朗日乘子法。所谓 KKT 条件,我们可以简单地把它当作拉格朗日乘子法的进阶版,只要原优化问题满足几个特定的条件,就可以仿照拉格朗日乘子法来求解问题。(关于 KKT 条件的具体内容,博主没有仔细研究过)。
而 SVM 原问题,刚好满足这些条件。因此可以直接套用拉格朗日乘子法的流程,首先列出拉格朗日函数:
L(w,b,α)=12||w||2−n∑i=1αi(yi(wTxi+b)−1)s.t.αi≥0(2)
(注意,在 KKT 条件下,需要满足 αi≥0)
然后,令 ∂L∂w=0,∂L∂b=0,可以得到方程组:
∂L∂w=w−n∑i=1αiyixi=0(3)
∂L∂b=n∑i=1αiyi=0(4)
在约束条件是等式的情况中,我们还会根据 ∂L∂α=0 得到另外几组方程,然后可以解出 w 和 b。
不过,由于现在约束条件是不等式,所以 ∂L∂α 得到的是一堆不等式:
yi(wxi+b)−1≥0 i=1,2,…,N
这样是没法直接解出 w 和 b 的。
为了让方程组的形式更加简单,我们可以联立 (2)(3)(4) 把 w 和 b 消掉(后文有详细的推导过程):
L(w,b,α)=n∑i=1αi−12n∑i=1n∑j=1αiαjyiyjxTjxi(5)
到这一步,熟悉优化的同学应该发现,我们已经把原问题转化为拉格朗日对偶问题。换句话说,我们接下来要优化的问题就变为:
maxαn∑i=1αi−12n∑i=1n∑j=1αiαjyiyjxTjxis.t. ai≥0,i=1,…,mm∑i=1αiyi=0(6)
拉格朗日对偶问题
博主刚开始接触拉格朗日对偶的时候,一直搞不懂为什么一个最小化的问题可以转换为一个最大化问题。直到看了这篇博文后,才对它有了形象的理解。所以,下面我就根据这篇博文,谈谈我对拉格朗日对偶的理解。
对偶问题
先看一个简单的线性规划问题:
minx,yx+3ys.t. x+y≥2x,y≥0
要求 x+3y 的最小值,可以通过变换目标函数来获得:
x+y+2y≥2+2×0=2
所以 x+3y 的最小值是 2。
如果将问题泛化:
minx,ypx+qys.t. x+y≥2x,y≥0(7)
同样地,通过这种拼凑的方法,我们可以将问题变换为:
a(x+y)≥2abx≥0cy≥0a(x+y)+bx+cy=(a+b)x+(a+c)y≥2a(8)
其中,a,b,c>0。
(8)式对 ∀a,b,c>0 均成立。不管 a+b、a+c 的值是多少,(a+b)x+(a+c)y 的最小值都是 2a。因此,我们可以加上约束:a+b=p、a+c=q,这样就得到 px+qy 的最小值为 2a。需要注意的是,2a 是 px+qy 的下界,即这个最小值对 ∀a 都要成立,所以,需要在约束条件内求出 a 的最大值,才能得出 px+qy 的最小值。
这样一来,问题就转换为:
maxa,b,c 2as.t. p=a+bq=a+ca,b,c≥0(9)
(9)式就是(7)式的对偶形式。
对偶和对称有异曲同工之妙。所谓对偶,就是把原来的最小化问题(7)转变为最大化问题(9)。这种转化对最终结果没有影响,但却使问题更加简单(问题(9)中的限制条件都是等号,而不等号只是针对单个变量 a,b,c,因此可以直接套用拉格朗日乘子法)。
另外,对偶分强对偶和弱对偶两种。借用上面的例子,强对偶指的是 px+qy 的最小值就等于 2a 的最大值,而弱对偶则说明,px+qy 的最小值大于 2a 的最大值。SVM 属于强对偶问题。
线性规划问题的对偶问题
现在,我们把问题再上升到一般的线性规划问题:
minx∈RncTxs.t. Ax=bGx≤h(10)
用同样的方法进行转换:
−uTAx=−bTu−vTGx≥−hTv(−uTA−vTG)x≥−bTu−hTu
这样,可以得到该线性问题的对偶形式:
maxu∈Rm,v∈Rr−bTu−hTus.t. c=−ATu−GTvv> 0(11)
这种「拼凑」的转换方法可以用拉格朗日函数作为通用的方法解决。定义原函数如下:
f(x)=cTx
引入拉格朗日函数:
L(x,u,v)=f(x)+uT(Ax−b)+vT(Gx−h)
其中,v>0。
由于 Ax−b=0,Gx−h≤0,所以必有 f(x)≥L(x,u,v),换句话说,minxf(x)≥minxL(x,u,v)。因此,求 f(x) 的最小值就转换为求 L(x,u,v) 的最小值。
L(x,u,v)=(cT+uTA+vTG)x−uTb−vTh
minxL(x,u,v) 在 x 没有任何限制的前提下,是不存在最小值。因此,我们要加上约束条件:cT+uTA+vTG=0,这样,minxL(x,u,v)=−uTb−vTh。如此一来,我们又把原问题转换到(11)中的对偶问题上了。
二次规划问题的对偶问题
由于 SVM 的目标函数是一个二次规划问题(带有平方项),因此我们最后再来看一个二次规划的优化问题。
假设有如下二次规划问题:
minx 12xTQx+cTxs.t. Ax=bx≥0
其中,Q>0(保证有最小值)。
按照线性规划问题的思路,构造拉格朗日函数(注意,构造出来的 L(x,u,v) 必须小于等于原函数 12xTQx+cTx):
L(x,u,v)=12xTQx+cTx−uTx+vT(Ax−b)=12xTQx+(c+vTA−u)Tx+vTb
由于二次函数 ax2+bx+c 的最小值在 x=−b2a 处取得,因此可以求得函数 L 的最小值:
minxL(x,u,v)=−12(c−u+ATv)TQ−1(c−u+ATv)−bTv(1)
这样一来,我们就求得原问题的拉格朗日对偶问题:
maxu,v−12(c−u+ATv)TQ−1(c−u+ATv)−bTvs.t. u>0
拉格朗日对偶问题
现在总结一下拉格朗日对偶问题的基本「套路」。
假设原问题为:
minxf(x)s.t. hi(x)≤0,i=1,…,mli(x)=0,j=1,…,r
则拉格朗日原始问题为:
L(x,u,v)=f(x)+m∑i=1uihi(x)+r∑j=1vjlj(x)
其中,ui>0。
之后,我们求出 minxL(x,u,v)=g(u,v),将问题转换为对偶问题:
maxu,v g(u,v)s.t. u≥0
教材上通常把拉格朗日原始问题表示为 minxmaxu,vL(x,u,v),而对偶问题表示成 maxu,vminxL(x,u,v)。它们之间存在如下关系:
minxmaxu,vL(x,u,v)≥maxu,vminxL(x,u,v)
SVM的对偶问题
现在看回 SVM。我们将约束条件表述成 yi(wTxi+b)−1≥0, i=1,…,m,然后,按照上面的「套路」,表示出拉格朗日原始问题:
L(w,b,α)=12w2−m∑i=1αi[yi(wTxi+b)−1]s.t. αi≥ 0, i=1,…,m(12)
下面要求出 L(w,b,α) 关于 w 和 b 的最小值,这里可以直接通过偏导求得:
∇wL=w−m∑i=1αiyixi=0(13)
∂L∂b=−m∑i=1αiyi=0(14)
由(13)式解得:
w=m∑i=1αiyixi(15)
(15)式代入(12)式得到:
W(α,b)=m∑i=1αi−12m∑i=1m∑j=1αiαjyiyjxixj−bm∑i=1αiyi(16)
而(14)式已经表明:∑mi=1αiyi=0,所以(16)式化简为:
W(α)=m∑i=1αi−12m∑i=1m∑j=1αiαjyiyjxixj(17)
(17)式就是最终版本的对偶形式了(上文的 (6) 式其实也是这样推出来的)。自此,我们得出 SVM 的拉格朗日对偶问题:
maxαW(α)s.t. ai≥0,i=1,…,mm∑i=1αiyi=0
解出 α 后,就可以根据 (15) 式解出 w,然后根据超平面的间隔求出 b。
当然,这个对偶形式的优化问题依然不是那么容易解的,研究人员提出了一种 SMO 算法,可以快速地求解 α。不过算法的具体内容,本文就不继续展开了。
参考
欢迎关注我的公众号「AI小男孩」,立志用大白话讲懂AI
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异