1 支持向量机模型(线性可分)
引入一个问题:假如我们有图1所示的两簇点集,我们需要一条线(分类模型)来将两簇点分别开来,我们该如何划线呢?理论上,如果没有什么特殊要求的话,这样的线可以画无数条。
那么那一条线是比较好的呢?很多人直观上都会觉得是中间绿色的那条。
那么有什么办法评价这条线到底好不好呢?
SVM的发明者Vapnik定义了一种衡量这条线的准则来巧妙的解释了上述疑问。
如图2所示,定义一条直线,让它在两簇点之间上下平行移动,当其与某类点相交时为边界,则会在最初定义直线的两侧找到两侧边界,如图2所示。中间将两类点分开的“线”(有一定的平移范围),实际也有无数个。遂产生了两个边界之间间隔d(Margin)的衡量标准,Vapnik的观点就是寻找d最大的那条“线”,就是分开这两类点最好的那一条(距离两侧边界相等,均为d/2)。于是,SVM就诞生了。接下来就是如何寻找的问题。
如何将这个问题优雅的用数学表示?下面介绍一些个人了解到的一些知识。
_____________________________________________________________________________
本次笔记主要是阐述,SVM模型是如何建立,其思想历程是怎样的。主要是两个问题:
① 我们怎么样定义上图中划分线的优劣?
② 如何找到这样的线?
* 关于线性可分和线性不可分的概念,想必大家都有自己的理解,这里不再详细介绍,文中会会体现相关定义。
1.1 一些小的概念
: 间隔(Margin),SVM定义的模型衡量标准,寻找d最大的超平面。
: 支持向量,超平面左右边界相交的样本向量。
① 训练样本及标签
有一批样本 ,其中 是一个向量;
是样本标签(即属于哪一种类别)。
② 线性模型
构建一个线性模型(超平面):.
其中 是跟 同维的向量。
③ 一个训练集线性可分是指(数学描述),
对于一个样本集合 ,
使得 ,
(a) ,
(b) ,
上述 (a) 与 (b) 等价于 .
解释:这里假设分类问题是二分类问题,并且把便签类别分别定义为+1和-1(任何形式
都可以,用正负一方便数学表示),所以(a)和(b)中的不等式与保证同号,遂有上式。
1.2 一些存在的事实
① 对于一个线性模型(超平面) 而言,表示同样平面。
② 点到线性模型(超平面)的距离(推广自点到直线的距离公式),。
1.3 SVM 建立的优化问题
根据SVM建立的超平面优劣的衡量准则,可以将最优线性模型的寻找,定义为下述优化
(如何定义划分的线?)
① 最小化 , 为了求导后的方便,等价于 .
* 为什么是最小化 ?因为SVM归根结底是要寻找d最大的超平面,那么根据上述事实②,要使得最大,则需要最小。
(怎么样找到这个线?)
② 满足限制条件 .
* 这里会有一点小疑问,为什是大于等于1,前文中明明是大于等于0,是不是写错了?其实不然,根据上述事实①我们可以调整a的值来缩放超平面(左右移动超平面),在支持向量处,会有,这个时候支持向量与平面的距离恰好为, 那么在支持向量外侧的点,自然而然就满足,所以对于整个样本集合来说,满足上述约束②。
有了上述两个描述,我们只需要想办法寻找最大的Margin 就可以将超平面找到了。
SVM的巧妙之处,其实是把寻找超平面的优化问题,设置成了一个二次优化(目标函数是二次项,限制条件是一次项)。
(之后继续整理,如何求解上述问题。)