今天接着总结西瓜书的支持向量机(support vector machine)
- 支持向量机的概念理解
本质上就是我们希望找到一条线(二维)或者一个超平面,使得离这条线或者这个平面最近的点,他们能够离这条线或者这个超平面的距离尽可能的远 (这条线或者超平面我们把它术语化为分割面,而样本到分割面的距离为间隔 ,把距离超平面最近的那些点叫做支持向量)
- 支持向量机的概念理解
- 2.公式的一步步推导
(1) 空间中的任意一个点x,到超平面(w,b)的距离如何表示呢?
大家是否还记得初中学的点到直线的距离公式呢?
比对上边的的公式和下边的解释,不难得出,该距离为
r=|wTx+b|/||w|| 除此之外,我们由上述的解释还能知道,对于所有的样本集合,yig(xi)>0均成立。 对于这一点,在书《机器学习实战实战》一书中,有这样的描述:如果数据处于正方向(即+1类)并且离分隔超平面很远的位置,wTx+b 会是一个很大的值,同时yig(xi)也会是一个很大的正值,反之,如果数据点处于负方向(-1类)并且离分割超平面很远的位置时,此时由于类别标签为-1,yig(xi)仍然是一个很大的正数*
(2) 支持向量机基本模型的由来
上述解释换句话说,就是加入一个约定条件:yi(wTx+b)>=1
这样一来,就转化为了一个拉格朗日问题 , 该问题如下
离分隔平面近的点的距离最远 max 2/||w||
其中约束条件为:yi(wTx+b)>=1 i=1,2,3,4,.....m
显然,为了最大化间隔,仅需要最大化||w||-1,这就等价于最小化(||w||)^2, 所以上式可以改写为
min 1/2*||w||^2
s.t yi(wTx+b)>=1 i=1,2,3,4,.....m
(3)拉格朗日函数的构造,对偶问题,KKT约束条件
把上述求偏导的数据带回到拉格朗日原始式子之后,得到如下的结果
这样原来的问题就变成了只有一个变量α的求解问题
-
线性问题
有时候会遇到二维空间的非线性问题,这时候就需要进行升维操作,也就是说于低维空间中非线性的线(面),在映射到高维空间中时,就能变成线性的。
解决此类问题的办法就是加入核函数Kernel, 上述的问题就转化为了求解满足下列等式的αi
4.松弛变量
上面就是一个比较完整的推导过程,但是经验表明把上述条件丢给计算机进行求解,基本上是无解的,因为条件太苛刻了。因此人们想到通过加入松弛变量来解决这一问题,松弛变量的意义本质上就是使得支持向量在如下图中的两条虚线之间进行移动,从而来减小噪音
当上述式子取得极值的时候,约束条件就必须是满足KKT条件的,因此必然有
分析上述的例子可以得到如下的结论点
以上就是SVM的一些基础的推导过程
网友评论