支持向量机(Support Vector Machine, SVM)
西瓜书支持向量机部分学习笔记
-
间隔与支持向量
给定训练样本集D = {(𝑥1, 𝑦1) ,( 𝑥2, 𝑦2) , … ,( 𝑥𝑁, 𝑦𝑁 )}, 𝑥𝑖 ∈ 𝑅𝑛, 𝑦𝑖 ∈ {+1, −1},分类学习最基本的想法就是基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开。但是可以把样本分开的平面有很多,如下图所示:
从上图可以看到,红色的超平面,是我们最想要的超平面。因为该划分超平面对训练样本局部扰动的“容忍”性最好。
在样本空间中,划分超平面可通过如下线性方程来描述:
即
平面的法向量为:
空间中任意一点到超平面的距离为(点到平面距离求解公式):
对于样本中的点也有下面的公式:
如图 6.2 所示,距离超平面最近的这几个训练样本点使式(6.3) 的等号成立,它们被称为"支持向量" (support vector) ,两个异类支持向量到超平面的距离之和为
它被成为“间隔”(margin)
我们的目的就是找到最大间隔的超平面。也就是:
-
对偶问题
对于6.6的式子,我们可以采用拉格朗日乘数法进行求解。
这个地方搞不明白的话,可以看看这篇描述kkt的文章,写的很清楚。KKT
-
代码实现