支持向量机

Posted 清风哲科

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了支持向量机相关的知识,希望对你有一定的参考价值。

支持向量机

(support vector machine,SVM)


  •  释义

support vector machine,这里的machine实际上是一个算法,作者认为它很强大,所以冠以“机器”的名字;vector,向量,在数学中指有序列的一组数,如二维平面中可以用(2,6)来表示x坐标为2,y坐标为6的点,三维立体中可以用(3,7,8)表示x坐标为3,y坐标为7,z坐标为8的点,而从原点向这个点画一条有向的直线端,这就是几何中的向量。支持向量机,是基于若干向量(称为样本),计算出来的一个二元分类公式,二元分类就是分成两类。所以,用vectors supported bi-classifier algorithm表达应该比较清晰了。后面还是依照作者用简称SVM表达。


  • 多维的思考方法

我们生活在三维的空间,我们的大脑容易思考和理解三维及其以下的事物,也容易用几何表达。但是,超出三维,如四维,五维,...,无数维,就很难直观理解,只能通过数学符号与公式表达。好在人脑有从直观到抽象的能力,所以我们的思路,可以先看此问题在二维是怎样的,再看三维是怎样的,二维到三维又有什么变化,然后推出与维数无关的公式,这样的公式在三维以上同样适用,在纯粹数学层面工作。物理几何空间是三维的,数学空间是无穷维的,从三维推广到无穷维,便是“人”独有的能力。据说数学家瞧不起物理学家,大概是因为数学家维度更高吧。:) 

*物理学家研究三维世界,加上时间,也只是四维,最新的弦论也只是22维。不要尝试去在大脑中图形化五维以上的世界,因为没人能够做到,这是人大脑的限制;但是可以体验到,只是需要极大的修养,得道者可验之。佛经中陈述法理之后,会说这只是“舟”,到了“彼岸”,就要扔掉“舟”,因为“舟”非真正的“般若”。大智者往往无言,是因为言之不尽。道德经开篇也提到“道可道,非常道”,“道是可以言说的,但言说的道总不是那恒常的道啊”。虽验之,却难以表述,只能“拈花微笑”了。

 

  • 升维区分

核心思想是:如果数据在当前空间不可线性分割,就做数据变换,升到更高的维度空间。

维度:在现实世界空间是三维的,每个维度对应一个属性与值 (key:value)。三维空间的位置表达,可以用类似如下方式表达:

{x:3; y:2; z:4}


扩展到数学世界,维度可以是无穷多个的。例如,描述一个人:

1维:{sex:male}

2维:{sex:male; age:25}

3维:{sex:male; age:25; high:1.75m}

4维:{sex:male; age:25; high:1.75m; blood type:B}

5维:{sex:male; age:25; high:1.75m; brood type:B; hair:black}

... ...

维度可以一直增加下去。

    当我们区分两个人时,如果当前维度的值都相同,而无法区分,就可以增加维度,直到有不同的值,达到区分的目的。这就是“升维区分”的思路。


  • 超平面

    先看二维空间,一条直线的表达为:

ax+by+c=0 (a,b,c是实数常数,x,y是变量),图形如:

再看三维空间,一个平面的表达为:

ax+by+cz+d=0 (a,b,c,d是实数常数,x,y,z是变量),图形如:

支持向量机(1)

不失一般性,把变量用 {x1,x2,...,xn} 表达,记为 x向量

把式子中惟一不与变量相乘的常数称为截距,即各自变量都为0时函数的值,用b表达,把与每个变量相乘的常数序列称为参数,或者权重,标记为 {w1,w2,...,w2} ,记为 向量 w。

上述二维空间和三维空间的式子可以表达为:


支持向量机(1)

类推之,我们知道 w1x1+w2x2+...+wnxn 是两个向量的内积:w.x

,也记为

支持向量机(1)

 ,故有:

支持向量机(1)

这个式子里面隐去了 w,的维数,二维是直线,三维是平面,四维及以上就是超平面,超平面无法图形表达,只能公式表达。

向量是该超平面的一个法向量,单位化法向量就是 w/||w||。(证明可参考高等数学)


  • 点(样本)到超平面(分界)的距离(二范数)

在分类中,每个样本是具有多维数值的“多维空间”中的点,正负样本,即二元分类的两个类别,称为正负类别,被算法中的超平面隔开。还是从二维平面,三维立体空间起步,推导出一个与维数无关的通用公式来。

  • 二维点到线的距离:

支持向量机(1)


由图知,{x1,y1}是线与经过{x0,y0}的法线(斜率为b/a,法线向量之一为{a,b})的交点,有:

支持向量机(1)


求解得到:

支持向量机(1)


  • 三维点到面的距离:

点(x0,y0,z0)到面ax+by+cz+d=0 的距离(具体参考高等数学)为:

支持向量机(1)

如果把这个面换一下符号表达:

支持向量机(1)


(T表示行列式转置,这里把一行转置为一列,表达向量相乘)

由此,我们得到通用的超平面的表达公式:


(w是参数向量,或者称为权重向量,x是样品特征向量,w和x同维度,可以是从一维到无穷维,一般不确定维数,用n维通称;在深度学习中几千维是常见的;b是偏移量,或者称为截距),而对某个样本点x(这里的x是具体的n维具体的向量值,不同于超平面中的n维x向量变量),同超平面之间的二范数(距离,模)是:

(待续)

























以上是关于支持向量机的主要内容,如果未能解决你的问题,请参考以下文章

支持向量机

支持向量机原理 线性支持向量机的软间隔最大化模型

支持向量机

什么是支持向量机?

支持向量机

支持向量机原理线性不可分支持向量机与核函数