支持向量机Word格式.docx
《支持向量机Word格式.docx》由会员分享,可在线阅读,更多相关《支持向量机Word格式.docx(22页珍藏版)》请在冰豆网上搜索。
当然,说是入贴,但是也不能一上来就是SVM,而是必须要从线性分类器开始讲。
这里我们考虑的是一个两类的分类问题,数据点用
x
来表示,这是一个
n
维向量,而类别用
y
来表示,可以取1或者-1,分别代表两个不同的类(有些地方会选0和1,当然其实分类问题选什么都无所谓,只要是两个不同的数字即可,不过这里选择+1和-1是为了方便SVM的推导,后面就会明了了)。
一个线性分类器就是要在
维的数据空间中找到一个超平面,其方程可以表示为
wTx+b=0
一个超平面,在二维空间中的例子就是一条直线。
我们希望的是,通过这个超平面可以把两类数据分隔开来,比如,在超平面一边的数据点所对应的
全是-1,而在另一边全是1。
具体来说,我们令
f(x)=wTx+b
,显然,如果
f(x)=0
,那么
是位于超平面上的点。
我们不妨要求对于所有满足
f(x)<
0
的点,其对应的
等于-1,而
f(x)>
则对应
y=1
的数据点。
当然,有些时候(或者说大部分时候)数据并不是线性可分的,这个时候满足这样条件的超平面就根本不存在,不过关于如何处理这样的问题我们后面会讲,这里先从最简单的情形开始推导,就假设数据都是线性可分的,亦即这样的超平面是存在的。
如图所示,两种颜色的点分别代表两个类别,红颜色的线表示一个可行的超平面。
在进行分类的时候,我们将数据点
x代入
f(x)
中,如果得到的结果小于0,则赋予其类别-1,如果大于0则赋予类别1。
如果
f(x)=0,则很难办了,分到哪一类都不是。
事实上,对于
的绝对值很小的情况,我们都很难处理,因为细微的变动(比如超平面稍微转一个小角度)就有可能导致结果类别的改变。
理想情况下,我们希望
的值都是很大的正数或者很小的负数,这样我们就能更加确信它是属于其中某一类别的。
从几何直观上来说,由于超平面是用于分隔两类数据的,越接近超平面的点越“难”分隔,因为如果超平面稍微转动一下,它们就有可能跑到另一边去。
反之,如果是距离超平面很远的点,例如图中的右上角或者左下角的点,则很容易分辩出其类别。
实际上这两个Criteria是互通的,我们定义functionalmargin为
γˆ=y(wTx+b)=yf(x),注意前面乘上类别
之后可以保证这个margin的非负性(因为
对应于
y=−1
的那些点),而点到超平面的距离定义为geometricalmargin。
不妨来看看二者之间的关系。
如图所示,对于一个点
,令其垂直投影到超平面上的对应的为
x0
,由于
w
是垂直于超平面的一个向量(请自行验证),我们有
x=x0+γw∥w∥
又由于
是超平面上的点,满足
f(x0)=0
,代入超平面的方程即可算出
γ=wTx+b∥w∥=f(x)∥w∥
不过,这里的
γ
是带符号的,我们需要的只是它的绝对值,因此类似地,也乘上对应的类别
y即可,因此实际上我们定义geometricalmargin为:
γ˜=yγ=γˆ∥w∥
显然,functionalmargin和geometricalmargin相差一个
∥w∥
的缩放因子。
按照我们前面的分析,对一个数据点进行分类,当它的margin越大的时候,分类的confidence越大。
对于一个包含
个点的数据集,我们可以很自然地定义它的margin为所有这
个点的margin值中最小的那个。
于是,为了使得分类的confidence高,我们希望所选择的hyperplane能够最大化这个margin值。
不过这里我们有两个margin可以选,不过functionalmargin明显是不太适合用来最大化的一个量,因为在hyperplane固定以后,我们可以等比例地缩放
的长度和
b
的值,这样可以使得
的值任意大,亦即functionalmargin
γˆ
可以在hyperplane保持不变的情况下被取得任意大,而geometricalmargin则没有这个问题,因为除上了
这个分母,所以缩放
和
的时候
γ˜
的值是不会改变的,它只随着hyperplane的变动而变动,因此,这是更加合适的一个margin。
这样一来,我们的maximummarginclassifier的目标函数即定义为
maxγ˜
当然,还需要满足一些条件,根据margin的定义,我们有
yi(wTxi+b)=γˆi≥γˆ,i=1,…,n
其中
γˆ=γ˜∥w∥
,根据我们刚才的讨论,即使在超平面固定的情况下,γˆ
的值也可以随着
的变化而变化。
由于我们的目标就是要确定超平面,因此可以把这个无关的变量固定下来,固定的方式有两种:
一是固定
,当我们找到最优的
时
也就可以随之而固定;
二是反过来固定
,此时
也可以根据最优的
得到。
处于方便推导和优化的目的,我们选择第二种,令
γˆ=1
,则我们的目标函数化为:
max1∥w∥,s.t.,yi(wTxi+b)≥1,i=1,…,n
通过求解这个问题,我们就可以找到一个margin最大的classifier,如下图所示,中间的红色线条是OptimalHyperPlane,另外两条线到红线的距离都是等于
的:
到此为止,算是完成了MaximumMarginClassifier的介绍,通过最大化margin,我们使得该分类器对数据进行分类时具有了最大的confidence(实际上,根据我们说给的一个数据集的margin的定义,准确的说,应该是“对最不confidence的数据具有了最大的confidence”——虽然有点拗口)。
不过,到现在似乎还没有一点点SupportVectorMachine的影子。
很遗憾的是,这个要等到下一次再说了,不过可以先小小地剧透一下,如上图所示,我们可以看到hyperplane两边的那个gap分别对应的两条平行的线(在高维空间中也应该是两个hyperplane)上有一些点,显然两个hyperplane上都会有点存在,否则我们就可以进一步扩大gap,也就是增大
的值了。
这些点呢,就叫做supportvector,嗯,先说这么多了。
SupportVector
bypluskid,on2010-09-10,in
47comments
本文是“支持向量机系列”的第二篇,参见本系列的其他文章。
上一次介绍支持向量机,结果说到MaximumMarginClassifier,到最后都没有说“支持向量”到底是什么东西。
不妨回忆一下上次最后一张图:
可以看到两个支撑着中间的gap的超平面,它们到中间的separatinghyperplane的距离相等(想想看:
为什么一定是相等的?
),即我们所能得到的最大的geometricalmargin
。
而“支撑”这两个超平面的必定会有一些点,试想,如果某超平面没有碰到任意一个点的话,那么我就可以进一步地扩充中间的gap,于是这个就不是最大的margin了。
由于在
维向量空间里一个点实际上是和以原点为起点,该点为终点的一个向量是等价的,所以这些“支撑”的点便叫做支持向量。
很显然,由于这些supportingvector刚好在边界上,所以它们是满足
y(wTx+b)=1
(还记得我们把functionalmargin定为1了吗?
),而对于所有不是支持向量的点,也就是在“阵地后方”的点,则显然有
y(wTx+b)>
1
事实上,当最优的超平面确定下来之后,这些后方的点就完全成了路人甲了,它们可以在自己的边界后方随便飘来飘去都不会对超平面产生任何影响。
这样的特性在实际中有一个最直接的好处就在于存储和计算上的优越性,例如,如果使用100万个点求出一个最优的超平面,其中是supportingvector的有100个,那么我只需要记住这100个点的信息即可,对于后续分类也只需要利用这100个点而不是全部100万个点来做计算。
(当然,通常除了K-NearestNeighbor之类的
Memory-basedLearning
算法,通常算法也都不会直接把所有的点记忆下来,并全部用来做后续inference中的计算。
不过,如果算法使用了Kernel方法进行非线性化推广的话,就会遇到这个问题了。
Kernel方法在下一次会介绍。
)
当然,除了从几何直观上之外,支持向量的概念也会从其优化过程的推导中得到。
其实上一次还偷偷卖了另一个关子就是虽然给出了目标函数,却没有讲怎么来求解。
现在就让我们来处理这个问题。
回忆一下之前得到的目标函数:
max1∥w∥s.t.,yi(wTxi+b)≥1,i=1,…,n
这个问题等价于(为了方便求解,我在这里加上了平方,还有一个系数,显然这两个问题是等价的,因为我们关心的并不是最优情况下目标函数的具体数值):
min12∥w∥2s.t.,yi(wTxi+b)≥1,i=1,…,n
到这个形式以后,就可以很明显地看出来,它是一个凸优化问题,或者更具体地说,它是一个二次优化问题——目标函数是二次的,约束条件是线性的。
这个问题可以用任何现成的
QP(QuadraticProgramming)
的优化包进行求解。
所以,我们的问题到此为止就算全部解决了,于是我睡午觉去了~
啊?
呃,有人说我偷懒不负责任了?
好吧,嗯,其实呢,虽然这个问题确实是一个标准的QP问题,但是它也有它的特殊结构,通过
LagrangeDuality
变换到对偶变量(dualvariable)的优化问题之后,可以找到一种更加有效的方法来进行求解——这也是SVM盛行的一大原因,通常情况下这种方法比直接使用通用的QP优化包进行优化要高效得多。
此外,在推导过程中,许多有趣的特征也会被揭露出来,包括刚才提到的supportingvector的问题。
关于L