SVM

SVM目的:选择有最大间隔的线性分类器(linear separator)
三个关键:通过优化求解,需找到最大间隔分类面,使用核技巧解决非线性问题

1.线性可分的SVM

VC维(VC Dimension)

使用VC维来衡量一类函数的复杂度:
lll个点,每个点可以被标记为正类负类样本,可以有2l2^l2l中标记方法。如果在函数集HHH中有一个函数fff可以将样本正确分类,则称这些点可以被HHH分类开。函数集HHH的VC维定义为可以以被分散开的最大训练数据点数。
ddd为空间内,VC维为d+1d+1d+1HHH ininin Rd−>VCR^d->VCRd>VC Dimension=d+1Dimension=d+1Dimension=d+1
如二维空间内,VC维为3,即二维空间内函数集HHH最多可以分类的点数为3个,分为8类。

SVM模型

VC维有上界,其中R是样本点构成的圆的半径,γ\gammaγmarginmarginmargin间隔,hhh为VC维。给定样本后,γ\gammaγ约大可以使得VC维越小,从而模型的复杂度越小:h≤4R2γ2h\leq{{4R^2}\over{\gamma^2}}hγ24R2
如图红色是一个分类器,点x为一个样本点。γ\gammaγ定义为离分类平面最近的样本点到分类平面的距离,γ=y(x)∣∣w∣∣=wx+w0∣∣w∣∣\gamma={{y(x)}\over{||w||}}={{wx+w_0}\over{||w||}}γ=wy(x)=wwx+w0

推导γ=1∣∣w∣∣\gamma={1\over{||w||}}γ=w1

定义每个样本到分类面的距离为γi\gamma_iγi
定义γmin⁡iγi\gamma \displaystyle\min_i \gamma_iγiminγi
x1x_1x1为离分类面最近的点,x2x_2x2为分类面上一点,
有{w∗x1+b=1w∗x2+b=0(1)有\left\{ \begin{aligned} w*x_1+b=1\\ w*x_2+b=0\\ \end{aligned} \right.\tag1{wx1+b=1wx2+b=0(1)
两式子相减有w∗(x1−x2)=1(2)w*(x_1-x_2)=1\tag2w(x1x2)=1(2)
又有x1−x2=γw∣∣w∣∣,其中w∣∣w∣∣是法向量的方向向量(3)x_1-x_2=\gamma{w\over{||w||}},其中{w\over{||w||}}是法向量的方向向量\tag3x1x2=γwwww(3)
将(3)带入(2)有1=w∗(γw∣∣w∣∣)=γ∣∣w∣∣w∗w=γ∣∣w∣∣1=w*(\gamma{{w}\over{||w||}})={\gamma\over{||w||}}w*w=\gamma||w||1=w(γww)=wγww=γw
则有γ=1∣∣w∣∣\gamma={1\over{}||w||}γ=w1
则最大化间隔则变为最小化∣∣w∣∣||w||w
则优化目标可以写作min⁡w,b12∣∣w∣∣2\displaystyle\min_{w,b}{1\over2}||w||^2w,bmin21w2,因为还要需要保证分类正确性,则添加约束有:
SVM:{min⁡w,b12∣∣w∣∣2s.t.∀i,(wTx(i)+b)t(i)≥1,t解决正负号问题(4)SVM:\left\{ \begin{aligned} &\displaystyle\min_{w,b}{1\over2}||w||^2\\ &s.t.\forall i,(w^Tx^{(i)}+b)t^{(i)}\geq1,t解决正负号问题\\ \end{aligned} \right.\tag4SVM:w,bmin21w2s.t.i,(wTx(i)+b)t(i)1t(4)

加入拉格朗日乘子

将约束转化为引入了拉格朗日乘子的无约束优化
L(w,b,αi)=12wTw−∑i=1lαi[yi(wTxi+b)−1](5)L(w,b,\alpha_i)={1\over2}w^Tw-\sum^l_{i=1}\alpha_i[y_i(w^T x_i+b)-1]\tag5L(w,b,αi)=21wTwi=1lαi[yi(wTxi+b)1](5)

对偶问题形式的SVM

对(5)中w,bw,bw,b分别求偏导,有
∇wL(w,b,αi)=0→w=∑i=1lαiyixi∇bL(w,b,αi)=0→∑i=1lαiyi=0(6)\begin{aligned} \nabla_wL(w,b,\alpha_i)=0 &\rightarrow \boldsymbol{w=\sum^l_{i=1}\alpha_iy_ix_i}\\ \nabla_bL(w,b,\alpha_i)=0 &\rightarrow \sum^l_{i=1}\alpha_iy_i=0 \end{aligned}\tag6 wL(w,b,αi)=0bL(w,b,αi)=0w=i=1lαiyixii=1lαiyi=0(6)

将(6)带入(5)中,有
对偶形式的SVM:L(w,b,αi)=12∑i=1l∑j=1lαiαjyiyjxixj−∑i=1lαi[yi(∑j=1lαjyjxj∗xi+b)−1]=12∑i=1l∑j=1lαiαjyiyjxixj−∑i=1lαiyi∑j=1lαjyjxjxi−∑i=1lαiyib+∑i=1lαi=−12∑i=1l∑j=1lαiαjyiyjxixj−∑i=1lαiyib+∑i=1lαi=−12∑i=1l∑j=1lαiαjyiyjxixj+∑i=1lαis.t.∑i=1lαiyi=0,αi≥0,∀i=1,...,l \begin{aligned} 对偶形式的SVM:L(w,b,\alpha_i)&={1\over2}{\sum^l_{i=1}\sum^l_{j=1}\alpha_i\alpha_jy_iy_jx_ix_j}- {\sum^l_{i=1}\alpha_i[y_i(\sum^l_{j=1}\alpha_jy_jx_j* x_i+b)-1]}\\ &={1\over2}{\sum^l_{i=1}\sum^l_{j=1}\alpha_i\alpha_jy_iy_jx_ix_j}-\sum^l_{i=1}\alpha_iy_i\sum^l_{j=1}\alpha_jy_jx_jx_i - \sum^l_{i=1}\alpha_iy_ib+\sum^l_{i=1}\alpha_i\\ &=-{1\over2}{\sum^l_{i=1}\sum^l_{j=1}\alpha_i\alpha_jy_iy_jx_ix_j}- \sum^l_{i=1}\alpha_iy_ib+\sum^l_{i=1}\alpha_i\\ &=-{1\over2}{\sum^l_{i=1}\sum^l_{j=1}\alpha_i\alpha_jy_iy_jx_ix_j} +\sum^l_{i=1}\alpha_i\\ &s.t.\sum^l_{i=1}\alpha_iy_i=0,\alpha_i\geq0,\forall i=1,...,l \end{aligned} SVML(w,b,αi)=21i=1lj=1lαiαjyiyjxixji=1lαi[yi(j=1lαjyjxjxi+b)1]=21i=1lj=1lαiαjyiyjxixji=1lαiyij=1lαjyjxjxii=1lαiyib+i=1lαi=21i=1lj=1lαiαjyiyjxixji=1lαiyib+i=1lαi=21i=1lj=1lαiαjyiyjxixj+i=1lαis.t.i=1lαiyi=0,αi0,i=1,...,l

KKT条件

目标是最小化f(x)f(x)f(x),其受约束于g(x)≤0g(x)\leq0g(x)0,即min⁡x∈R2f(x),s.t.g(x)≤0.\displaystyle\min_{x\in R^2}f(x),s.t.g(x)\leq0.xR2minf(x),s.t.g(x)0.
引入拉格朗日乘子后:L(x,λ)=f(x)+λg(x)L(x,\lambda)=f(x)+\lambda g(x)L(x,λ)=f(x)+λg(x)
x∗x^*x是局部最优时⇔\Leftrightarrow存在一个唯一的λ∗\lambda^*λ受约束于
KKT条件:{1)   ∇xL(x∗,λ∗)=02)   λ∗≥03)   λ∗g(x∗)=04)   g(x∗)≤05)   Plus positive definite constraints on ∇xxL(x∗,λ∗)(7)KKT条件:\left\{ \begin{aligned} &1)~~~\nabla_xL(x^*,\lambda^*)=0\\ &2)~~~\boldsymbol{ \lambda^*\geq 0}\\ &3)~~~\boldsymbol{ \lambda^*g(x^*)=0 }\\ &4)~~~\boldsymbol{ g(x^*)\leq0}\\ &5)~~~Plus~positive~definite~constraints~on~\nabla_{xx}L(x^*,\lambda^*)\tag7\\ \end{aligned} \right.KKT1)   xL(x,λ)=02)   λ03)   λg(x)=04)   g(x)05)   Plus positive definite constraints on xxL(x,λ)(7)
情况1(inactive未激活):λ∗=0\lambda^*=0λ=0时,L(x∗,λ∗)=f(x∗)L(x^*,\lambda^*)=f(x^*)L(x,λ)=f(x),满足条件2和条件3,其中条件1中可推出∇xf(x∗)=0\nabla_xf(x^*)=0xf(x)=0,条件4可推出x∗x^*x是一个可行解
情况2(activate激活):当λ∗≥0\lambda^*\geq0λ0,则有L(x∗,λ∗)=f(x∗)+λ∗g(x∗)L(x^*,\lambda^*)=f(x^*)+\lambda^* g(x^*)L(x,λ)=f(x)+λg(x),满足条件2,
其中条件1可推出∇xf(x∗)=−λ∗∇xg(x∗)\nabla_xf(x^*)=-\lambda^*\nabla_xg(x^*)xf(x)=λxg(x)
条件3可推出g(x∗)=0g(x^*)=0g(x)=0,和L(x∗,λ∗)=f(x∗)L(x^*,\lambda^*)=f(x^*)L(x,λ)=f(x)

式子(6)中有w=∑i=1lαiyixiw=\sum^l_{i=1}\alpha_iy_ix_iw=i=1lαiyixi,根据KKT条件有,x∗=αix^*=\alpha_ix=αi使,有
KKT条件:{0≤αiαi∗[yi(wTx+b)−1]=0yi(wTx+b)−1≥0KKT条件:\left\{ \begin{aligned} &0\leq\alpha_i\\ &\alpha_i*[y_i(w^Tx+b)-1]=0\\ &y_i(w^Tx+b)-1\geq0 \end{aligned} \right.KKT0αiαi[yi(wTx+b)1]=0yi(wTx+b)10
未激活:αi=0 and yi(wTx+b)>1\alpha_i=0 ~and~y_i(w^Tx+b)>1αi=0 and yi(wTx+b)>1
激活:αi>0 and yi(wTx+b)=1\alpha_i>0 ~and~y_i(w^Tx+b)=1αi>0 and yi(wTx+b)=1,对应于样本点在分类平面上,这些样本称作支持向量

2.软间隔-引入松弛变量

soft−mrgin SVM{min⁡w,b12∣∣w∣∣22+C∑i=1lξis.t.(wTx(i)+b)t(i)≥1−ξi,∀i=1,...,lsoft-mrgin~SVM \left\{ \begin{aligned} &\displaystyle\min_{w,b}{1\over2}||w||^2_2+\color{red}{C\sum^l_{i=1}\xi_i}\\ &s.t.(w^Tx^{(i)}+b)t^{(i)}\geq1-{\color{red}{\xi_i}},\forall i=1,...,l\\ \end{aligned} \right.softmrgin SVMw,bmin21w22+Ci=1lξis.t.(wTx(i)+b)t(i)1ξi,i=1,...,l
ξi\xi_iξi越大,该样本分类错误越大
软间隔对偶形式的SVM:L(w,b,αi)=−12∑i=1l∑j=1lαiαjyiyjxixj+∑i=1lαis.t.∑i=1lαiyi=0,0≤αi≤C,∀i=1,...,l \begin{aligned} 软间隔对偶形式的SVM:L(w,b,\alpha_i) &=-{1\over2}{\sum^l_{i=1}\sum^l_{j=1}\alpha_i\alpha_jy_iy_jx_ix_j} +\sum^l_{i=1}\alpha_i\\ &s.t.\sum^l_{i=1}\alpha_iy_i=0,0\leq\alpha_i\leq\color{red}{C,\forall i=1,...,}l \end{aligned} SVML(w,b,αi)=21i=1lj=1lαiαjyiyjxixj+i=1lαis.t.i=1lαiyi=0,0αiC,i=1,...,l

3.核技巧和非线性问题

通过核函数可以将低维空间的数据增加到高维空间,使得非线性问题转换为线性可分数据。
ϕ(x)\phi(x)ϕ(x)表示将xxx映射到高维的过程,定义核函数为核函数:K(xi,xj)=ϕ(xi)Tϕ(xj)核函数:K(x_i,x_j)=\phi(x_i)^T\phi(x_j)K(xi,xj)=ϕ(xi)Tϕ(xj)
则对应的使用核函数对偶形式的SVM为:
使用核函数的软间隔对偶形式的SVM:L(w,b,αi)=−12∑i=1l∑j=1lαiαjyiyjκ(xi,xj)+∑i=1lαis.t.∑i=1lαiyi=0,0≤αi≤C,∀i=1,...,l\begin{aligned} 使用核函数的软间隔对偶形式的SVM:L(w,b,\alpha_i) &=-{1\over2}{\sum^l_{i=1}\sum^l_{j=1}\alpha_i\alpha_jy_iy_j \color{red}{\kappa(x_i,x_j)}} +\sum^l_{i=1}\alpha_i\\ &s.t.\sum^l_{i=1}\alpha_iy_i=0,0\leq\alpha_i\leq C,\forall i=1,...,l \end{aligned}使SVML(w,b,αi)=21i=1lj=1lαiαjyiyjκ(xi,xj)+i=1lαis.t.i=1lαiyi=0,0αiC,i=1,...,l
例:若原始输入为x=[x1,x2]x=[x_1,x_2]x=[x1,x2],二维映射到6维数据

映射关系为ϕ([x1x2])=1,2x1,2x2,x12,x22,2x1x2映射关系为\phi \left( \begin{bmatrix} x_1\\x_2 \end{bmatrix} \right)=1,\sqrt2x_1,\sqrt2x_2,x_1^2,x_2^2,\sqrt2x_1x_2ϕ([x1x2])=1,2x1,2x2,x12,x22,2x1x2
则映射后的两个xxx做点积需要求[ϕ([x1x2]),ϕ([x1′x2′])]\begin{bmatrix} \phi \left( \begin{bmatrix} x_1\\x_2 \end{bmatrix} \right),\phi \left( \begin{bmatrix} x_1'\\x_2' \end{bmatrix} \right) \end{bmatrix}[ϕ([x1x2])ϕ([x1x2])]
若找到对应的核函数为K(x,x′)=(1+xTx′)2K(x,x')=(1+x^Tx')^2K(x,x)=(1+xTx)2,则不用求映射后的点积,直接将x与x′x与x'xx代入核函数

如何找核函数:Mercer 核理论
核矩阵:K(i,j)=ϕ(xi)Tϕ(xj)=K(xi,xj)K(i,j)=\phi(x_i)^T\phi(x_j)=K(x_i,x_j)K(i,j)=ϕ(xi)Tϕ(xj)=K(xi,xj)
有效核需满足:
{K=KT,核矩阵对称,即核函数关于两个输入对称yTKy≥0 ∀y,核矩阵正定 \left\{ \begin{aligned} &K=K^T,核矩阵对称,即核函数关于两个输入对称\\ &y^TKy\geq0~\forall y,核矩阵正定\\ \end{aligned} \right.{K=KTyTKy0 y,
若一个核函数KKK对所有样本都可以算出核矩阵,且核矩阵对称半正定,则核函数有效
常见核函数

名称表达式参数
线性核函数κ(x,z)=xTz{\kappa(x,z)}=x^Tzκ(x,z)=xTz
多项式核函数κ(x,z)=(xTz+c)d{\kappa(x,z)}=(x^Tz+c)^dκ(x,z)=(xTz+c)dd≥1d\geq 1d1为多项式次数
高斯核函数κ(x,z)=exp(−∥x−z∥22σ2){\kappa(x,z)}=exp(-{{\|x-z\|^2}\over{2\sigma^2}})κ(x,z)=exp(2σ2xz2)σ\sigmaσ为高斯核带宽
拉普拉斯核函数κ(x,z)=exp(−∥x−z∥σ){\kappa(x,z)}=exp(-{{\|x-z\|}\over{\sigma}})κ(x,z)=exp(σxz)σ≥0\sigma\geq0σ0
sigmoid核函数κ(x,z)=tanh(βxTz+θ){\kappa(x,z)}=tanh(\beta x^Tz+\theta)κ(x,z)=tanh(βxTz+θ)tanhtanhtanh为双曲正切函数,β>0,θ<0\beta>0,\theta<0β>0,θ<0

常见核函数构造:
(1)κ(x,z)=a1κ1(x,z)+a2κ2(x,z){\kappa(x,z)}=a_1{\kappa_1(x,z)}+a_2{\kappa_2(x,z)}κ(x,z)=a1κ1(x,z)+a2κ2(x,z)
(2)κ(x,z)=κ1(x,z)κ2(x,z){\kappa(x,z)}={\kappa_1(x,z)}{\kappa_2(x,z)}κ(x,z)=κ1(x,z)κ2(x,z)
(3)κ(x,z)=f1(x)f2(x),f1和f2{\kappa(x,z)}=f_1(x)f_2(x),f_1和f_2κ(x,z)=f1(x)f2(x),f1f2为将x映射到实数的函数

4.SVM求解

使用核函数的软间隔对偶形式的SVM:
L(w,b,αi)=−12∑i=1l∑j=1lαiαjyiyjκ(xi,xj)+∑i=1lαis.t.∑i=1lαiyi=0,0≤αi≤C,∀i=1,...,l\begin{aligned} L(w,b,\alpha_i) &=-{1\over2}{\sum^l_{i=1}\sum^l_{j=1}\alpha_i\alpha_jy_iy_j \color{red}{\kappa(x_i,x_j)}} +\sum^l_{i=1}\alpha_i\\ &s.t.\sum^l_{i=1}\alpha_iy_i=0,0\leq\alpha_i\leq C,\forall i=1,...,l \end{aligned}L(w,b,αi)=21i=1lj=1lαiαjyiyjκ(xi,xj)+i=1lαis.t.i=1lαiyi=0,0αiC,i=1,...,l
SMO算法:
固定αi\alpha_iαi以外的参数,则αi\alpha_iαi可由其他参数α\alphaα导出,求得αi\alpha_iαi上的极值。SMO每次选择两个变量αi\alpha_iαiαj\alpha_jαj,对L(w,b,αi)L(w,b,\alpha_i)L(w,b,αi)进行求解,更新αi\alpha_iαiαj\alpha_jαj,不断重复,直至收敛
求解参数w:
w=∑i=1lαiyixiw=\sum^l_{i=1}\alpha_iy_ix_iw=i=1lαiyixi
求解参数b:
支持向量xnx_nxn满足tny(xn)=1t_ny(x_n)=1tny(xn)=1,n表示第n个样本,则tn(∑m∈Samtmk(xn,xm)+b)=1t_n(\sum_{m\in S}a_mt_mk(x_n,x_m)+b)=1tn(mSamtmk(xn,xm)+b)=1,左右同乘tnt_ntn
所有支持向量可以计算出一个稳定的解:b=1NS∑n∈S(tn−∑m∈Samtmk(xn,xm))b={1\over{N_S}}\sum_{n\in S}(t_n-\sum_{m\in S}a_mt_mk(x_n,x_m))b=NS1nS(tnmSamtmk(xn,xm))

5.SVM与逻辑回归

hingehingehinge损失函数
SVM{min⁡w,b12∣∣w∣∣22+C∑i=1lξis.t.(wTxi−b)yi≥1−ξi,∀i=1,...,lSVM\left\{ \begin{aligned} &\displaystyle\min_{w,b}{1\over2}||w||^2_2+C\sum^l_{i=1}\xi_i\\ &s.t.(w^Tx_i-b)y_i\geq1-{\xi_i},\forall i=1,...,l\\ \end{aligned} \right.SVMw,bmin21w22+Ci=1lξis.t.(wTxib)yi1ξi,i=1,...,l
ξj=max⁡(0,1−(wxj+b)yj)\xi_j=\max(0,1-(wx_j+b)y_j)ξj=max(0,1(wxj+b)yj)代入SVM有
SVM=min⁡w,b12∣∣w∣∣22+C∑i=1lmax(0,1−(wxj+b)yj)SVM=\begin{aligned} &\displaystyle\min_{w,b}{1\over2}||w||^2_2+C\sum^l_{i=1}max(0,1-(wx_j+b)y_j)\\ \end{aligned}SVM=w,bmin21w22+Ci=1lmax(0,1(wxj+b)yj)
定义hinge loss:lhinge(y,y^)=max(0,1−yy^),预测值为y^=wxj+bhinge~loss:l_{hinge(y,\hat{y})}=max(0,1-y\hat{y}),预测值为\hat y=wx_j+bhinge loss:lhinge(y,y^)=max(0,1yy^),y^=wxj+b
SVM=min⁡w,b12∣∣w∣∣22+C∑i=1llhinge(yj,wxj+b)SVM=\min_{w,b}{1\over2}||w||^2_2+C\sum^l_{i=1}l_{hinge}(y_j,wx_j+b)SVM=w,bmin21w22+Ci=1llhinge(yj,wxj+b)
绿色为hingehingehinge损失函数,红色为0-1损失函数
在这里插入图片描述逻辑回归、hingehingehinge损失及0-1损失:都可以表示为w^=arg⁡min⁡wλ2∥w∥2+∑n=1NL(t^nwTϕ(xn)),t^n∈{+1,−1}\hat w=\arg \min_w{\lambda \over 2}\|w\|^2+\sum^N_{n=1}L(\hat t_nw^T\phi(x_n)),\hat t_n\in\{+1,-1\}w^=argwmin2λw2+n=1NL(t^nwTϕ(xn))t^n{+1,1}在这里插入图片描述
经验总结:
n表示特征数,m表示样本数

n与m大小方法
n很大,如n=10K,m=10~1K逻辑回归,或SVM不使用核函数
n很小,如n=11K,m=1010K带高斯核函数的SVM
n很小,m很大,如n=1~1K,m≥50\geq5050K+增加特征,然后使用逻辑回归或者无核函数的SVM

过拟合
通过控制CCC、核、核的参数来控制过拟合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值