一、SVM简介
SVM(Support Vector Machine)被认为是现存的最好的监督学习算法之一,甚至有人认为它就是最好的。Ng为了讲清楚这个算法,先是从最优间隔分类器开始,再到KKT条件原问题和对偶问题,最后引出SVM的概念和求解方法。我按我的理解来,可能细节有点不一样,但最后是殊途同归。
二、最优间隔分类算法
假设有两个数据集{(xi,yi):i=1,...m},其中xi是p维向量,p为特征维数,而yi∈{-1,1},i=1,...,m是样本数量。并且假设该数据集是线性可分的。如下图:
上面是正样本,下面是负样本,中间是一个分割超平面。上图所示即为当p=2时,xi为二维向量,代表的是平面上的点,如果p等于一个很大的数,用图形是无法形象表达的。
因为数据是线性可分的,即
计算任一点xi到超平面的距离,根据点到平面距离公式:
正样本点:
负样本点:
(因为距离不可能为负数,所以在前面添加一个负号)
令:
M被称为几何间隔。
试想一下,一个好的分类超平面,肯定是两边的点到其距离都尽可能的小。所以最优间隔分类器 的目标函数为:
这个意义也是明显的,最优的分类器肯定使所有样本到超平面的最小距离最大化。上述最优化问题等价为: