SVM目的:选择有最大间隔的线性分类器(linear separator)
三个关键:通过优化求解,需找到最大间隔分类面,使用核技巧解决非线性问题
1.线性可分的SVM
VC维(VC Dimension)
使用VC维来衡量一类函数的复杂度:
lll个点,每个点可以被标记为正类负类样本,可以有2l2^l2l中标记方法。如果在函数集HHH中有一个函数fff可以将样本正确分类,则称这些点可以被HHH分类开。函数集HHH的VC维定义为可以以被分散开的最大训练数据点数。
在ddd为空间内,VC维为d+1d+1d+1:HHH 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||}}γ=∣∣w∣∣y(x)=∣∣w∣∣wx+w0

推导γ=1∣∣w∣∣\gamma={1\over{||w||}}γ=∣∣w∣∣1:
定义每个样本到分类面的距离为γi\gamma_iγi
定义γminiγ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有{w∗x1+b=1w∗x2+b=0(1)
两式子相减有w∗(x1−x2)=1(2)w*(x_1-x_2)=1\tag2w∗(x1−x2)=1(2)
又有x1−x2=γw∣∣w∣∣,其中w∣∣w∣∣是法向量的方向向量(3)x_1-x_2=\gamma{w\over{||w||}},其中{w\over{||w||}}是法向量的方向向量\tag3x1−x2=γ∣∣w∣∣w,其中∣∣w∣∣w是法向量的方向向量(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∗(γ∣∣w∣∣w)=∣∣w∣∣γw∗w=γ∣∣w∣∣
则有γ=1∣∣w∣∣\gamma={1\over{}||w||}γ=∣∣w∣∣1
则最大化间隔则变为最小化∣∣w∣∣||w||∣∣w∣∣
则优化目标可以写作minw,b12∣∣w∣∣2\displaystyle\min_{w,b}{1\over2}||w||^2w,bmin21∣∣w∣∣2,因为还要需要保证分类正确性,则添加约束有:
SVM:{minw,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,bmin21∣∣w∣∣2s.t.∀i,(wTx(i)+b)t(i)≥1,t解决正负号问题(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)=21wTw−i=1∑lα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)=0∇bL(w,b,αi)=0→w=i=1∑lαiyixi→i=1∑lα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}
对偶形式的SVM:L(w,b,αi)=21i=1∑lj=1∑lαiαjyiyjxixj−i=1∑lαi[yi(j=1∑lαjyjxj∗xi+b)−1]=21i=1∑lj=1∑lαiαjyiyjxixj−i=1∑lαiyij=1∑lαjyjxjxi−i=1∑lαiyib+i=1∑lαi=−21i=1∑lj=1∑lαiαjyiyjxixj−i=1∑lαiyib+i=1∑lαi=−21i=1∑lj=1∑lαiαjyiyjxixj+i=1∑lαis.t.i=1∑lαiyi=0,αi≥0,∀i=1,...,l
KKT条件
目标是最小化f(x)f(x)f(x),其受约束于g(x)≤0g(x)\leq0g(x)≤0,即minx∈R2f(x),s.t.g(x)≤0.\displaystyle\min_{x\in R^2}f(x),s.t.g(x)\leq0.x∈R2minf(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.KKT条件:⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧1) ∇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^*)=0∇xf(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.KKT条件:⎩⎪⎨⎪⎧0≤αiαi∗[yi(wTx+b)−1]=0yi(wTx+b)−1≥0
未激活:α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{minw,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.soft−mrgin SVM⎩⎪⎪⎨⎪⎪⎧w,bmin21∣∣w∣∣22+Ci=1∑lξ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}
软间隔对偶形式的SVM:L(w,b,αi)=−21i=1∑lj=1∑lαiαjyiyjxixj+i=1∑lαis.t.i=1∑lαiyi=0,0≤αi≤C,∀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}使用核函数的软间隔对偶形式的SVM:L(w,b,αi)=−21i=1∑lj=1∑lαiαjyiyjκ(xi,xj)+i=1∑lαis.t.i=1∑lαiyi=0,0≤αi≤C,∀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]),ϕ([x1′x2′])]
若找到对应的核函数为K(x,x′)=(1+xTx′)2K(x,x')=(1+x^Tx')^2K(x,x′)=(1+xTx′)2,则不用求映射后的点积,直接将x与x′x与x'x与x′代入核函数
如何找核函数: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=KT,核矩阵对称,即核函数关于两个输入对称yTKy≥0 ∀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)d | d≥1d\geq 1d≥1为多项式次数 |
高斯核函数 | κ(x,z)=exp(−∥x−z∥22σ2){\kappa(x,z)}=exp(-{{\|x-z\|^2}\over{2\sigma^2}})κ(x,z)=exp(−2σ2∥x−z∥2) | σ\sigmaσ为高斯核带宽 |
拉普拉斯核函数 | κ(x,z)=exp(−∥x−z∥σ){\kappa(x,z)}=exp(-{{\|x-z\|}\over{\sigma}})κ(x,z)=exp(−σ∥x−z∥) | σ≥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),f1和f2为将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=1∑lj=1∑lαiαjyiyjκ(xi,xj)+i=1∑lαis.t.i=1∑lαiyi=0,0≤αi≤C,∀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=1∑lα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(∑m∈Samtmk(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=NS1n∈S∑(tn−m∈S∑amtmk(xn,xm))
5.SVM与逻辑回归
hingehingehinge损失函数
SVM{minw,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.SVM⎩⎪⎪⎨⎪⎪⎧w,bmin21∣∣w∣∣22+Ci=1∑lξis.t.(wTxi−b)yi≥1−ξ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=minw,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,bmin21∣∣w∣∣22+Ci=1∑lmax(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,1−yy^),预测值为y^=wxj+b
SVM=minw,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,bmin21∣∣w∣∣22+Ci=1∑llhinge(yj,wxj+b)
绿色为hingehingehinge损失函数,红色为0-1损失函数
逻辑回归、hingehingehinge损失及0-1损失:都可以表示为w^=argminwλ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λ∥w∥2+n=1∑NL(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\geq50≥50K+ | 增加特征,然后使用逻辑回归或者无核函数的SVM |
过拟合
通过控制CCC、核、核的参数来控制过拟合