如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~
0. 前言
在样本空间中,划分超平面可通过线性方程wTx+b=0决定。
严格的说,对超平面设置上界和下界,如下图所示(图源:机器学习):

并满足:
{wTxi+b⩾+1, yi=+1wTxi+b⩽−1, yi=−1
支持向量定义为使得上式等号成立的向量,上界下界的距离称为间隔:
γ=∣∣w∣∣2
1. 拉格朗日乘子法
拉格朗日乘子法(Lagrange multipliers)是一种寻找多元函数在一组约束下的极值的方法。
假设问题具有m个等式约束和n个不等式约束:
xmin s.t. f(x)hi(x)=0 (i=1,..,m)gj(x)⩽0 (j=1,...,n)
引入拉格朗日乘子λ μ,相应的拉格朗日函数为:
L(x,λ,μ)=f(x)+i=1∑mλihi(x)+j=1∑nμjgj(x)
对应的KKT条件(Karush-Kuhn-Tucker)为:
⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧∇xL=0hi(x)=0gj(x)⩽0μj⩾0μjgj(x)=0
2. SVM参数求解方法
欲找到最大间隔划分超平面,需要满足:
w,bmin s.t. 21∣∣w∣∣2yi(wTxi+b)⩾1, i=1,...,m
根据拉格朗日乘子法,有下式:
L(w,b,α)=21∣∣w∣∣2+i=1∑mαi(1−yi(wTxi+b))∂w∂L=0⇒w=i=1∑mαiyixi∂b∂L=0⇒0=i=1∑mαiyi
可得到对偶问题:
αmax s.t. i=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxji=1∑mαiyi=0,αi⩾0, i=1,...,m
对应的KKT条件:
⎩⎪⎨⎪⎧αi⩾0yif(xi)−1⩾0αi(yif(xi)−1)=0
采用SMO(Sequential Minimal Optimization)求解参数:先固定αi之外的所有参数,然后求αi上的极值(αi可以通过其他变量导出),于是,SMO每次选择两个变量αi和αj,并固定其他参数,求解拉格朗日乘子法的对偶问题,更新αi和αj,迭代这个过程到收敛为止。
求解出α之后,可得超平面f(x)=wTx+b=∑i=1mαiyixiTx+b。其中,对任意支持向量ysf(xs)=1,所以可得b=∣S∣1∑s∈S(1/ys−∑i∈SαiyixiTxs)。
3. 软间隔
很多时候数据并不是线性可分的,无法辨别找到的超平面是否是过拟合引起的问题。
可采用软间隔,允许SVM在一些样本上出错。引入松弛变量ξ:
w,b,ξmin s.t. 21∣∣w∣∣2+Ci=1∑mξiyi(wTxi+b)⩾1−ξiξi⩾0, i=1,...,m
根据拉格朗日乘子法,有下式:
L(w,b,ξ,α,μ)=21∣∣w∣∣2+Ci=1∑mξi+i=1∑mαi(1−ξi−yi(wTxi+b))−i=1∑mμiξi∂w∂L=0⇒w=i=1∑mαiyixi∂b∂L=0⇒0=i=1∑mαiyi∂ξi∂L=0⇒C=αi+μi
可得到对偶问题,与硬间隔唯一的差别在于约束条件:
αmax s.t. i=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxji=1∑mαiyi=0,0⩽αi⩽C, i=1,...,m
对应的KKT条件:
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧αi⩾0, μi⩾0yif(xi)−1+ξi⩾0αi(yif(xi)−1+ξi)=0ξi⩾0, μiξi⩾0
4. 核方法
将样本从原始空间映射到更高维的特征空间,使得样本在这个特征空间内线性可分。
核函数表示为:k(xi,xj)=ϕ(xi)Tϕ(xj)
拉格朗日乘子法对偶问题修改为:
αmax s.t. i=1∑mαi−21i=1∑mj=1∑mαiαjyiyjk(xi,xj)i=1∑mαiyi=0,αi⩾0, i=1,...,m
超平面修改为:f(x)=wTϕ(x)+b
常见的核函数如下图所示(图源:机器学习):

5. 支持向量回归
支持向量回归(Support Vector Regression)构建一个2ε的间隔带,若样本落入间隔带,则被认为预测正确。
间隔带两侧松弛程度不同,有:
w,b,ξ,ξ^min s.t. 21∣∣w∣∣2+Ci=1∑m(ξi+ξ^i)f(xi)−yi⩽ε+ξiyi−f(xi)⩽ε+ξ^iξi⩾0, ξ^i⩾0, i=1,...,m
根据拉格朗日乘子法,有下式:
L(w,b,ξ,ξ^,α,α^,μ,μ^)=21∣∣w∣∣2+Ci=1∑m(ξi+ξ^i)−i=1∑mμiξi−i=1∑mμ^iξ^i+i=1∑mαi(f(xi)−yi−ε−ξi)+i=1∑mα^i(yi−f(xi)−ε−ξ^i)∂w∂L=0⇒w=i=1∑m(αi^−αi)xi∂b∂L=0⇒0=i=1∑m(α^i−αi)∂ξi∂L=0⇒C=αi+μi∂ξ^i∂L=0⇒C=α^i+μ^i
可得到对偶问题:
αmax s.t. i=1∑myi(αi^−αi)−ε(αi^+αi)−21i=1∑mj=1∑m(αi^−αi)(αj^−αj)xiTxji=1∑m(αi^−αi)=0,0⩽αi,αi^⩽C, i=1,...,m
对应的KKT条件:
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧αi(f(xi)−yi−ε−ξi)=0αi^(yi−f(xi)−ε−ξ^i)=0αiαi^=0, ξiξ^i=0(C−αi)ξi=0, (C−αi^)ξ^i=0
SVR的解表示为:f(x)=∑i=1m(αi^−αi)xiTx+b。
其中,b=yi+ε−∑j=1m(αj^−αj)xjTxi。
如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~