Linear Hard-Margin SVM
首先看一个非常简单的线性可分问题,下图所示三条直线(超平面)都可以将问题分开,那么哪条线分得比较好呢?当然我们可以在训练时通过不同的初始化方式得到不同的超平面,在验证集上进行评价选出最好的超平面。问题是对于这样的问题,存在无数种可能将数据很好的分开,当然不可能对所有可能的结果进行评价,那么如何在训练时就得到一个较好的分类器呢?一个直观的想法就是把两类样本分得越远越好,就是让正负样本到超平面的最近的距离越大越好。
假设我们需要的超平面
wx+b=0
,这个超平面能将正负样本成功分开,即对所有的正样本(
y=+1
)都有
wx+b>0
,对所有的负样本(
y=−1
)都有
wx+b<0
,合并起来就是
yi(wxi+b)>0
,另外假设对于所有的样本,
yi(wxi+b)
的最小值是
ϵ
。由于对
w
和
注意到这个形式本质上是一个二次规划问题,数学家们已经搞好了二次规划问题的解决方式,将它改成标准的二次规划形式后扔给解二次规划问题的软件就好了
这个二次规划问题需要求解的变量数目是
d+1
,限制条件数目为
N
,其中
回顾一下简单的感知器分类函数,我们优化的目标是希望错分的样本数越少越好,另外可以对权重进行限制作为正则化的手段。而现在的SVM优化的目标变成了权重的二范数,而限制条件变成了 yi(wxi+b)≥1
Dual Hard-Margin SVM
对于线性不可分的问题,采用一个变换将
X
空间中的样本变到
例如对下图所示的两个类似椭圆形的点采用函数
映射到三维空间并对齐进行旋转后,便可得到一个线性可分的超平面了。(例子以及图片来自 pluskid的kernel函数部分)
一般来说,原本线性不可分的问题能通过映射到更高维甚至是无限维来解决(除非运气特别好碰到映射到低维空间也能解决的问题)
前面我们说过,二次规划问题需要求解的变量数目是
d+1
,之前的办法解决维度特别高(无限维)的问题时很困难,我们希望将问题的复杂度变成与
d
无关
引入拉格朗日乘子法,定义一个新的求解量
原本的优化目标是
12wTw
,限制条件是
yn(wTzn+b)≥1
,
当满足限定条件时,
L≤12wTw
,即
12wTw=maxL(w,b,α≥0)
对任意
α′>0
,有
min(maxL(w,b,α))≥minL(w,b,α′)
当
α′
是最优解时同样满足,所以有
min(maxL(w,b,α))≥max(minL(w,b,α′))
问题转化为原问题的拉格朗日对偶问题
先求解
minL
,分别令
∂L∂w=0→w=∑αnynzn
∂L∂b=0→∑αnyn=0
带入后原问题转化为
其中一些条件,
- primal feasible: yn(wTzn+b)≥1
- dual feasible: αn≥0
- dual-inner optimal: w=∑αnynzn;∑αnyn=0
- primal-inner optimal:
αn(1−yn(wTzn+b))=0
这些条件称作KKT(Karush-Kuhn-Tucker)条件,他们是存在最优解的充分必要条件
经过上述变换有
它仍然满足二次规划的形式
其中需要求解的变量数为
N
,限制条件数目是
现在虽然需要求解的变量数与
d
无关了,然而矩阵