线性SVM算法笔记.上
1.前言
该博客内容为个人算法笔记,主要是为了对抗遗忘和面试的问题,参照李航的《统计学习方法》。因此内容更多的会偏向于个人学习的归纳和总结。
2.支持向量机原理
支持向量机(SVM)的思想原理主要是为数据集寻找一个可划分的超几何平面,从而使得数据点到平面的几何间隔达到最大,若数据集线性可分,此时超几何平面具有唯一性,几何间隔也称之为硬间隔。若数据集线性不可分,此时几何间隔称之为软间隔。概况而之,SVM算法是为数据集寻找一个几何距离最大的超平面。
软间隔主要是在规划约束上添加一系列惩罚项,从而将非线性可分的约束规划问题转化为线性可分的约束规划问题。
寻找最大间隔距离平面本身就等价于一个凸二次规划问题,首先要求平面能够正确的划分数据点的分类、其次要求数据点到平面的距离达到最大值,因此才能够确定超平面的法向量和截距。
算法具体的处理过程可以这样理解
2.1函数间隔与几何间隔
2.2 距离间隔最大化通过技巧转化为数学的二次凸优化问题
几何间隔就是数据点到平面的真实距离,这个距离可以在不同平面内比较,而函数间隔没有分母(法向量的模),也就是说数据点的函数距离只能针对同一平面(严格的讲是同一法向量w和同一截距b)进行比较。
函数间隔和几何间隔都定义为数据点在表达式当中的距离达到最小的那个点
上图为几何距离公式
下图为几何间隔最大的数学表达,也就是SVM算法的最原始的形式,将上面几何距离与函数距离转换的公式带入下面表达式中
得到
由于法向量和截距在限制条件中成比例的增长,导致函数距离也成相应比例的增长,对于最大化的优化在表达式中却没有任何的影响,因此设定函数距离等于1,此外
max
1
∣
∣
ω
∣
∣
−
等
价
于
−
min
∣
∣
ω
∣
∣
2
2
\max \frac{1}{||\omega||} -等价于- \min \frac{||\omega||^2}{2}
max∣∣ω∣∣1−等价于−min2∣∣ω∣∣2
因此最终转换为凸二次规划问题
上面的步骤完成了以下的流程
3.线性支持向量机算法原理
3.1拉格朗日对偶性
拉格朗日对偶性原理是将连续可微的原始问题转化为对偶问题,因为对偶问题通常会比较好求解其结果。
引入α和β拉格朗日乘子的作用是将约束条件加入到函数之中,由此构造出拉格朗日函数
注意α大于等于零的限制条件
然后再对拉格朗日求极小极大值问题,首先是对L(x,α,β)求关于α、β的极大值,这样做的目的在于保障数据点x仍然能够满足凸二次优化问题的限制条件,即c(x)<=0,h(x)=0,若出现数据点违反了前面两个条件c>0或者h!=0,则另α和β趋于无穷大,则导致拉格朗日函数不存在最大值。再取极小是因为L本身包有f(x),再者因为C总是负的(c=1-y(w.x+b)),c绝对值越大意味着L越小,从而使得数据点到超平面的函数距离也会越大,也是符合SVM思想原理的。
因此原始问题等价于拉格朗日的极小极大问题(需要注意这里取极值的顺序)
因此原始问题被转换为求拉格朗日函数的极小极大值问题,而对偶问题则定义为极大极小拉格朗日函数
下面一节探讨原始问题与对偶问题最优值之间的关系
3.2KKT条件下的对偶问题与原始问题的一致性
定理C.1主要证明了对偶问题的最优值小于原始问题的最优值,由此可以推论出若对偶问题与原始问题的最优值d=p时,其最最优参数在两个问题中相同
定理C.2、C.3在书中无证明过程,C2主要是说在这种条件下,原始问题与对偶问题存在着同一解。而C3主要是讲在KKT条件下,对偶问题与原始问题最优解的一致性,
特别注意C.22条件,它推导出存在C=0,这个等式也就意味着,某个数据点到平面的函数距离等于1,也就是说这个数据点与平面构成支持向量
而且y(w.x+b)=1的这个点也会构成在下一节中具体求解超平面的截距项b的关键条件
以上3.1和3.2所解决的流程如下图