支持向量机SVM推导及求解过程
一、前言
1.1 什么是支持向量机(Support Vector Machine)
对于线性可分的两类数据,支持向量机就是一条直线(对于高维的数据就是一个超平面)。在二维空间中,将数据分成两类的线有无数条,SVM就是这是无数条中最完美的一条,所谓完美就是指这条线距离两类数据点越远,这样当有新的数据点的时候我们使用这条线将其分类的结果也就越可信。找到这条完美的直线通过两步:
(1)、找到数据点中距离分割超平面距离最近的点(找最小)
(2)、使距离超平面最近的点的距离的绝对值尽量大(求最大)
1.2 模型求解原理
支持向量机是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则即使间隔最大化,最终转化为一个凸二次规划问题来求解:
(1)、当训练样本线性可分时,通过硬间隔最大化,学习一个线性可分支持向量机
(2)、当训练样本近似线性可分时,通过软间隔最大化,学习一个线性支持向量机
(3)、当训练样本线性不可分时,通过核技巧和软间隔最大化,学习一个非线性支持向量机
1.3 拉格朗日乘子法和KKT条件
拉格朗日乘子法和KKT条件用于求解带有约束条件的两个求取方法。对于等式约束的优化问题,可以使用拉格朗日乘子法去求最优值;对于含有不等式约束,可以应用KKT条件去求解。
深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
二 支持向量机(SVM)推导
2.1 划分超平面
在样本空间中,划分超平面可通过下面的线性方程来描述:
其中为法向量,决定了超平面的方向;
为位移项,决定了超平面与原点的距离。显然,不同的
和
确定不同的分割面。
假设超平面能将训练样本正确分类,则对于训练样本有:
上式称为最大间隔假设,表示样本为正样本,
表示样本为负样本,式子前面选择大于等于+1.小于等于-1只是为了计算方便,原则上可以是任意常数,但无论是多少,都可以通过对
进行变换使其为+1和-1,此时将公式左右都乘以
,得到下面公式:
等价于
训练集中所有样本都应满足上式。如下图,距离超平面最近的这几个样本点满足,它们被称为支持向量。虚线称为边界,两条虚线间的距离称为间隔(margin)。
下面我们开始计算间隔,其实间隔就等于两个异类支持向量的差在上的投影,即
其中和
分别表示两个正负支持向量,因为
和
满足
,则有: