感知机和SVM

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

感知机(PLA)

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

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

  • 林轩田:为方便叙述,把b纳入W里,即 W = ( W 0 , W 1 , . . . . ) W=(W_0,W_1,....) W=(W0,W1,....).对于一个点为正类,被误分为负类,则点在直线的下方(因为W为直线法线方向,角度=90+<线, x ⃗ \vec x x >), W t x n &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 ⃗ = y X ⃗ + W ⃗ \vec W=y\vec X + \vec W W =yX +W
    如果一个点为负类,误分为正类, W t x n &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 ⃗ = y X ⃗ + W ⃗ \vec W=y\vec X + \vec W W =yX +W
    则W的最终更新方式为 W ⃗ = y X ⃗ + W ⃗ \vec W=y\vec X + \vec W W =yX +W
  • 李航:对于某个误分类点,他离线的距离为 − ( w x i + b ) -(wx_i+b) (wxi+b),是W,b的线性函数,连续可导。则 L ( W , b ) L(W,b) L(W,b)连续可导。在某一个误分类点,使线向误分类点处的负梯度方向偏斜线时,能使 − ( w x i + b ) -(wx_i+b) (wxi+b)变小,即使线向误分类点靠近。则函数的梯度为
    ∇ W L ( W , b ) = − ∑ y i x i , x i ∈ M \nabla _WL(W,b)=-\sum y_ix_i,x_i\in M WL(W,b)=yixi,xiM
    ∇ b L ( W , b ) = − ∑ y i , x i ∈ M \nabla _bL(W,b)=-\sum y_i,x_i\in M bL(W,b)=yi,xiM
    故W的更新方式为
    W = W + η y i x i W = W + \eta y_ix_i W=W+ηyixi
    W = W + η y i W = W + \eta y_i W=W+ηyi

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

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

证明:因为线性可分,一定存在一条线使数据完全正确分类。取这个时候的单位法向量为 w f w_f wf。对任意点有
y i ( w f x i + b ) ≥ γ &gt; 0 , γ = m i n { y i ( w x i + 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。如果更新要停下来,则 w k 趋 近 于 w f w_k趋近于w_f wkwf,两者的內积增大,有 w f w k = w f ( w k − 1 + η y i x i ) ≥ w f w k − 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ηγ
对每一次更新 w w w都是使用的公式都是 w k + 1 = w k + η y i x i w_{k+1} = w_k + \eta y_ix_i wk+1=wk+ηyixi
则有 ∣ ∣ w k ∣ ∣ 2 = ∣ ∣ w k − 1 + η y i x i ∣ ∣ 2 ≤ ∣ ∣ w k − 1 ∣ ∣ 2 + 2 η y i w k − 1 + ∣ ∣ η y i x i ∣ ∣ 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||^2 wk2=wk1+ηyixi2wk12+2ηyiwk1+ηyixi2
≤ ∣ ∣ w k − 1 ∣ ∣ 2 + 0 + ∣ ∣ η x i ∣ ∣ 2 \leq ||w_{k-1} ||^2+0+||\eta x_i||^2 wk12+0+ηxi2
≤ k η 2 ∣ ∣ x i ∣ ∣ 2 ≤ k η 2 R 2 , R = m a x ∣ ∣ x i ∣ ∣ &ThickSpace; ② \leq k\eta^2||x_i||^2 \leq k\eta^2R^2,R= max||x_i||\;② kη2xi2kη2R2,R=maxxi
联立①②式,可得
k η γ ≤ w f w k &lt; ∣ ∣ w f ∣ ∣ &ThickSpace; ∣ ∣ w k ∣ ∣ ≤ k η R k\eta\gamma \leq w_fw_k&lt;||w_f||\;||w_k||\leq \sqrt k\eta R kηγwfwk<wfwkk ηR
⟹ k ≤ R 2 γ 2 \Longrightarrow k\leq \frac {R^2}{\gamma ^2} kγ2R2
说明经过有限次偏转后总是能停止更新,达到完全分类的目的。

感知机的对偶形式

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

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

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

梯度下降

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

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

SVM

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

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

存在性:
由于数据线性可分,故存在可行解。由于最优化函数有下界,故一定存在最优解。
又数据集分正负两类,故 w = 0 不 是 最 优 解 。 故 存 在 ∣ ∣ w ∣ ∣ = ̸ 0 w = 0不是最优解。故存在||w|| =\not 0 w=0w≠0的超平面。
唯一性:
若存在 ( w 1 , b 1 ) , ( w 2 , b 2 ) (w_1,b_1),(w_2,b_2) w1,b1,(w2,b2)都是最优解,则 L o s s 的 值 一 样 , ∣ ∣ w 1 ∣ ∣ = ∣ ∣ w 1 ∣ ∣ = c Loss的值一样,||w_1||=||w_1||=c Lossw1=w1=c
w = w 1 + w 2 2 , b = b 1 + b 2 2 w=\frac{w_1+w_2}2,b=\frac{b_1+b_2}2 w=2w1+w2,b=2b1+b2,则w,b是可行解(因$y_i(wx_i+b)-1\geq0)。可得
c ≤ ∣ ∣ w ∣ ∣ ≤ 1 2 ∣ ∣ w 1 ∣ ∣ + 1 2 ∣ ∣ w 2 ∣ ∣ = c c\leq||w||\leq\frac12||w_1||+\frac12||w_2||=c cw21w1+21w2=c
(最左边是因为假设为可行解,故大于等于c,中间是范数三角不等式的性质)
⟹ ∣ ∣ w ∣ ∣ = 1 2 ∣ ∣ w 1 ∣ ∣ + 1 2 ∣ ∣ w 2 ∣ ∣ \Longrightarrow ||w||=\frac12||w_1||+\frac12||w_2|| w=21w1+21w2
⟹ w 1 = w 2 \Longrightarrow w_1= w_2 w1=w2
(由 ∣ ∣ w ∣ ∣ = 1 2 ∣ ∣ w 1 ∣ ∣ + 1 2 ∣ ∣ w 2 ∣ ∣ = c , w 1 、 w 2 等 范 数 , 可 知 w 1 = ± w 2 ||w||=\frac12||w_1||+\frac12||w_2||=c,w_1、w_2等范数,可知w_1=\pm w_2 w=21w1+21w2=cw1w2w1=±w2,若反向,则w=0,矛盾)
再证 b 1 = b 2 b_1=b_2 b1=b2
现在两个最优解变为 ( w , b 1 ) , ( w , b 2 ) (w,b_1),(w,b_2) (w,b1,(w,b2)
x 1 ′ 、 x 2 ′ ∈ { x i ∣ y i = 1 } 分 别 对 应 ( w , b 1 ) , ( w , b 2 ) 使 条 件 不 等 号 成 立 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)使
x 1 ′ ′ 、 x 2 ′ ′ ∈ { x i ∣ y i = − 1 } 分 别 对 应 ( w , b 1 ) , ( w , b 2 ) 使 条 件 不 等 号 成 立 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)使
则有:
b 1 = 1 2 ( w x 1 ′ + w x 1 ′ ′ ) b_1=\frac 12(wx_1&#x27;+wx_1&#x27;&#x27;) b1=21(wx1+wx1) b 1 = 1 2 ( w x 2 ′ + w x 2 ′ ′ ) b_1=\frac 12(wx_2&#x27;+wx_2&#x27;&#x27;) b1=21(wx2+wx2)
b 1 − b 2 = 1 2 [ w ( x 1 ′ − x 2 ′ ) + w ( x 1 ′ ′ − x 2 ′ ′ ) ] 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)]

w x 1 ′ + b 2 ≥ 1 = w x 2 ′ + b 2 wx_1&#x27;+b_2\geq1=wx_2&#x27;+b_2 wx1+b21=wx2+b2 w x 2 ′ + b 1 ≥ 1 = w x 1 ′ + b 1 wx_2&#x27;+b_1\geq1=wx_1&#x27;+b_1 wx2+b11=wx1+b1
⟹ w ( x 1 ′ − x 2 ′ ) = 0 \Longrightarrow w(x_1&#x27;-x_2&#x27;)=0 w(x1x2)=0
同理可得 w ( x 1 ′ ′ − x 2 ′ ′ ) = 0 w(x_1&#x27;&#x27;-x_2&#x27;&#x27;)=0 w(x1x2)=0
⟹ b 1 = b 2 \Longrightarrow b_1=b_2 b1=b2

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

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

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

对偶问题:
和感知机一样,还有一个对偶形式。
定义
θ D ( α , β ) = min ⁡ x L ( x , α , β ) \theta_D(\alpha,\beta)=\min_x L(x,\alpha,\beta) θD(α,β)=xminL(x,α,β)
极大化问题
max ⁡ α , β ; α ≥ 0 θ D ( α , β ) = max ⁡ α , β ; α ≥ 0 min ⁡ x L ( 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 ) 和 c i ( x ) 是 凸 函 数 , h j ( x ) 是 仿 射 函 数 , 且 c i ( x ) 假设f(x)和c_i(x)是凸函数,h_j(x)是仿射函数,且c_i(x) f(x)ci(x)hj(x)仿ci(x)严格满足约束条件,则两个问题等价的充要条件是他们的解满足:
∇ x L ( x , α , β ) = 0 \nabla_x L(x,\alpha,\beta)=0 xL(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 α i c i ( x ) = 0 , &ThickSpace; K K T 的 对 偶 互 补 条 件 \alpha_ic_i(x)=0,\;KKT的对偶互补条件 αici(x)=0,KKT c i ( x ) ≤ 0 c_i(x)\leq0 ci(x)0 α i ≤ 0 \alpha_i\leq0 αi0 h j ( x ) = 0 h_j(x)=0 hj(x)=0

SVM的对偶形式

引入拉个朗日乘子,有 L ( x , α , β ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 0 N − 1 α i y i ( w x i + b ) + ∑ i = 0 N − 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 = 0 N − 1 α i y i x i = 0 \nabla_w=w-\sum_{i=0}^{N-1}\alpha_iy_ix_i=0 w=wi=0N1αiyixi=0 ∇ b = − ∑ i = 0 N − 1 α i y i = 0 \nabla_b=-\sum_{i=0}^{N-1}\alpha_iy_i=0 b=i=0N1αiyi=0
w = ∑ i = 0 N − 1 α i y i x i w=\sum_{i=0}^{N-1}\alpha_iy_ix_i w=i=0N1αiyixi ∑ i = 0 N − 1 α i y i = 0 \sum_{i=0}^{N-1}\alpha_iy_i=0 i=0N1αiyi=0
带入①式可得 min ⁡ w , b L ( x , α , β ) = − 1 2 ∑ i ∑ j α i α j β i β j ( x i ⋅ x j ) + ∑ 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 ⁡ x 1 2 ∑ i ∑ j α i α j β i β j ( x i ⋅ x j ) − ∑ 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_i xmax21ijαiαjβiβj(xixj)iαi s . t . &ThickSpace; ∑ i α i y i = 0 s.t. \;\sum_i\alpha_iy_i=0 s.t.iαiyi=0 α i ≥ 0 \alpha_i\geq0 αi0

如果原始问题的最优解存在,则根据kkt条件有 w = ∑ i = 0 N − 1 α i y i x i w=\sum_{i=0}^{N-1}\alpha_iy_ix_i w=i=0N1αiyixi
∃ α j &gt; 0 ( 否 则 w = 0 , 矛 盾 ) , α j ( y j ( w x j + b ) − 1 ) = 0 , y j 2 = 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 = y i − ∑ α i y i ( x i ⋅   x j ) b=y_i-\sum\alpha_iy_i(x_i\cdot\ x_j) b=yiαiyi(xi xj)

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

  • 当 α i = 0 时 , 对 于 的 样 本 点 与 目 标 函 数 无 关 当\alpha_i=0时,对于的样本点与目标函数无关 αi=0
  • 当 α i &gt; 0 时 , c i ( x ) = 0 。 即 y i ( w x i + 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 ξ,使数据集的约束条件成立。即 y i ( w x i + b ) − 1 + ξ i ≥ 0 y_i(wx_i+b)-1+\xi_i\geq0 yi(wxi+b)1+ξi0
背后的意义就是,我们允许数据中存在outlier,允许分类出错,不追求完美,只要能达到我们想要的精度即可。
则目标函数为 min ⁡ 1 2 w w T + C ∑ ξ i , &ThickSpace; C &gt; 0 \min\frac12ww^T+C\sum\xi_i,\;C&gt;0 min21wwT+Cξi,C>0
C是惩罚参数,代表对误分类的容忍程度。目标函数表达了两个含义:①前半部分使间隔尽量大,即泛化误差 E o u t E_{out} Eout尽量小;②后半部分使误分类个数尽量少,即误差 E i n E_{in} Ein尽量小。C用来调节二者之间的平衡。

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

对偶形式
对偶形式如下:
min ⁡ α &ThickSpace; 1 2 ∑ i ∑ j α i α j y i y j ( x i ⋅ x j ) − ∑ 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 α i y i = 0 s.t.\sum_i\alpha_iy_i=0 s.t.iαiyi=0 0 ≤ α i ≤ C 0\leq\alpha_i\leq C 0αiC
推导过程和线性可分时一致:
引入拉格朗日乘子 L ( w , b , ξ , α , μ ) = 1 2 w w T + C ∑ i ξ i − ∑ i α i ( y i ( w x i + b ) − 1 + ξ i ) − ∑ i μ i ξ i L(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_i L(w,b,ξ,α,μ)=21wwT+Ciξiiαi(yi(wxi+b)1+ξi)iμiξi s . t . &ThickSpace; ξ i ≥ 0 , μ i ≥ 0 s.t.\;\xi_i\geq0,\mu_i\geq0 s.t.ξi0,μi0
对偶问题是一个极大极小问题。则先求极小后极大。对 w , b , ξ i w,b,\xi_i w,b,ξi求偏导数有 ∇ w = w − ∑ i y i x i = 0 \nabla_w=w-\sum_iy_ix_i=0 w=wiyixi=0 ∇ b = − ∑ i α i y i = 0 \nabla_b=-\sum_i\alpha_iy_i=0 b=iαiyi=0 ∇ ξ i = C − α i − μ i = 0 \nabla_{\xi_i}=C-\alpha_i-\mu_i=0 ξi=Cαiμi=0
w = ∑ i y i x i w=\sum_iy_ix_i w=iyixi ∑ i α i y i = 0 \sum_i\alpha_iy_i=0 iαiyi=0 C − α i − μ i = 0 C-\alpha_i-\mu_i=0 Cαiμi=0
反带入并对 α \alpha α,求极大再消去 μ i \mu_i μi,即可得对偶形式。

KKT条件在线性不可分时仍然适用。可求得解 w = ∑ i α i y i x i w=\sum_i\alpha_iy_ix_i w=iαiyixi b = y j − ∑ i y i α i ( x i ⋅ x j ) 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 , 支 撑 向 量 S V 恰 好 落 在 间 隔 边 界 线 上 若\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)顶多可以展开为无限维的。则展开式是一个 x n x^n xn的线性组合。也即我们通过对原来的空间做转换后,可以在一个更高维的空间里使线性方法来处理非线性问题。
需要解决几个问题

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

kernel可以降低计算成本
假设我们已经做了特征变换 z n = ϕ ( x n ) z_n=\phi(x_n) zn=ϕ(xn),由②式可知目标函数为
min ⁡ w , b L ( z , α , β ) = − 1 2 ∑ i ∑ j α i α j β i β j ( z i ⋅ z j ) + ∑ 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,
可知计算量主要在于 z i ⋅ z j z_i\cdot z_j zizj。它可以分为两步:①做特征转;②做內积。
假设特征转换后的维度为 d ^ \widehat d d ,原始特征维度为 d d d。则特征转换导致空间维度增大,增加了计算成本。但在某些情况下将这两步结合,能大大减少运算量。

以二阶多项式的內积为例。二阶多项式如下:
在这里插入图片描述
转换后作內积有:
在这里插入图片描述
时间复杂度从 两 步 分 开 做 时 的 O ( d 2 ) 变 为 了 O ( d ) 两步分开做时的O(d^2)变为了O(d) O(d2)O(d),大大降低了运算量。另外与 d ^ \widehat d d 没有任何关系,进一步降低了运算量。
我们把合并特征转换和內积运算称为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: K Q ( x , y ) = ( ξ + γ x ⋅ y ) Q K_Q(x,y)=(\xi+\gamma x \cdot y)^Q KQ(x,y)=(ξ+γxy)Q
通常用于特征多、样本多的情形。
线性核:当Q=1时,就是线性可分的情况。特点:

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

多项式核特点:

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

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

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

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

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

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值