支持向量机(SVM)是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机模型;支持向量机还包括核技巧,使它成为实质上的非线性分类器。
线性可分支持向量机
定义超平面为
w⋅x+b=0
, 它由法向量
w
和截距
SVM的主要思路就是 “间隔最大化”。它关心的是找到一条最优的分离边界,使得类别之间的间隔最大,或者说以充分大的确信度对训练数据进行分类。不仅将正负点分开。还要将最难分的(离超平面近)点也要有足够大的确信度将他们分开。因此,SVM会主要关心那些难分(离超平面近)的实例点。
下面用数学的方式来表示“间隔”,然后最大化它。
函数间隔: 在超平面确定的情况下,
|w⋅x+b|
能够相对地表示点x距离超平面的远近。而
w⋅x+b
的符号与y的符号是否一致能够表示分类是否正确。所以定义样本点
(xi,yi)
对超平面
(w,b)
的函数间隔为
但是如果成比例的改变 w 或者
几何间隔:
定义样本点 (xi,yi) 对超平面 (w,b) 的几何间隔为
易知,函数间隔和几何间隔的关系 γ=γ^||w|| 。如果成比例的改变 w 或者
则SVM的目的“间隔最大化”用数学形式表达即以下约束最优化问题:
即我们希望最大化超平面关于数据集的几何间隔,约束条件表明超平面关于每个样本点的几何间隔至少是 γ
这是线性可分支持向量机的最终目标,下面就一步一步地来解决它。
1. 首先,利用几何间隔和函数间隔的关系重写最优化问题为
在线性可分问题中,使约束的等号成立的点称为 支持向量。对于 yi=+1 的正例点,支持向量在超平面 H1:w⋅x+b=1 上,对于 yi=−1 的负例点,支持向量在超平面 H2:w⋅x+b=−1 上。两个超平面之间的间隔为 2||w|| 。 正是这些支持向量对分离超平面起作用,而其他点对于解是没有影响的。因此这种模型叫做支持向量机。
2. 这是一个带有约束的最优化问题。使用拉格朗日对偶性进行求解。首先构建拉格朗日函数,引入拉格朗日乘子 αi⩾0,i=1,2,...,N ,定义拉格朗日函数
考虑此时的支持向量,为 α∗i>0 的点。( α∗i=0 的点对求解并没有实质性作用)
线性不可分支持向量机
对于线性不可分问题,原始问题的约束条件(函数间隔大于等于1)就会不满足了。这时可以对每个样本点引入一个松弛变量 ξi⩾0 , 这样约束条件就变成了 yi(w⋅x+b)⩾1−ξi , 对于每个松弛变量支付一个代价 ξi , 目标函数变为 12||w||2+C∑Ni=1ξi ,C为惩罚参数。它调和最大化间隔和最小化误分类点二者。则对于线性不可分问题,学习问题变为
求解时还是先写出拉格朗日函数,求其对偶问题。拉格朗日函数为
下一步的求解仍是使用SMO算法,最终结果和线性可分问题几乎一样,在计算 b∗ 时,选择 0<α∗j<C 由于原始问题对b的解不唯一,实际问题中可以取所有符合条件的样本点计算,然后取平均。
软间隔的支持向量是 α∗i>0 的点。但是这些点不一定在间隔边界上。若 α∗i<C 则 ξi=0 ,支持向量在间隔边界上;若 α∗i=C,0<ξi<1 ,分类正确,支持向量在间隔边界和分离超平面之间;若 α∗i=C,ξi=1 ,支持向量在分离超平面上;若 α∗i=C,ξi>1 ,支持向量在分离超平面误分一侧。
SVM另一种解释方式
通过软间隔最大化,可以引出SVM的另一种解释方式,正则化的合页损失函数的最小化问题。最小化以下目标
这就是说当样本点被正确分类且函数间隔 yi(w⋅xi+b) 大于1时,损失是0。否则是 1−yi(w⋅xi+b)
以下给出简单证明,两种解释方式等价。
令 [1−yi(w⋅xi+b)]+=ξi ,易知线性不可分支持向量机的目标约束成立。最优化目标写成
在吴恩达的机器学习视频里,是从逻辑回归LR中引出SVM的。他们的区别在于LR使用的是对数损失函数,而SVM使用的是合页损失函数。不同损失函数如下。
两个损失函数的目的都是增加对分类影响较大的数据点的权重。SVM是只考虑支持向量,而LR通过非线性映射,大大减小了离分类平面较远点的权重。
相比来说,SVM的独特点在于它的核技巧。但是,不代表核技巧是SVM专有的。Kernel Logistic Regression(KLR)也很常见,FM/FFM也算是KLR。
关于正则项,LR需要在损失函数中添加,但是SVM损失函数就自带L2正则项!很神奇
关于何时使用哪种分类算法,下面贴出吴恩达的解释
关于核技巧,下一篇文章将进行说明。