【机器学习】5.支持向量机

间隔与支持向量

给定数据集D={(x1,y1),(x2,y2),...,(xm,ym)\mathop (x_1,y_1),(x_2,y_2),...,(x_m,y_m)},yi[1,+1]\mathop y_i\in{[-1,+1]}训练的基本思想就是基于训练集D在样本空间找到一个划分超平面。
在这里插入图片描述在样本空间中,划分超平面可通过如下线性方程来描述
WTx+b=0W^Tx+b = 0
其中w=(w1,w2,...,wd)\mathop w = (w_1,w_2,...,w_d)为法向量,决定超平面的方向,b为位移量,决定超平面与原点治安的距离,记为(w,b)
样本空间中任意点x到超平面(w,b)的距离为:
r=WTx+bwr = \frac{|W^Tx+b|}{||w||}
若将w,b等比例增大,例如2w,2b,超平面未改变,但函数间隔缺改变了,所以除以||w||。

若超平面划分正确,则有:
{wTxi+b>0,yi=+1wTxi+b<0,yi=1\begin{cases} w^Tx_i+b>0, & y_i =+1 \\ w^Tx_i+b<0, & y_i =-1 \end{cases}
令:
{wTxi+b1,yi=+1wTxi+b1,yi=1\begin{cases} w^Tx_i+b \geq 1, & y_i =+1 \\ w^Tx_i+b \leq -1, & y_i =-1 \end{cases}
若训练样本使wTxi+b=±1\mathop w^Tx_i +b=\pm1,则被称为支持向量,两个异类支持向量到超平面的距离之和成为间隔。
r=2wr = \frac{2}{||w||}
欲找到最大化间隔的划分超平面,即使r最大
maxw,b2ws.t.yi(wTxi+b1)max_{w,b}\frac{2}{||w||}_{s.t. y_i(w_Tx_i+b\geq 1)}

即:
minw,b0.5ws.t.yi(wTxi+b1)2min_{w,b}0.5||w||^2_{s.t. y_i(w_Tx_i+b\geq 1)}

对偶问题

根据minw,b0.5ws.t.yi(wTxi+b1)2\mathop min_{w,b}0.5||w||^2_{s.t. y_i(w_Tx_i+b\geq 1)}
  f(x)=wTx+b\mathop f(x) = w^Tx+b       求解得到最大间隔划分超平面
使用拉格朗日乘子法
L(w,b,α)=12w2+i=1mαi(1yi(wT+b))L(w,b,\alpha) = \frac{1}{2}||w||^2 + \sum_{i=1}^m \alpha_i(1-y_i(w^T+b))
如此,问题就变成了:
maxαminw,bL(w,b,α)max_{\alpha} min_{w,b} L(w,b,\alpha)

对L(w,b,α)的w,b求偏导并等于0.
σLσw=wi=1mαiyixi=0\frac{\sigma L}{\sigma w} = w-\sum_{i=1}^m \alpha_iy_ix_i=0

σLσb=i=1mαigi=0\frac{\sigma L}{\sigma b} = \sum_{i=1}^m \alpha_ig_i = 0

代入原式中
L(w,b,α)=12(i=1mαiyixi)2i=1mαi(1yi(i=1mαiyixix+b))=i=1mαi12i=1mj=1mαiαjyiyjxixjL(w,b,\alpha) = \frac{1}{2}(\sum_{i=1}^m \alpha_iy_ix_i)^2 - \sum_{i=1}^m \alpha_i(1-y_i(\sum_{i=1}^m\alpha_iy_ix_i * x+b)) =\sum_{i=1}^m \alpha_i - \frac{1}{2}\sum_{i=1}^m \sum_{j=1}^m \alpha_i\alpha_jy_iy_jx_ix_j


maxαL(w,b,α)s.t.{i=1mαiyi=0α0max_\alpha L(w,b,\alpha)_{s.t. \begin{cases}\sum_{i=1}^m \alpha_iy_i=0 \\ \alpha \geq 0 \end{cases}}

maxαi=1mαi12i=1mj=1mαiαjyiyjxixjs.t.{α0i=1mαiyi=0{max_\alpha \sum_{i=1}^m\alpha_i - \frac{1}{2}\sum_{i=1}^m \sum_{j=1}^m \alpha_i\alpha_jy_iy_jx_ix_j }_{s.t. \begin{cases} \alpha \geq 0 \\ \sum_{i=1}^m \alpha_iy_i=0 \end{cases}}

求解
f(x)=wTx+b=i=1mαiyixiTxi+bf(x) = w^Tx +b = \sum_{i=1}^m \alpha_iy_ix_i^Tx_i +b

核函数

在原始样本空间内也许不存在一个能正确划分两类样本的超平面,这是,我们可以将样本从原始空间映射到一个更高维的特征空间。
Φ(x)\mathop \Phi(x)表示将x映射后的特征向量,则超平面为:
f(x)=wTΦ(x)+bf(x)=w^T\Phi(x) +b
对应有
maxαi=1mαi12i=1mj=1mαiαjyiyjΦ(xi)Φ(xj)s.t.{α0i=1mαiyi=0{max_\alpha \sum_{i=1}^m\alpha_i - \frac{1}{2}\sum_{i=1}^m \sum_{j=1}^m \alpha_i\alpha_jy_iy_j(\Phi(x_i)*\Phi(x_j))}_{s.t. \begin{cases} \alpha \geq 0 \\ \sum_{i=1}^m \alpha_iy_i=0 \end{cases}}
因为 Φ(xi)Φ(xj)\mathop \Phi(x_i)*\Phi(x_j)难以计算,所以设想一个函数k
K(xi,xj)=<Φ(xi),Φ(xj)>=Φ(xi)Φ(xj)K(x_i,x_j) = <\Phi(x_i),\Phi(x_j)> = \Phi(x_i)*\Phi(x_j)
我们称K<·,·>为核函数
令x为输入空间,K<·,·>是定义在xxx上的对称函数,当且仅当对于任意数据D=[X1,X2,..,xm]\mathop D=[X_1,X_2,..,x_m],核矩阵k总是半正定的,k使核函数。

K=[k(x1,x1)...k(x1,xj)...k(x1,xm)............k(xi,x1)...k(xi,xj)...k(xi,xm)............k(xm,x1)...k(xm,xj)...k(xm,xm)]K = \begin{bmatrix} k(x_1,x_1) & ... & k(x_1,x_j) & ... &k(x_1,x_m) \\..& ...&..&...&.. \\ k(x_i,x_1) &...&k(x_i,x_j)&...& k(x_i,x_m) \\..& ...&..&...&.. \\ k(x_m,x_1)&...&k(x_m,x_j)&...&k(x_m,x_m) \end{bmatrix}
常用核函数
k(xi,yi)=xiyik(x_i,y_i)=x_iy_i

k(xi,yi)=(xiyi)dk(x_i,y_i)=(x_iy_i)^d

k(xi,yi)=exp(xixj22σ2)k(x_i,y_i)=exp(-\frac{||x_i-x_j||^2}{2\sigma^2})

................

软间隔和正则化

软间隔是允许某些样本不满足条件
yi(wTxi+b)1y_i(w^Tx_i + b) \geq 1
于是优化目标可以写成
minw,b12w2+ci=1mτ0/1(yi(wTxi+b)1)min_{w,b} \frac{1}{2}||w||^2 + c \sum_{i=1}^m\tau_{0/1}(y_i(w^Tx_i+b)-1)
其中C是大于0的常熟,τ0/1\mathop \tau_{0/1}是0/1的损失函数
{1,if z<00,otherwise\begin{cases}1 , &&\text{if z<0} \\ 0,&& \text{otherwise}\end{cases}
当C为无穷大时,则等价为硬间隔,τ0/1\mathop \tau_{0/1}的数学性质不好,所以使用代替函数,常见有:
hinge损失:ιhinge(z)=max(0,1z)\mathop \iota_{hinge}(z) = max(0,1-z)
指数损失:ιexp(z)=exp(z)\mathop \iota_{exp}(z) = exp(-z)
对率损失:ιlog(z)=log(1+exp(z))\mathop \iota_{log}(z) = log(1+exp(-z))
使用hinge损失,可将原始改为:
minw,b12w2+ci=1mmax(0,1yi(wTxi+b))min_{w,b} \frac{1}{2}||w||^2 + c \sum_{i=1}^mmax(0,1-y_i(w^Tx_i+b))

引入松弛变量ξi0\mathop \xi_i\geq0
minw,b,ξ1/2w2+ci=1mξimin_{w,b,\xi} 1/2||w||^2 + c\sum_{i=1}^m\xi_i

s.t.yi(wTxi+b)1ξis.t. y_i(w^Tx_i+b)\geq 1-\xi_i

ξi0\xi_i\geq0

拉格朗日乘子法
L(w,b,α,ξ,μ)=1/2w2+ci=1mξi+i=1mαi(1ξiyi(wTxi+b))i=1mμiξiL(w,b,\alpha,\xi,\mu) = 1/2 ||w||^2+c\sum_{i=1}^m\xi_i+\sum_{i=1}^m\alpha_i(1-\xi_i-y_i(w^Tx_i+b))-\sum_{i=1}^m\mu_i\xi_i
w,b,ξ\mathop w,b,\xi求偏导。
w=i=1mαiyixiw = \sum_{i=1}^m\alpha_iy_ix_i

0=i=1mαiyi0 = \sum_{i=1}^m\alpha_iy_i

c=αi+μic=\alpha_i+\mu_i

代入:
maxαii=1mαi1/2i=1mj=1mαiαjyiyixixjmax_{\alpha_i} \sum_{i=1}^m\alpha_i - 1/2\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_ix_ix_j

s.t.i=1mαiyi=0s.t. \sum_{i=1}^m\alpha_iy_i=0

0αic0\leq\alpha_i\leq c

支持向量机回归

支持向量机回归能容忍f(x)y\mathop f(x) 与 y之间有ξ\mathop \xi的偏差,这就相当于以f(x)\mathop f(x)为中心,构建了一个宽度为2ξ\mathop2\xi的间隔带,只有训练样本落入间隔带,则认为是正确预测。
minw,b1/2w2+ci=1mζe(f(xi)yi)min_{w,b}1/2||w||^2 + c\sum_{i=1}^m\zeta_e(f(x_i)-y_i)
其中c为正则化常数,
ζe(z)={0,ifzϵzϵ,otherwise\zeta_e(z)=\begin{cases} 0 , & if |z|\leq \epsilon \\ |z|-\epsilon , & otherwise\end{cases}
引入松弛变量,可改写为:
minw,b,ξi,ξ^i1/2w2+ci=1m(ξi+ξ^i)min_{w,b,\xi_i,\hat\xi_i} 1/2||w||^2 + c\sum_{i=1}^m(\xi_i+\hat\xi_i)

s.t.f(xi)yiϵi+ξis.t. f(x_i)-y_i \leq\epsilon_i+\xi_i

yif(xi)ϵi+ξ^iy_i-f(x_i)\leq\epsilon_i+\hat\xi_i

ξi0,ξ^i0\xi_i\geq0 ,\hat\xi_i\geq0
引入拉格朗日乘子
L(w,b,α,α^,ξ,ξ^,μ,μ^)=1/2w2+ci=1m(ξ+ξ^)i=1mμiξii=1mμ^iξ^i+i=1mαi(f(xi)yiϵϵi)+i=1mα^i(yif(si)ϵξ^i)L(w,b,\alpha,\hat\alpha,\xi,\hat\xi,\mu,\hat\mu) = 1/2||w||^2+c\sum_{i=1}^m(\xi+\hat\xi)-\sum_{i=1}^m\mu_i\xi_i-\sum_{i=1}^m\hat\mu_i\hat\xi_i+\sum_{i=1}^m\alpha_i(f(x_i)-y_i-\epsilon-\epsilon_i)+\sum_{i=1}^m\hat\alpha_i(y_i-f(s_i)-\epsilon-\hat\xi_i)

w,b,ξi,ξ^i\mathop w,b,\xi_i,\hat\xi_i求偏导为零
w=i=1m(α^iαi)xiw=\sum_{i=1}^m(\hat\alpha_i-\alpha_i)x_i

0=i=1m(α^iαi)0 = \sum_{i=1}^m(\hat\alpha_i-\alpha_i)

c=αi+μi=α^i+μ^ic = \alpha_i +\mu_i=\hat\alpha_i+\hat\mu_i

代入上述L(w,b,α,α^,ξ,ξ^,μ,μ^)\mathop L(w,b,\alpha,\hat\alpha,\xi,\hat\xi,\mu,\hat\mu)中:

maxα,α^i=1m(α^iαi)ϵ(α^i+αi)1/2i=1mj=1m(α^iα)(α^jα)xixjmax_{\alpha,\hat\alpha}\sum_{i=1}^m(\hat\alpha_i-\alpha_i)-\epsilon(\hat\alpha_i+\alpha_i)-1/2\sum_{i=1}^m\sum_{j=1}^m(\hat\alpha_i-\alpha)(\hat\alpha_j-\alpha)x_ix_j

s.t.i=1m(α^iαi)=0s.t. \sum_{i=1}^m(\hat\alpha_i-\alpha_i)=0

0(αi,α^i)c0\leq(\alpha_i,\hat\alpha_i)\leq c

核方法

定理:令H为核函数k对用的再生和希尔伯特空间,||h||H表示H空间中关于h的范数,对于任意单调递增函数 Ω:[0,]R\mathop \Omega:[0,\infty] \to R和任意非负损失函数ϑ:Rm[0,]\mathop \vartheta:R^m \to [0,\infty],优化问题
minhHF(h)=Ω(hH)+ϑ(h(x1),h(x2),...,h(xm))min_{h\in H}F(h)=\Omega(||h||_H) + \vartheta(h(x_1),h(x_2),...,h(x_m))

的解总可以写为:

h(x)=i=1mαik(x,xi)h^*(x)=\sum_{i=1}^m\alpha_ik(x,x_i)

发布了36 篇原创文章 · 获赞 20 · 访问量 4120
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章