感知机和SVM

本篇文章主要写感知机和SVM。

感知机(PLA)

在这里插入图片描述
如上图,假设我们可以用一条直线wx+b=0wx+b=0wx+b=0将数据均分为两类。一面为正,一面为负。在转动的过程中,我们的需求是使所有的点都分类正确,即是一个使错误分类点减少点过程。如果以错误分类点个数为目标函数,不容易优化目标函数。我们注意到对于任意的点有y(wx+b)>0y(wx+b)>0y(wx+b)>0。我们的目标可转为使−(wx+b)-(wx+b)(wx+b)减小,直到为0。直线上某个点到超平面的距离为∣wx+b∣∣∣W∣∣ \frac{|wx+b|}{||W||}Wwx+b
由于成倍的放大或者缩小并不能改变上式的大小。故我们可以令∣∣W∣∣=1||W||=1W=1,点到直线的距离转换为1∣∣W∣∣\frac{1}{||W||}W1
则损失函数可表示为
L(w,b)=1∣∣W∣∣∑yi(wxi+b)=−∑(wxi+b)L(w,b)=\frac{1}{||W||}\sum y_i(wx_i+b)=-\sum (wx_i+b) L(w,b)=W1yi(wxi+b)=(wxi+b)
s.t.xi∈M,M为错误分类集s.t.x_i \in M,M为错误分类集s.t.xiM,M$

损失函数知道了,那我们如何让机器学习呢?思路是,遍历数据中的每一个点,当其为错误分类点时,我们就使线往错误的方向偏斜一点,一直重复,直到数据完全分类正确为止。那该倾斜多少呢?林轩田和李航分别介绍了两种方法。

  • 林轩田:为方便叙述,把b纳入W里,即W=(W0,W1,....)W=(W_0,W_1,....)W=(W0,W1,....).对于一个点为正类,被误分为负类,则点在直线的下方(因为W为直线法线方向,角度=90+<线,x⃗\vec xx>),Wtxn&lt;0,&lt;x⃗,W⃗&gt;&gt;90°W_tx_n&lt;0,&lt;\vec x ,\vec W&gt; &gt;90°Wtxn<0<x,W>>90°。我们需要使线向小于90°90°90°的方向偏转,通常的做法为W⃗=yX⃗+W⃗\vec W=y\vec X + \vec WW=yX+W
    如果一个点为负类,误分为正类,Wtxn&gt;0,&lt;x⃗,W⃗&gt;&lt;90°W_tx_n&gt;0,&lt;\vec x ,\vec W&gt; &lt;90°Wtxn>0<x,W><90°,则使线向大于90°90°90°的方向偏转,W⃗=yX⃗+W⃗\vec W=y\vec X + \vec WW=yX+W
    则W的最终更新方式为 W⃗=yX⃗+W⃗\vec W=y\vec X + \vec WW=yX+W
  • 李航:对于某个误分类点,他离线的距离为−(wxi+b)-(wx_i+b)(wxi+b),是W,b的线性函数,连续可导。则L(W,b)L(W,b)L(W,b)连续可导。在某一个误分类点,使线向误分类点处的负梯度方向偏斜线时,能使−(wxi+b)-(wx_i+b)(wxi+b)变小,即使线向误分类点靠近。则函数的梯度为
    ∇WL(W,b)=−∑yixi,xi∈M\nabla _WL(W,b)=-\sum y_ix_i,x_i\in MWL(W,b)=yixi,xiM
    ∇bL(W,b)=−∑yi,xi∈M\nabla _bL(W,b)=-\sum y_i,x_i\in MbL(W,b)=yi,xiM
    故W的更新方式为
    W=W+ηyixiW = W + \eta y_ix_iW=W+ηyixi
    W=W+ηyiW = W + \eta y_iW=W+ηyi

两种方式的思路都是使线向错误分类的点偏斜,逐步纠正错误。不同点是偏斜的方向大小不一样。
上面只说了如何转动线使误分类点减少?但是能不能最终使分类完全正确?能不能使这个迭代过程停下来?

证明PLA能在有限步内将线性可分数据集完全分类正确

证明:因为线性可分,一定存在一条线使数据完全正确分类。取这个时候的单位法向量为wfw_fwf。对任意点有
yi(wfxi+b)≥γ&gt;0,γ=min{yi(wxi+b)}y_i(w_fx_i+b)\geq \gamma&gt;0,\gamma= min \{y_i(wx_i+b)\}yi(wfxi+b)γ>0,γ=min{yi(wxi+b)}
又每次更新错误的点时,都会W。如果更新要停下来,则wk趋近于wfw_k趋近于w_fwkwf,两者的內积增大,有wfwk=wf(wk−1+ηyixi)≥wfwk−1+γ≥kηγ&ThickSpace;①w_fw_k=w_f(w_{k-1}+\eta y_ix_i)\geq w_fw_{k-1}+\gamma\geq k\eta\gamma \;①wfwk=wf(wk1+ηyixi)wfwk1+γkηγ
对每一次更新www都是使用的公式都是wk+1=wk+ηyixiw_{k+1} = w_k + \eta y_ix_iwk+1=wk+ηyixi
则有∣∣wk∣∣2=∣∣wk−1+ηyixi∣∣2≤∣∣wk−1∣∣2+2ηyiwk−1+∣∣ηyixi∣∣2||w_{k}||^2 = ||w_{k-1} + \eta y_ix_i||^2 \leq||w_{k-1} ||^2+2\eta y_iw_{k-1} +||\eta y_ix_i||^2wk2=wk1+ηyixi2wk12+2ηyiwk1+ηyixi2
≤∣∣wk−1∣∣2+0+∣∣ηxi∣∣2\leq ||w_{k-1} ||^2+0+||\eta x_i||^2wk12+0+ηxi2
≤kη2∣∣xi∣∣2≤kη2R2,R=max∣∣xi∣∣&ThickSpace;②\leq k\eta^2||x_i||^2 \leq k\eta^2R^2,R= max||x_i||\;②kη2xi2kη2R2,R=maxxi
联立①②式,可得
kηγ≤wfwk&lt;∣∣wf∣∣&ThickSpace;∣∣wk∣∣≤kηRk\eta\gamma \leq w_fw_k&lt;||w_f||\;||w_k||\leq \sqrt k\eta Rkηγwfwk<wfwkkηR
⟹k≤R2γ2\Longrightarrow k\leq \frac {R^2}{\gamma ^2}kγ2R2
说明经过有限次偏转后总是能停止更新,达到完全分类的目的。

感知机的对偶形式

上面提到的成为原始形式。现在来介绍他的对偶形式。
每次更新的公式如下:
W=W+ηyixiW = W + \eta y_ix_iW=W+ηyixi
W=W+ηyiW = W + \eta y_iW=W+ηyi
如果把W初始化为0,则
W=∑niηyixiW = \sum n_i\eta y_ix_iW=niηyixi
W=∑niηyiW = \sum n_i\eta y_iW=niηyi
其中nin_ini为对应点更新的次数。这个时候完全转换为了只有样本点有关的表达式。如果一个点更新的次数越多,越不容易分类正确,则它离线越近。
对偶形式也是收敛的,从数学上看,只是更新了公式的形式而已。

上面提到的感知机中分类器都是使用的线,其实只有在二维空间中才能用线,在多维空间中,线对于的是超平面,也是成立的。

但是现实世界中的数据往往是线性不可分的。那我们该怎么做呢?我们可以引入松弛变量ξ,当L(w,b)&lt;ξ,\xi,当L(w,b) &lt;\xi,ξL(w,b)<ξ,我们人为停止更新。讲人话就是我们允许出现错误,但是错误点的比例要小,错误点离超平面的距离要尽量近。

梯度下降

机器学习的很多一大任务就是最优化目标函数,使风险函数最小化。对于一个连续可导的函数,我们可以直接求出它的解析解。而对于一个非连续可导的函数,无法求出其解析解,往往通过数值逼近来求其近似解。
在函数的某个点,负梯度方向上升函数值下降最快的方向。故我们的思路是向着负梯度的方向更新数据。这样可以比较快的得到较小的函数值。
根据一阶泰勒展开有
Ein≈Ein(wk)+∇Ein(wt)η,&ThickSpace;s.t.η=某个(x⃗−x⃗k)E_{in} \approx E_{in}(w_k) + \nabla E_{in}(w_t) \eta,\; s.t.\eta=某个(\vec x-\vec x_k)EinEin(wk)+Ein(wt)η,s.t.η=(xxk)
如果每一次我们都选择一个较小的步长,向负梯度方向更新,则新的损失函数和旧的损失函数相近,不会离得太远。这样我们就可以摸着石头过河,一步一步尝试向前更新。因为函数的极值点处,梯度为0.故当梯度绝对值小于阈值时,我们停止更新。

可以把函数极小化的过程比作球从山上往下滚。在一座山上,球要想快速的往下滚动,他的方向需要为斜坡向下,这样摩擦力最小。经过一段时间后,球总能停留在某个低洼之地。这个位置一定是是一个极点,却不一定是整座山附近最低的点,甚至离最低的点也较远。
在这里插入图片描述如上图,如果每次更新的幅度太小,则需要更新很多次;如果幅度太大,可能永远也得不到解。所以我们需要选择一个合适的大小的步长。
我们通常采用变步长,最开始的时候一般都离最低点较远,我们采取大步长,随着时间的进行,步长慢慢变小。例如设置步长η=1t\eta= \frac 1{\sqrt t}η=t1

SVM

对于PLA,我们获得的线往往并不惟一。如下图:
在这里插入图片描述
三条线都是可行解。但是点到直线的最近距离是依次增加的。测量误差是不可避免的,如点离线较近,更容易分错。通常线离数据点越远,越不容易分错,对未知数据也有更好的泛化能力。故我们希望找到这么一条线,不仅正确分类数据,且各个数据点都尽量离超平面较远。
函数间隔:数据集到分割超平面的函数间隔为γ^=min&ThickSpace;yi(wxi+b)\hat \gamma =min \;y_i(wx_i+b)γ^=minyi(wxi+b)
则目标函数变为
max&ThickSpace;γ^∣∣W∣∣,&ThickSpace;s.t.yi(wxi+b)&gt;γ^max\;\frac {\hat \gamma}{||W||},\; s.t.y_i(wx_i+b)&gt;\hat \gammamaxWγ^,s.t.yi(wxi+b)>γ^
几何间隔:数据集到超平面的几何间隔定义为γ=min&ThickSpace;yi(wxi+b)∣∣w∣∣\gamma =min \;\frac{y_i(wx_i+b)}{||w||}γ=minwyi(wxi+b)。当∣∣w∣∣=1||w||=1w=1时,几何间隔和函数间隔一致。另外成倍缩放w,b并不会改变几何间隔的大小,这是一个很好的性质。故取γ^=1\hat \gamma=1γ^=1,数据集到超平面的距离变为1∣∣W∣∣\frac {1}{||W||}W1,则目标函数变为
max&ThickSpace;1∣∣W∣∣,&ThickSpace;s.t.yi(wxi+b)−1&gt;0max\;\frac {1}{||W||},\; s.t.y_i(wx_i+b)-1&gt;0maxW1,s.t.yi(wxi+b)1>0
通常我们都是求最小化,故我们需要做点转换:对目标函数求倒数,从求最大变为最小;范数||W||为平方根,求梯度较麻烦,对其平方;为了求梯度方便,对目标函数乘12\frac 1221。这一系列的操作并不改变解,故目标函数转换为
min&ThickSpace;12WWT,&ThickSpace;s.t.yi(wxi+b)−1&gt;0min\;\frac 12WW^T,\; s.t.y_i(wx_i+b)-1&gt;0min21WWT,s.t.yi(wxi+b)1>0
这是一个凸二次规划问题。那该如何解它呢?如果有解,通常只需引入拉格朗日乘子就可以了。但是它是否有解呢?是否有多个解呢?

证明线性可分数据集上的SVM超平面有且只有一个

存在性:
由于数据线性可分,故存在可行解。由于最优化函数有下界,故一定存在最优解。
又数据集分正负两类,故w=0不是最优解。故存在∣∣w∣∣≠0w = 0不是最优解。故存在||w|| =\not 0w=0w≠0的超平面。
唯一性:
若存在(w1,b1),(w2,b2)(w_1,b_1),(w_2,b_2)w1,b1,(w2,b2)都是最优解,则Loss的值一样,∣∣w1∣∣=∣∣w1∣∣=cLoss的值一样,||w_1||=||w_1||=cLossw1=w1=c
w=w1+w22,b=b1+b22w=\frac{w_1+w_2}2,b=\frac{b_1+b_2}2w=2w1+w2,b=2b1+b2,则w,b是可行解(因$y_i(wx_i+b)-1\geq0)。可得
c≤∣∣w∣∣≤12∣∣w1∣∣+12∣∣w2∣∣=cc\leq||w||\leq\frac12||w_1||+\frac12||w_2||=ccw21w1+21w2=c
(最左边是因为假设为可行解,故大于等于c,中间是范数三角不等式的性质)
⟹∣∣w∣∣=12∣∣w1∣∣+12∣∣w2∣∣\Longrightarrow ||w||=\frac12||w_1||+\frac12||w_2||w=21w1+21w2
⟹w1=w2\Longrightarrow w_1= w_2w1=w2
(由∣∣w∣∣=12∣∣w1∣∣+12∣∣w2∣∣=c,w1、w2等范数,可知w1=±w2||w||=\frac12||w_1||+\frac12||w_2||=c,w_1、w_2等范数,可知w_1=\pm w_2w=21w1+21w2=cw1w2w1=±w2,若反向,则w=0,矛盾)
再证b1=b2b_1=b_2b1=b2
现在两个最优解变为(w,b1),(w,b2)(w,b_1),(w,b_2)(w,b1,(w,b2)
x1′、x2′∈{xi∣yi=1}分别对应(w,b1),(w,b2)使条件不等号成立x_1&#x27;、x_2&#x27;\in \{x_i|y_i=1\} 分别对应(w,b_1),(w,b_2)使条件不等号成立x1x2{xiyi=1}(w,b1,(w,b2)使
x1′′、x2′′∈{xi∣yi=−1}分别对应(w,b1),(w,b2)使条件不等号成立x_1&#x27;&#x27;、x_2&#x27;&#x27;\in \{x_i|y_i=-1\} 分别对应(w,b_1),(w,b_2)使条件不等号成立x1x2{xiyi=1}(w,b1,(w,b2)使
则有:
b1=12(wx1′+wx1′′)b_1=\frac 12(wx_1&#x27;+wx_1&#x27;&#x27;)b1=21(wx1+wx1)b1=12(wx2′+wx2′′)b_1=\frac 12(wx_2&#x27;+wx_2&#x27;&#x27;)b1=21(wx2+wx2)
b1−b2=12[w(x1′−x2′)+w(x1′′−x2′′)]b_1-b_2=\frac 12[w(x_1&#x27;-x_2&#x27;)+w(x_1&#x27;&#x27;-x_2&#x27;&#x27;)]b1b2=21[w(x1x2)+w(x1x2)]

wx1′+b2≥1=wx2′+b2wx_1&#x27;+b_2\geq1=wx_2&#x27;+b_2wx1+b21=wx2+b2wx2′+b1≥1=wx1′+b1wx_2&#x27;+b_1\geq1=wx_1&#x27;+b_1wx2+b11=wx1+b1
⟹w(x1′−x2′)=0\Longrightarrow w(x_1&#x27;-x_2&#x27;)=0w(x1x2)=0
同理可得w(x1′′−x2′′)=0w(x_1&#x27;&#x27;-x_2&#x27;&#x27;)=0w(x1x2)=0
⟹b1=b2\Longrightarrow b_1=b_2b1=b2

拉格朗日乘子和引出KKT条件

上面介绍了解是存在的且唯一,上面也提到了一般可以用拉格朗日乘子来辅助解。具体怎样做呢?

原始问题
min⁡x∈Rn&ThickSpace;f(x)\min_{x\in R^n} \;f(x)xRnminf(x) s.t.&ThickSpace;ci(x)≤0,i=1,2,..,ks.t.\;c_i(x)\leq 0, i=1,2,..,ks.t.ci(x)0,i=1,2,..,k hj(x)≤0,j=1,2,..,lh_j(x)\leq 0, j=1,2,..,lhj(x)0,j=1,2,..,l
引入拉格朗日乘子L(x,α,β)=f(x)+∑iαici(x)+∑jβjhj(x),&ThickSpace;αi≥0,βj≥0L(x,\alpha,\beta)=f(x)+\sum_i\alpha_ic_i(x)+\sum_j\beta_jh_j(x),\;\alpha_i\geq0,\beta_j\geq0L(x,α,β)=f(x)+iαici(x)+jβjhj(x)αi0,βj0
θP=max⁡L(x,α,β)\theta_P=\max L(x,\alpha,\beta)θP=maxL(x,α,β),当x满足约束条件时,θP=f(x)\theta_P=f(x)θP=f(x)
(因为ci(x),hj(x)均小于0,θP的上界就是f(x)c_i(x),h_j(x)均小于0,\theta_P的上界就是f(x)ci(x),hj(x)0θPf(x)
这时原始问题等价于min⁡xf(x)=min⁡xmax⁡α,β;α≥0L(x,α,β)\min_x f(x)=\min_x \max_{\alpha,\beta;\alpha\geq0} L(x,\alpha,\beta)xminf(x)=xminα,β;α0maxL(x,α,β)
这个时候就把条件引入了目标函数中,有利于求解。

对偶问题:
和感知机一样,还有一个对偶形式。
定义
θD(α,β)=min⁡xL(x,α,β)\theta_D(\alpha,\beta)=\min_x L(x,\alpha,\beta)θD(α,β)=xminL(x,α,β)
极大化问题
max⁡α,β;α≥0θD(α,β)=max⁡α,β;α≥0min⁡xL(x,α,β)\max_{\alpha,\beta;\alpha\geq0} \theta_D(\alpha,\beta)=\max_{\alpha,\beta;\alpha\geq0}\min_x L(x,\alpha,\beta)α,β;α0maxθD(α,β)=α,β;α0maxxminL(x,α,β)
称之为原始问题的最优化问题。

KKT条件——原始问题等价于对偶问题的条件
假设f(x)和ci(x)是凸函数,hj(x)是仿射函数,且ci(x)假设f(x)和c_i(x)是凸函数,h_j(x)是仿射函数,且c_i(x)f(x)ci(x)hj(x)仿ci(x)严格满足约束条件,则两个问题等价的充要条件是他们的解满足:
∇xL(x,α,β)=0\nabla_x L(x,\alpha,\beta)=0xL(x,α,β)=0 ∇αL(x,α,β)=0\nabla_\alpha L(x,\alpha,\beta)=0αL(x,α,β)=0 ∇βL(x,α,β)=0\nabla_\beta L(x,\alpha,\beta)=0βL(x,α,β)=0 αici(x)=0,&ThickSpace;KKT的对偶互补条件\alpha_ic_i(x)=0,\;KKT的对偶互补条件αici(x)=0,KKT ci(x)≤0c_i(x)\leq0ci(x)0 αi≤0\alpha_i\leq0αi0 hj(x)=0h_j(x)=0hj(x)=0

SVM的对偶形式

引入拉个朗日乘子,有L(x,α,β)=12∣∣w∣∣2−∑i=0N−1αiyi(wxi+b)+∑i=0N−1αi&ThickSpace;①L(x,\alpha,\beta)=\frac12||w||^2-\sum_{i=0}^{N-1}\alpha_iy_i(wx_i+b)+\sum_{i=0}^{N-1}\alpha_i\;①L(x,α,β)=21w2i=0N1αiyi(wxi+b)+i=0N1αi
求该问题的极大极小问题,有
∇w=w−∑i=0N−1αiyixi=0\nabla_w=w-\sum_{i=0}^{N-1}\alpha_iy_ix_i=0w=wi=0N1αiyixi=0∇b=−∑i=0N−1αiyi=0\nabla_b=-\sum_{i=0}^{N-1}\alpha_iy_i=0b=i=0N1αiyi=0
w=∑i=0N−1αiyixiw=\sum_{i=0}^{N-1}\alpha_iy_ix_iw=i=0N1αiyixi∑i=0N−1αiyi=0\sum_{i=0}^{N-1}\alpha_iy_i=0i=0N1αiyi=0
带入①式可得min⁡w,bL(x,α,β)=−12∑i∑jαiαjβiβj(xi⋅xj)+∑iαi,&ThickSpace;②\min_{w,b}L(x,\alpha,\beta)=-\frac12\sum_i\sum_j\alpha_i\alpha_j\beta_i\beta_j(x_i\cdot x_j)+\sum_i\alpha_i,\;②w,bminL(x,α,β)=21ijαiαjβiβj(xixj)+iαi,
即可得到对偶形式的最优化问题
max⁡x12∑i∑jαiαjβiβj(xi⋅xj)−∑iαi\max_x \frac12\sum_i\sum_j\alpha_i\alpha_j\beta_i\beta_j(x_i\cdot x_j)-\sum_i\alpha_ixmax21ijαiαjβiβj(xixj)iαi s.t.&ThickSpace;∑iαiyi=0s.t. \;\sum_i\alpha_iy_i=0s.t.iαiyi=0 αi≥0\alpha_i\geq0αi0

如果原始问题的最优解存在,则根据kkt条件有w=∑i=0N−1αiyixiw=\sum_{i=0}^{N-1}\alpha_iy_ix_iw=i=0N1αiyixi
∃αj&gt;0(否则w=0,矛盾),αj(yj(wxj+b)−1)=0,yj2=1\exist \alpha_j&gt;0(否则w=0,矛盾),\alpha_j(y_j(wx_j+b)-1)=0,y_j^2=1αj>0(w=0,),αj(yj(wxj+b)1)=0,yj2=1,把w带入有b=yi−∑αiyi(xi⋅ xj)b=y_i-\sum\alpha_iy_i(x_i\cdot\ x_j)b=yiαiyi(xi xj)

为何叫支撑向量机?
根据KKT对偶互补条件αici(x)=0\alpha_ic_i(x)=0αici(x)=0可知。

  • 当αi=0时,对于的样本点与目标函数无关当\alpha_i=0时,对于的样本点与目标函数无关αi=0
  • 当αi&gt;0时,ci(x)=0。即yi(wxi+b)−1=0当\alpha_i&gt;0时,c_i(x)=0。即y_i(wx_i+b)-1=0αi>0ci(x)=0yi(wxi+b)1=0。目标函数只有满足这些条件的样本点有关。这些点称为支撑向量。
  • 支撑向量都在间隔边界上。

处理线性不可分时的情形

上面提到的SVM或者感知机都能很完美的分类线性可分的数据集,然而现实世界中的数据集往往是线性不可分的。对于线性不可分的数据集,我们通常引入一个松弛变量ξ\xiξ,使数据集的约束条件成立。即yi(wxi+b)−1+ξi≥0y_i(wx_i+b)-1+\xi_i\geq0yi(wxi+b)1+ξi0
背后的意义就是,我们允许数据中存在outlier,允许分类出错,不追求完美,只要能达到我们想要的精度即可。
则目标函数为min⁡12wwT+C∑ξi,&ThickSpace;C&gt;0\min\frac12ww^T+C\sum\xi_i,\;C&gt;0min21wwT+Cξi,C>0
C是惩罚参数,代表对误分类的容忍程度。目标函数表达了两个含义:①前半部分使间隔尽量大,即泛化误差EoutE_{out}Eout尽量小;②后半部分使误分类个数尽量少,即误差EinE_{in}Ein尽量小。C用来调节二者之间的平衡。

原始形式
上述方式得到的间隔称为软间隔。通过上述思路,我们可以像训练线性可分时一样训练线性不可分的数据集。即得线性不可分时的SVM原始形式:
min⁡w,b,ξ&ThickSpace;12wwT+C∑ξi\min_{w,b,\xi}\;\frac12ww^T+C\sum\xi_iw,b,ξmin21wwT+Cξi s.t.&ThickSpace;yi(wxi+b)−1+ξi≥0s.t.\;y_i(wx_i+b)-1+\xi_i\geq0s.t.yi(wxi+b)1+ξi0ξi≥0\xi_i\geq0ξi0
非线性的SVM原始形式仍然是一个凸二次规划问题,故解是存在的。可以像线性可分时一样证明w是唯一的,但是不能证明b唯一的.(其实b的解是一个区间)

对偶形式
对偶形式如下:
min⁡α&ThickSpace;12∑i∑jαiαjyiyj(xi⋅xj)−∑iαi\min_\alpha\;\frac12\sum_i\sum_j\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_i\alpha_iαmin21ijαiαjyiyj(xixj)iαi s.t.∑iαiyi=0s.t.\sum_i\alpha_iy_i=0s.t.iαiyi=00≤αi≤C0\leq\alpha_i\leq C0αiC
推导过程和线性可分时一致:
引入拉格朗日乘子L(w,b,ξ,α,μ)=12wwT+C∑iξi−∑iαi(yi(wxi+b)−1+ξi)−∑iμiξiL(w,b,\xi,\alpha,\mu)=\frac12ww^T+C\sum_i\xi_i-\sum_i\alpha_i(y_i(wx_i+b)-1+\xi_i)-\sum_i\mu_i\xi_iL(w,b,ξ,α,μ)=21wwT+Ciξiiαi(yi(wxi+b)1+ξi)iμiξis.t.&ThickSpace;ξi≥0,μi≥0s.t.\;\xi_i\geq0,\mu_i\geq0s.t.ξi0,μi0
对偶问题是一个极大极小问题。则先求极小后极大。对w,b,ξiw,b,\xi_iw,b,ξi求偏导数有∇w=w−∑iyixi=0\nabla_w=w-\sum_iy_ix_i=0w=wiyixi=0 ∇b=−∑iαiyi=0\nabla_b=-\sum_i\alpha_iy_i=0b=iαiyi=0 ∇ξi=C−αi−μi=0\nabla_{\xi_i}=C-\alpha_i-\mu_i=0ξi=Cαiμi=0
w=∑iyixiw=\sum_iy_ix_iw=iyixi ∑iαiyi=0\sum_i\alpha_iy_i=0iαiyi=0 C−αi−μi=0C-\alpha_i-\mu_i=0Cαiμi=0
反带入并对α\alphaα,求极大再消去μi\mu_iμi,即可得对偶形式。

KKT条件在线性不可分时仍然适用。可求得解w=∑iαiyixiw=\sum_i\alpha_iy_ix_iw=iαiyixib=yj−∑iyiαi(xi⋅xj)b=y_j-\sum_iy_i\alpha_i(x_i\cdot x_j)b=yjiyiαi(xixj)

软间隔的支撑向量?
数据线性不可分时,把αi&gt;0\alpha_i&gt;0αi>0的点称为支撑向量。此时他们与线性可分时稍有不同。

  • 若α&lt;C,则ξ=0,支撑向量SV恰好落在间隔边界线上若\alpha&lt;C,则\xi=0,支撑向量SV恰好落在间隔边界线上α<C,ξ=0SV线
  • 若α=C,0&lt;ξi&lt;1若\alpha=C,0&lt;\xi_i&lt;1α=C,0<ξi<1,则分类正确,sv落在分离超平面和间隔边界之间
  • 若α=C,ξi=1若\alpha=C,\xi_i=1α=C,ξi=1,则sv在分离超平面上
  • 若α=C,ξi&gt;1若\alpha=C,\xi_i&gt;1α=C,ξi>1,则sv在分离超平面误分类的一侧

当数据线性可分时,支撑向量都在间隔边界上。这个毕竟容易理解。
当数据线性不可分时

非线性时的处理技巧——kernel

上面提到的算法只能解决线性的,然而现实世界中经常遇到非线性的数据集。
如果存在真模型,则一定存在一个真决策函数f(x),根据泰勒展开,则f(x)顶多可以展开为无限维的。则展开式是一个xnx^nxn的线性组合。也即我们通过对原来的空间做转换后,可以在一个更高维的空间里使线性方法来处理非线性问题。
需要解决几个问题

  • 转换后,数据量增加,存储和计算成本都增加
  • 空间转换的映射函数有无要求
  • 空间维度增加后vc dimension增加,容易过拟合

kernel可以降低计算成本
假设我们已经做了特征变换zn=ϕ(xn)z_n=\phi(x_n)zn=ϕ(xn),由②式可知目标函数为
min⁡w,bL(z,α,β)=−12∑i∑jαiαjβiβj(zi⋅zj)+∑iαi,&ThickSpace;③\min_{w,b}L(z,\alpha,\beta)=-\frac12\sum_i\sum_j\alpha_i\alpha_j\beta_i\beta_j(z_i\cdot z_j)+\sum_i\alpha_i,\;③w,bminL(z,α,β)=21ijαiαjβiβj(zizj)+iαi,
可知计算量主要在于zi⋅zjz_i\cdot z_jzizj。它可以分为两步:①做特征转;②做內积。
假设特征转换后的维度为d^\widehat dd,原始特征维度为ddd。则特征转换导致空间维度增大,增加了计算成本。但在某些情况下将这两步结合,能大大减少运算量。

以二阶多项式的內积为例。二阶多项式如下:
在这里插入图片描述
转换后作內积有:
在这里插入图片描述
时间复杂度从两步分开做时的O(d2)变为了O(d)两步分开做时的O(d^2)变为了O(d)O(d2)O(d),大大降低了运算量。另外与d^\widehat dd没有任何关系,进一步降低了运算量。
我们把合并特征转换和內积运算称为Kernel Function。林轩田老师把这种技巧称为“偷吃步”。记为K(x,y)=ϕ(x)⋅ϕ(y)K(x,y)=\phi(x)\cdot\phi(y)K(x,y)=ϕ(x)ϕ(y)
kernel函数的要求
如果我们能找到Kernel Function,将会大大的降低运算量。那Kernel Function需要满足什么条件呢?
Mercer 定理:
一个函数是核函数的充要条件是:

  • K的gram矩阵是是半正定的
  • K是对称函数

选择合适的kernel
通常一个kernel是比较难构造的,我们往往使用现有的kernel
①多项式kernel:KQ(x,y)=(ξ+γx⋅y)QK_Q(x,y)=(\xi+\gamma x \cdot y)^QKQ(x,y)=(ξ+γxy)Q
通常用于特征多、样本多的情形。
线性核:当Q=1时,就是线性可分的情况。特点:

  • 计算简单、快速,易于理解(特别是2、3维空间可以直接从视觉来帮助理解)
  • 对于线性不可分时束手无策

多项式核特点:

  • 阶数可以自由选择,通常更贴近真实分布。
  • Q很大时,K的数值范围波动很大,且参数个数相较多,不容易选择。

②高斯核(高斯径向基函数):KQ(x,y)=e−γ∣x−y∣K_Q(x,y)=e^{-\gamma |x-y|}KQ(x,y)=eγxy
是把有限空间映射到无穷维空间。适用于特征少,样本多的情形。(这种情形也可以做特征工程来使用①)
特点:

  • 边界更加复杂多样,更容易使使EinE_{in}Ein更小,K的数值波动小,只有一个参数,容易选择
  • 把有限空间映射到无穷维空间,未计算出w,计算速度相对线性低。且更容易过拟合。

③字符串核,李航的书里提到,暂时无接触。

解决大样本时如何高效的实现SVM——SMO算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值