支持向量机
- 监督学习
- 针对复杂非线性方程
优化目标
先从逻辑回归出发,下面是我们熟悉的假设函数和Sigmoid图像:
我们希望逻辑回归做什么:如果y=1,那么我们希望假设函数h约等于1,即希望z远远大于0;如果y=0,那么我们希望h约等于0,即希望z远远小于0。
接下来我们来看逻辑回归的代价函数:
当y=1时,代价函数增加了
;当y=0时,代价函数增加了
。
进一步探究:
当y=1时,z越大,增加的代价越小;反之,当y=0时,z越小,增加的代价越小。
然后我们使用另一种代价函数去代替上图中的代价函数(图中红色的线):
现在,我们基于上面,来构建支持向量机:
先是逻辑回归的代价函数:
我们修改其中的某些内容:
- 改变其中的log函数为抽象的cost()
- 删去1/m,因为1/m并不会影响到最终求得的theta值
- 将逻辑回归A+λB的形式转化为CA+B
最终得到支持向量机的优化目标函数:
那么我们可以发现 SVM的假设有别于逻辑回归的地方是:
当y=1或0的时候,我们希望逻辑回归的h约等于1或者约等于0,而SVM的h等于1或0。
大间距分类器的直观解释
SVM会被成为大间距分类器,这里将解释为什么这样称呼。
下面是前面所说的SVM代价函数:
我们假设C取很大的值,如100000:
我们希望第一项A=0,即当y=1时,
大于等于1;当y=0时,
小于等于-1。
下面来看一个例子:
对于这个线性可分的样本,SVM趋向于画一条黑线,可以看出黑线比绿线和红线都自然稳健的多。
黑色的线与正负样本的距离离得更远,这就是为什么SVM被称为大间距分类器。
这也是为什么SVM具有鲁棒性的原因:它以最大间距来划分样本。
为什么会有这样的效果在下一小节给出。
当出现异常值时:
将黑线变成红线是不明智的。
当C设置的非常大时,SVM就会将黑线变成红线。相应的,如果C设置的不是非常大,SVM仍然可以得到黑线。
大间距分类器背后的数学解释
SVM代价函数:
s.t.是在…条件下的意思。我们得知在上述条件下,SVM的代价函数可以简化为B项(正则化项)。
上图是关于
的向量化表示。
向量的内积:
是有方向的
那么,SVM的代价函数可以表示如下:
我们来看一下为什么SVM不选择绿线:
这里绿线是决策边界,蓝线是theta向量,p是样本点在theta上的投影。
为什么决策边界和theta是正交的?
西瓜书支持向量机刚开头说了划分超平面的知识:此处theta0=0,位移项为0,所以划分边界与theta正交。
说回来:因为绿线很斜,p很小,导致ptheta中的theta需要够大才能满足乘积大于等于1或者小于等于-1的条件。所以代价函数必然会变大。所以SVM不会选择绿线。