参考❤️:http://blog.csdn.net/passball/article/details/7661887/
一、线性分类器
1、超平面 g(x)=<w,x>+b
2、线性可分:如果一个线性函数能够将样本完全正确的分开,就称这些数据是线性可分的,否则称为非线性可分的。
3、对于g(x)=<w,x>+b
(1)x不是二维坐标系中的横轴,而是样本的向量表示,例如一个样本点的坐标是(3,8),则xT=(3,8) ,而不是x=3(一般说向量都是说列向量,因此以行向量形式来表示时,就加上转置)
(2)g(x)不是中间那条直线的表达式,中间那条直线的表达式是g(x)=0,即wx+b=0,我们也把这个函数叫做分类面。实际上很容易看出来,中间那条分界线并不是唯一的,我们把它稍微旋转一下,只要不把两类数据分错,仍然可以达到上面说的效果,稍微平移一下,也可以。此时就牵涉到一个问题,对同一个问题存在多个分类函数的时候,哪一个函数更好呢?显然必须要先找一个指标来量化“好”的程度,通常使用的都是叫做“分类间隔”的指标。
4、一个样本点到某个超平面的间隔:δi=yi(wxi+b)
5、几何间隔:δj=|(wxi+b)|/||w||
6、可以看出δ=||w||δ几何。注意到几何间隔与||w||是成反比的,因此最大化几何间隔与最小化||w||完全是一回事。而我们常用的方法并不是固定||w||的大小而寻求最大几何间隔,而是固定间隔(例如固定为1),寻找最小的||w||。
7、最大化几何距离-》最小化||w||-》最小化1/2||w||^2
之所以采用这种形式,是因为后面的求解过程会对目标函数作一系列变换,而 1/2||w||^2 的形式会使变换后的形式更为简洁(正如聪明的读者所料,添加的系数二分之一和平方,皆是为求导数所需)。
8、如果直接来解这个求最小值问题,很容易看出当||w||=0的时候就得到了目标函数的最小值。但是你也会发现,无论你给什么样的数据,都是这个解!反映在图中,就是H1与H2两条直线间的距离无限大,这个时候,所有的样本点(无论正样本还是负样本)都跑到了H1和H2中间,而我们原本的意图是,H1右侧的被分为正类,H2 左侧的被分为负类,位于两类中间的样本则拒绝分类(拒绝分类的另一种理解是分给哪一类都有道理,因而分给哪一类也都没有道理)。这下可好,所有样本点都进入了无法分类的灰色地带。
造成这种结果的原因是在描述问题的时候只考虑了目标,而没有加入约束条件,约束条件就是在求解过程中必须满足的条件,体现在我们的问题中就是样本点必须在H1或H2的某一侧(或者至少在H1和H2上),而不能跑到两者中间。我们前文提到过把间隔固定为1,这是指把所有样本点中间隔最小的那一点的间隔定为1(这也是集合的间隔的定义,有点绕嘴),也就意味着集合中的其他点间隔都不会小于1,按照间隔的定义,满足这些条件就相当于让下面的式子总是成立:yi[(w·xi)+b]≥1 (i=1,2,…,l) (l是总的样本数)
9、因而我们的两类分类问题也被我们转化成了它的数学形式,一个带约束的最小值的问题:ob: min(1/2||w||^2),st:yi[(w·xi)+b]≥1 (i=1,2,…,l) (l是总的样本数)
在这个问题中,自变量就是w,而目标函数是w的二次函数,所有的约束条件都是w的线性函数,是一个凸二次规划,有全局最优解。
10、我们想求得这样一个线性函数(在n维空间中的线性函数):
g(x)=wx+b
使得所有属于正类的点x+代入以后有g(x+)≥1,而所有属于负类的点x-代入后有g(x-)≤-1(之所以总跟1比较,无论正一还是负一,都是因为我们固定了间隔为1,注意间隔和几何间隔的区别)。代入g(x)后的值如果在1和-1之间,我们就拒绝判断。求这样的g(x)的过程就是求w(一个n维向量)和b(一个实数)两个参数的过程(但实际上只需要求w,求得以后找某些样本点代入就可以求得b)。因此在求g(x)的时候,w才是变量。
w不仅跟样本点的位置有关,还跟样本的类别有关,w可以表示为样本和类别的某种组合:w=α1y1x1+α2y2x2+…+αnynxn
正在上传...取消重新上传
则:
正在上传...取消重新上传
x才是变量,进一步:
正在上传...取消重新上传
二、核函数:
解决线性不可分问题的基本思路——向高维空间转化,使其变得线性可分。
如果有这样的函数,那么当给了一个低维空间的输入x以后
g(x)=K(w,x)+b
f(x’)=<w',x'>+b
三、惩罚因子(松弛变量):
(允许一些点到分类平面的距离不满足原先的要求)
正在上传...取消重新上传
原来的优化问题变为:
正在上传...取消重新上传
需要注意的几点:
1、并非所有的样本点都有一个松弛变量与其对应。实际上只有“离群点”才有,或者也可以这么看,所有没离群的点松弛变量都等于0(对负类来说,离群点就是在前面图中,跑到H2右侧的那些负样本点,对正类来说,就是跑到H1左侧的那些正样本点)。
2、松弛变量的值实际上标示出了对应的点到底离群有多远,值越大,点就越远。
3、惩罚因子C决定了有多重视离群点带来的损失。C越大,对目标函数的损失也越大,此时就暗示着你非常不愿意放弃这些离群点,最极端的情况是你把C定为无限大,这样只要稍有一个点离群,目标函数的值马上变成无限大,马上让问题变成无解,这就退化成了硬间隔问题。