码迷,mamicode.com
首页 > 其他好文 > 详细

从感知器到SVM

时间:2016-05-31 22:13:44      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:

这篇文章主要是分析感知器和SVM处理分类问题的原理,不涉及求解

感知器:

感知器要解决的是这样的一个二分类问题:给定了一个线性可分的数据集,我们需要找到一个超平面,将该数据集分开。这个超平面的描述如下:                                  

                       $w*x+b=0$      

而感知器的决策函数是: 

                       $f(x)=sign(w*x+b)$

其中     $z=w*x+b$ 是数据集的一个线性回归。

而 $sign$则是一个简单的符号函数。

 

所以,我们可以这样理解。感知器是在线性回归的基础上,加了一个阈值,将:

$w * x_i + b\geq 0$ 的y值离散化为+1、$w * x_i + b\leq 0$ 的y值离散化为-1的一个分类器。

 

理论上,可以使用最小化均方误差的办法来求得所有的权值 W。但是,感知器给出了一个更加简练的办法。

 

对于一个已知的平面 $w*x+b=0 $,一个点 $(x_i,y_i)$到该平面的距离是:

$d=\frac{|w * x_i + b|}{||w||}$,当该点被正确分类以后,

 

$y_i=1$时,$w * x_i + b>0$ ,该点到超平面的距离是 $\frac{w * x_i + b}{||w||}$

$y_i=-1$时,$w * x_i + b<0$ ,该点到超平面的距离是 $- \frac{w * x_i + b}{||w||}$

这可以表示为: $\frac{y_i * (w * x_i + b)}{||w||}$

 

若被误分,则误分点到超平面的距离是  $-\frac{y_i * (w * x_i + b)}{||w||}$

 

将所有的误分点都相加起来,不考虑$\frac{1}{||W||}$,就得到了感知器的损失函数:

 

$L(w,b)=$ $\sum_{i=1}^{n}$$-\frac{Y_i * (w * x_i + b)}{||w||}$

 

对于一个线性可分的数据集,我们当然是希望误分点越少越好,误分点越少,则损失函数越小。于是,感知器的训练就变成了一个无约束条件的最优化问题:

 

     $min \ \ L(w,b) $

 

从无约束到有约束,从感知器到SVM:

 

前面我们得到了感知器的分离超平面: $w*x+b=0 $,这是在无约束的条件下得到的结果。无约束带来的一个很显见的特点是,这样的解有无穷多个。得到感知器这样的分类器,我们可能会觉得这个分类器有点粗心,分类的结果让我们觉得有点不太靠谱。所以,在感知器的基础上,我们希望做到:有最大的确信程度,确定数据的分类。

 

一般情况下,分类点和超平面的距离衡量了分类的确信程度,分类点和分离超平面越远,说明分类越靠谱。而$|w*x+b|$衡量了点到超平面$w*x+b=0 $的距离。

而$y_i $和 $w*x_i+b$符号是否一致可以描述分类的正确性。因此,使用

$y_i*(w*x_i+b)$可以描述分类的正确与否和确信度。

函数间隔:

(1)    样本点函数间隔:

定义:样本点$(x_i,y_i) $和分离超平面$w*x+b=0 $的函数间隔为:

          $T_i$$‘$ $=y_i * (w * x_i + b)$ $ $ $i=1,2,3......n$

(2)    训练集的函数间隔:

定义:训练集的函数间隔是所有样本点的函数间隔的最小值:

          $T_i$$‘$ $=min($$T_i$$‘$$) \ $   $i=1,2,3......n$

 

但是,函数间隔有一个问题是:当 w 和 b 等比例地扩大的时候,γ’实际上也在等比例地扩大,但是分离超平面却没有变化。这样,不利于确定最优分离超平面,说明函数间隔舍弃了重要的信息。而从感知器的推导过程来看,唯一被舍弃的信息只有||w||。我们也可以这样理解,w、b之所以能等比例地扩大,这是因为我们没有对w加以约束,因此,需要在函数间隔的基础上加一约束。这样,函数间隔就变成了:

          $T=\frac{y * (w * x + b)}{||w||}=\frac{T‘}{||w||}$

由于T描述的是样本点$(x_i,y_i) $和分离超平面$w*x+b=0 $的几何距离,因此,得到下面的定义:

(3)    样本点几何间隔:

定义:样本点$(x_i,y_i) $和分离超平面$w*x+b=0 $的几何间隔为:

          $T_i=\frac{y_i * (w * x + b)}{||w||}$ $ $ $i=1,2,3......n$

(4)    训练集的几何间隔:

定义:训练集的函数间隔是所有样本点的函数间隔的最小值:

 

          $T = min(T_i) $ $ $ $i=1,2,3......n$

 

根据SVM需要最大的确信度的思想,可以得到SVM的目标函数如下:

 

          $ max \ \ T$

          $\frac{y_i * (w * x_i + b)}{||w||}\geq T$ $ $ $i=1,2,3.....n$

 

由于 $T=\frac{T‘}{||W||}$

 

因此,可以将这个关系代入上面的目标函数 :

 

得到    $max \ \frac{T‘}{||w||}$

          $y_i$$* (w * x_i + b)\geq T‘$ $ \ \ \ $   $i=1,2,3......n$

 

 

因为 T’表示的是函数间隔,从前面的分析,我们可以知道,w、b等比例的变化的时候,T’也会等比例地变化。因此,我们可以让T’变化为 1 ,这样是可以解得相应的 w 和 b 。

 

于是,得到:  max $\frac{1}{||w||}$

 

          $y_i$$* (w * x_i + b)\geq 1$ $ \ \ \ $   $i=1,2,3......n$

 

由于 max $\frac{1}{||w||}$ 等价于 max $ \ \frac{1}{2}||w||^2$

 

所以,问题可以变成:

         

          $ min \ \ \frac{1}{2}||w||^2$

 

          $1-y_i * (w * x_i + b) \leq0$ $ \ \ \ $   $i=1,2,3......n$

 

 

上面讨论的都是基于数据集线性可分的前提条件,因此,将其称为线性可分支持向量机

 

但是,在实际的生活中,我们能够收集到的数据集常常不是线性可分的。这时候,需要在原来线性可分支持向量机的基础上,往深处延伸一下。于是,就有了下一步

 

 

从线性可分数据集到近似线性数据集,从线性可分支持向量机到线性支持向量机:

 

有些训练集不能线性可分,是因为存在一些特异点,将这些特异点去掉以后,剩下的大部分样本组成的集合依然是线性可分的。

 

在这种情况下,意味着某些样本点$(x_i,y_i) $不能满足函数间隔大于1的约束条件。为了解决这个问题,可以对每个样本点引入一个松弛变量,使得函数间隔加上这个松弛变量后,满足约束条件。因此,约束条件变成了:

         $y_i * (w * x_i + b)+ \zeta_i \geq 1$ $ \ \ \ $   $i=1,2,3......n$

于是可以写成:$y_i * (w * x_i + b) \geq 1 - \zeta_i $ $ \ \ \ $   $i=1,2,3......n$

这种情况下,对每一个松弛变量$\zeta_i$,支付一个代价$\zeta_i$。则目标函数由原来的$\frac{1}{2}||w||^2$  变成:$\frac{1}{2}||w||^2$ $+C$$\sum_{i=1}^{n}$ $\zeta_i$

所以,具有特异点的线性可分支持向量机实际上可以归纳为下面有约束最优化的问题:

 

         $min \ \ \frac{1}{2}||w||^2 + C$ $\sum_{i=1}^{n}$ $\zeta_i$$

 

         $y_i * (w * x_i + b) \geq 1 - \zeta_i $ $ \ \ \ $   $i=1,2,3......n$

 

从近似线性数据集线性不可分数据集,从线性支持向量机到非线性支持向量机:

 

除去了线性可分数据集和近似线性可分数据集,剩下的就是非线性数据集了。如果非线性可分数据集能够用一个超曲面将数据集分开,那么,称这类问题为非线性可分问题。

当遇到非线性可分问题时,我们希望通过一个变换,让数据集经过映射后,成为线性可分数据集。这样,我们就能继续沿用前面提到的办法。

 

记 $z=\phi (x) $是从非线性到线性的映射,那么,只需要将x替换成映射后的函数,就可以继续沿用线性支持向量机的办法,于是,得到目标函数如下:

 

          $min \ \ \frac{1}{2}||w||^2 + C$$\sum_{i=1}^{n}$ $\zeta_i$

          $y_i*(w * \phi (x_i) + b) \geq 1 - \zeta_i $ $ \ \ \ $   $i=1,2,3......n$

 

参考文献:

1、《统计学习方法》 李航

2、维基百科

 

转载请注明源地址:http://www.cnblogs.com/weibao/p/5547587.html

有任何问题请联系:weibao798@gmail.com

从感知器到SVM

标签:

原文地址:http://www.cnblogs.com/weibao/p/5547587.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!