机器学习第七周(一)--SVM

优化目标

支持向量机的引入

作者从逻辑回归开始向我们一点点引入。
在逻辑回归中,假设函数和图像如下:
逻辑回归
如果y=1,那么我们想要的结果就是假设函数无限近似1,对应的Z就要远大于0,同理,如果y=0,那么Z就需要远小于0。
而且我们有损失函数及图像如下:
逻辑回归损失函数
画出y=1和y=0时的损失函数图像,由损失函数开始一点点修改,引入支持向量机。
对于y=1,画出一段折线,使与损失函数的图像相近,这条折线经由Z=1的俩条线段组成。同样的,对于y=0,画出经过Z=-1的折线近似损失函数的图像。
这里,我们将y=1中近似的那条折线称为cost1(z),下标对应分类y=1情况,同理将y=0中那条折线称为cost0(z)。


构建支持向量机

接着上面的定义,用俩条折线替换逻辑回归中的损失函数
支持向量机
接着,我们去掉常数项1/m,因为最小值的取值跟前面常数项是没有关系的。
然后,处理正则化系数。逻辑回归中正则项是平衡代价函数,我们通过修改不同的正则化参数lambda来达到优化目的。
对于支持向量机,我们也将使用一个不同参数来代替lambda。这里用C表示。如上作者给出例子,在逻辑回归中,如果给lambda一个很大的值,那么意味着给B一个很大的权重,在SVM中相当于给C设定了一个非常小的值,这样相当于B有比A更大的权重。
这只是一种控制权重关系的表达,当然,可以将C看做1/lambda。
最后我们就得到支持向量机的优化目标函数。
这里,总结一下构建SVM的步骤:

  • 替换损失函数
  • 去掉常数项
  • 处理正则项

支持向量机的假设函数

有别于逻辑回归中的假设函数,支持向量机中的假设函数如下:
假设函数


大间距分类

支持向量机的损失函数如下:
损失函数
牢记:只有在Z>=1时,cost1(z)=0
在Z<=-1时,cost0(z)=0

安全距离因子

如上,支持向量机的要求比逻辑回归更高,即不仅要求Z>=0或Z<=0,而且要求Z比0大很多或小很多。如上的大于1或小于1。
这就相当于在支持向量机中嵌入了一个额外的安全因子(或者说安全距离因子)。接下来具体看看这个因子的影响。
我接下来会将代价函数中的常数项C设置成一个非常大的值,比如100000或者其他非常大的数,然后再来观察支持向量机会给出什么结果。
svm决策边界
在损失函数中,当C的值非常大时,则在最小化代价函数时,我们希望找到一个使第一项为0的最优解。当找到最优解使第一项为0时我们损失函数就只剩第二项,其中

  • 若y(i)=1时,则θTx(i)≥1
  • 若y(i)=0时,则θTx(i)≤−1

由此我们得到一个决策边界。也就是说当C设定非常大的时候,支持向量机会得到一个决策边界。


SVM决策边界–线性分割

决策边界
如图,有俩堆线性可分的样本,如图中的绿线和粉线都能将其分开,但这不是最佳的分割线。
支持向量机一般会选择黑色的这条线,它看起来更加稳健,在数学上来讲就是这条直线拥有相对于训练数据更大的最短距离,这里距离指的是margin,如图。这就是支持向量机拥有鲁棒性的原因。因为它一直努力用一个最大间距来分离样本。因此支持向量机分类器有时又被称为大间距分类器。


异常点

异常点
如上图,当在O类下出现一个异常X时,当C值置很大时,决策边界会是粉线,仅仅因为一个异常值就将决策边界旋转这么大角度,这是不明智的,如果我们适当减小C,最后决策边界还是会回到黑线。如果有更多线性不可分的异常点时,还是会选择黑线更好。
注意:这里C作用其实等同于1/lambda,在C不是很大时候,可以对包含异常数据、以及线性不可分的数据有比较好的处理效果。


上面的最优解过程没有提到,以下说明。


大间距分类的数学原理

向量内积

从向量引入:
向量内积
有俩个2维向量u、v,把uTv称作向量的内积。把||u||称做u的范数,且给出长度计算公式。下面给出向量内积的具体计算过程:

  • 1、将向量v投影到向量u上,如上图对向量v做一个相对于向量u的直角投影。
  • 2、投影之后的长度就是图中红线p的长度: p=向量v投影到向量u上的长度
  • 3、这里也得到另外一种计算内积的方式: uTv=p.||u|| 结果跟向量间直接计算是相等的。
  • 4、要注意的一点是,这里的p是有符号的,如果两个向量的夹角大于90°,此时p就是一个负数。

决策边界

决策边界
考虑θTx(i)这一项,在前面我们画出了uTv的示意图,这里θT就相当于uT、x(i)就相当于v。那么我们向量内积的计算方式,通过使用上面的方法可以计算得出。训练样本向量投影到参数向量上的长度p(i),表示第i个训练样本在参数向量θ上的投影,具体见上图。
这样θTx(i)就能转化为p(i).||θ||。这样,我们就能得到由p和θ决定的新条件判断:
新条件判断
我们的目标是最小化θ平方,也等于1/2||θ||2,这里,我们置θ0=0(这只是意味决策边界过0点,为了计算方便)。作者这里给了俩个例子说明为什么选择右边的决策边界。
决策边界和参数向量θ是正交的。

左边的决策线:分别取俩点,以p(1)为例说明,当选择这个决策边界时p(1)是比较小的,要达到p(1)||θ||>=1结果,所以||θ||必须足够大,而我们决策边界的目的是为了找到一个θ,使得它的范数||θ||尽可能的小,这就矛盾,p(2)也是一样。所以这并不是一个好的决策边界。

右边的决策线:这里p(1)是比较大的,至少比左边的大,所以我们要找到比较小的||θ||,这就跟决策边界的目的是吻合的。这也就是SVM找到的往往都是最大间距的原因。

注意:这里是我们假设θ0=0情况下进行的,当θ0不等于0时,同样成立,而且,我们默认C取值非常大。