支持向量机
Rn空间中的点x∈Rn,超平面f(x)=wTx+b=0,w∈Rn,b∈R。 整个n维空间被分成两部分。w就是这个超平面的法向量。w指向的那个方向就是f(x)为正的那一部分。
点到超平面距离:|ax0+by0+c|√a2+b2。为了想让距离体现出点在超平面的哪一侧,通常不加这个绝对值符号:ax0+by0+c√a2+b2。
对于高维超平面,给出点x0∈Rn,w为法向量,从x0引垂线到x1,则x0−x1=lw|w|,故|l|=|x0−x1|,且x1在超平面上。x1=x0−lw|w|,f(x1)=wTx1+b=(w,x1)+b=(w,x0)−l|w|+b=0,最终得到:l=(w,x0)+b|w|=wTx0+b|w|=f(x0)|w|
现在平面上有若干个两种颜色的点,尝试将其二分类。使用感知机模型很容易找到一个超平面将其区分,但这样的效果好吗?支持向量机希望找到的超平面是尽可能好的,希望不同分类的点中到超平面的最短垂直距离尽可能大。直观来看,如果两个分类的点到超平面的最短距离一样大,那么这个超平面既不能往上移动,也不能往下移动。
形式化来说,对于(x1,y1)...(xn,yn),xi∈Rk,yi∈{0,1},给出w∈Rk,b∈R,分类平面f(x)=wTx+b=0。带符号距离:wTxi+b|w|。我们希望的是yi(wTxi+b|w|)>0,表示确实分开了,希望maxw,b(miniyi(wTxi+b)|w|)
优化问题:maxw∈Rk,b∈R(miniyi(wTxi+b)w),约束条件为yi(wTxi+b)>0。
极小化风险?极大化收益?把yi(wTxi+b)看作收益,|w|看作风险,则优化问题1:maxw,b(mini(yiwTxi+b)),约束条件为||w||=1(风险固定)。优化问题2:min||w||,约束条件为mini(yi(wTxi+b))≥1,这等价于min||w||2,约束条件为∀i∈[1,n],yi(wTxi+b))≥1。
求解这个问题可以引入二次规划,通常形式为:
有现成的包可以对其进行求解。
如果不使用二次规划的话,那么就可以从对偶问题的角度出发,受拉格朗日乘子法的启发:
maxai≥0(||w||2+Σni=1ai(1−yi(wTxi+b)))
如果约束条件都满足,即1−yi(wTxi+b)≤0,因为ai≥0,因此求和号里是恒小于等于0的。因此只有ai等于0的时候才能得到极大,此时要极大化的就是||w||2。 而如果1−yi(wTxi+b)>0,那么极大化的结果是正无穷。
求极小的时候,minb,w(maxai≥0(||w||2+Σni=1ai(1−yi(wTxi+b))))等于求min ||w||2且满足约束条件1−yi(wTxi+b)≤0
现在就把一个二次规划问题转换为带有拉格朗日乘子法性质的问题。ai必须是正的!
现在把min和max交换一下位置,问题等价于maxai≥0(minb,w(||w||2+Σni=1ai(1−yi(wTxi+b))))。为什么对于这个问题可以交换呢?因为里面的这部分是关于w的凸函数,通常这种情况下是可以交换的。此时ai固定,可以对w,b求梯度:2w=Σni=1aiyixi,Σni=1aiyi=0。可以得到w=12Σni=1aiyixi,将其回代,得到:maxai≥0(−14Σni,j=1aiajyiyjxTixj+Σni=1ai),且Σni=1aiyi=0。眼前的这个优化问题中,yi都是给定的,xi也都是给定的。因此这个问题就变成了针对于ai的一个问题。其中ai都是一次的和二次的,针对ai的约束也都是一次的和二次的。可以发现这是一个对于ai的二次规划问题。把对于w的二次规划问题转换为对于ai的二次规划问题后究竟得到了什么信息呢?主要体现:对于ai的二次规划问题中,xTixj=(xi,xj),如果这个内积是另外一种形式,这丝毫不影响二次规划的结果。分析如下:对于Φ:Rk→Rm(k<m),经过非线性变换:x→Φ(x),这个变换过程可能是非线性的,当然也可能就是简单的升维。(x1,y1)...(xn,yn)→(Φ(x1),y1)...(Φ(xn),yn)。对于低维空间线性不可分的点,升维变换后可能就线性可分了。问题变为:maxai≥0(−14Σni,j=1aiajyiyj(Φ(xi),Φ(xj))+Σni=1ai),Σni=1aiyi=0,ai≥0。如果解出了所有的a,那么应该怎么区分原来的点呢?此时w=Σni=1aiyiΦ(xi),超平面Rm:(w,x)+b=0等价于(Σni=1aiyiΦ(xi),Φ(X))+b=0。其放到低维空间是超曲面。
更一般的内积:K(xi,xj)=(Φ(xi),Φ(xj)),也可以是这样的:K(xi,xj)=(a+b(xi,xj))m。条件是,不论什么样的内积,其构成的二维矩阵必须是正定的。满足这样的条件的函数K:核函数。其可以对应到Φ:Rk→Rm。这里的m可以小于等于正无穷。
二次规划:maxai≥0(−14Σni,j=1aiajyiyjK(xi,xj)+Σni=1ai),且要满足约束条件。f(x)=Σni=1aiyiK(xi,X)+b,分类问题就变成f(x)>0 or <0。最后可能绝大部分ai=0,不等于0的ai对应的点就构成了支持向量。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2020-04-11 NOIP 2017 提高组 DAY1 T1小凯的疑惑(二元一次不定方程)
2020-04-11 Educational Codeforces Round 85 B. Middle Class(排序/贪心/水题)
2020-04-11 Educational Codeforces Round 85 A. Level Statistics(水题)