令人煎熬的SVM 线性可分支持向量机与硬间隔最大化

此时此刻,还是带着问题写的博客····

哇,怎么总结.

先贴上一个博客地址   http://blog.pluskid.org/?p=632

先说名字,线性可分,就是存在一个超平面,能把正例跟负例完全分隔开,那么这个数据集就是线性可分的。

支持向量:离超平面越近的越难分是正例还是负例,要想加新的点以后预测更准确,就要使得 样本点到超平面的最小距离l最大  (距离越大越容易分类)而这个能得到最小距离l的样本点就叫做支持向量。支持向量一定是正负例都有的,它是平行于超平面,到超平面的距离为l的两个超平面上的样本点。

硬间隔:过支持向量的两个超平面之间形成了一个间隔。这两个超平面叫间隔边界。

与软间隔对应,硬间隔是存在于数据集线性可分的情况下,而软间隔是数据集近似线性可分情况。后面还没复习到,复习到再回来补充。补充:硬间隔是把所有的样本点正确分在超平面两侧,而软间隔允许某些样本点错误分类。

令人煎熬的SVM 线性可分支持向量机与硬间隔最大化

然后目标函数是什么?

要求的分离超平面是:   

令人煎熬的SVM 线性可分支持向量机与硬间隔最大化   

令人煎熬的SVM 线性可分支持向量机与硬间隔最大化

显然要求的参数有两个,怎么求参数呢?

硬间隔最大化

有两个间隔

1.函数间隔

2.几何间隔

函数间隔,在二维空间中可以理解为点到直线的距离,点代入直线方程,然后取绝对值。

令人煎熬的SVM 线性可分支持向量机与硬间隔最大化

(hat gamma)

y取值正负1,乘以y,相当于取绝对值。

几何间隔。因为如果已经选定了支持向量,对w和b成比例增长,比如都乘以2,超平面没有变,但是这个最小间隔求出来就也变成了2倍。所以,进行规范化,就有了几何间隔。

令人煎熬的SVM 线性可分支持向量机与硬间隔最大化

那么硬间隔最大化当然是选择几何间隔了。

接下来是最大化。

令人煎熬的SVM 线性可分支持向量机与硬间隔最大化

用函数间隔是

令人煎熬的SVM 线性可分支持向量机与硬间隔最大化

函数间隔为什么取1?其实没有懂。

令人煎熬的SVM 线性可分支持向量机与硬间隔最大化

令人煎熬的SVM 线性可分支持向量机与硬间隔最大化

这是目标函数

剩下的就是如何求解上式。

这是个凸二次规划问题。哇什么鬼?就是符合某些条件的约束最优化问题,这个不重要。

怎么解呢?

用到的是拉格朗日对偶性,简单说,就是把这个问题转换为一个比较容易求解的对偶问题。

首先构建拉格朗日函数,这个大学学过,就是把约束条件乘个因子,写到目标函数后面。

令人煎熬的SVM 线性可分支持向量机与硬间隔最大化

这个拉格朗日乘子的元素都是非负的。为啥?

令人煎熬的SVM 线性可分支持向量机与硬间隔最大化

(1)求极小值,利用偏导

令人煎熬的SVM 线性可分支持向量机与硬间隔最大化

求出了w,带回式子。

令人煎熬的SVM 线性可分支持向量机与硬间隔最大化

(2)然后是求极大值

令人煎熬的SVM 线性可分支持向量机与硬间隔最大化

也就是

令人煎熬的SVM 线性可分支持向量机与硬间隔最大化

这里先假设求得了alpha的解

令人煎熬的SVM 线性可分支持向量机与硬间隔最大化

这里KKT还没有看懂

令人煎熬的SVM 线性可分支持向量机与硬间隔最大化

容易求得令人煎熬的SVM 线性可分支持向量机与硬间隔最大化

标黄的式子,当alpha>0,那么中括号中的式子就等于零,也就是说,这个样本点为支持向量;同理,当中括号中大于零,也就是非支持向量,这种时候,alpha必须等于零。(这里被问到说,如果alpha跟括号中都等于零,你该怎么解释?

因此,SVM跟逻辑回归的不同就在于,不用考虑那么多点,只看少量的支持向量就够了。

alpha向量中一定有至少一个元素大于零,为啥呢?因为如果全都为零,那么w=0,而这显然不是目标函数的解?哈?为啥不是?https://www.zhihu.com/question/269619107/answer/349429844

当上面情况成立,那么就可以得到令人煎熬的SVM 线性可分支持向量机与硬间隔最大化  1移到等号右边,左右同乘以yj,因为令人煎熬的SVM 线性可分支持向量机与硬间隔最大化,就求得

令人煎熬的SVM 线性可分支持向量机与硬间隔最大化

然后分离超平面即,

令人煎熬的SVM 线性可分支持向量机与硬间隔最大化

由此看出,决策函数只与输入x与样本的内积有关。

剩下的问题就是如何求解alpha,始终没有提到。

总结一下这个算法:

(1)令人煎熬的SVM 线性可分支持向量机与硬间隔最大化这个就是目标函数的对偶问题,求 alpha 

(2)求w,b


这么多问题,什么时候来填坑???