Support Vector Machine
Linear Hard-Margin SVM
首先看一个非常简单的线性可分问题,下图所示三条直线(超平面)都可以将问题分开,那么哪条线分得比较好呢?当然我们可以在训练时通过不同的初始化方式得到不同的超平面,在验证集上进行评价选出最好的超平面。问题是对于这样的问题,存在无数种可能将数据很好的分开,当然不可能对所有可能的结果进行评价,那么如何在训练时就得到一个较好的分类器呢?一个直观的想法就是把两类样本分得越远越好,就是让正负样本到超平面的最近的距离越大越好。
假设我们需要的超平面
注意到这个形式本质上是一个二次规划问题,数学家们已经搞好了二次规划问题的解决方式,将它改成标准的二次规划形式后扔给解二次规划问题的软件就好了
这个二次规划问题需要求解的变量数目是
回顾一下简单的感知器分类函数,我们优化的目标是希望错分的样本数越少越好,另外可以对权重进行限制作为正则化的手段。而现在的SVM优化的目标变成了权重的二范数,而限制条件变成了
Dual Hard-Margin SVM
对于线性不可分的问题,采用一个变换将
例如对下图所示的两个类似椭圆形的点采用函数
映射到三维空间并对齐进行旋转后,便可得到一个线性可分的超平面了。(例子以及图片来自pluskid的kernel函数部分)
一般来说,原本线性不可分的问题能通过映射到更高维甚至是无限维来解决(除非运气特别好碰到映射到低维空间也能解决的问题)
前面我们说过,二次规划问题需要求解的变量数目是
引入拉格朗日乘子法,定义一个新的求解量
原本的优化目标是
当满足限定条件时,
对任意
当
问题转化为原问题的拉格朗日对偶问题
先求解
带入后原问题转化为
其中一些条件,
- 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)条件,他们是存在最优解的充分必要条件
经过上述变换有
它仍然满足二次规划的形式
其中需要求解的变量数为
现在虽然需要求解的变量数与