支持向量机SVM(3)核函数、非线性支持向量机

前面已经分别介绍了基于硬间隔最大化的线性可分支持向量机、基于软间隔最大化的线性支持向量机,这次来总结下使用核函数来解决非线性可分问题的非线性支持向量机。

1 非线性可分问题怎么解决

对于非线性可分问题,我们本着简化问题的思想,自然是希望将其转化为熟悉的线性可分问题进行处理,那么怎么做呢?对于一个在样本的原始空间中不是线性可分的数据,如下左图中的红色样本点和蓝色样本点,如果想要进行分类的话,可以将数据映射到更高维的特征空间中,如果映射的合适的话,就能找到一个超平面将数据分类,如下右图所示:

这种做法是特例还是可以普遍使用的呢?《机器学习》书上说:

如果原始空间是有限维,且属性数有限,那么一定存在一个高维特征空间使样本可分

不过书上并没有解释原因,我们先从低维直观的理解一下,如下图所示:在一维线性不可分的数据,可以映射成在二维线性可分的,在二维线性不可分的数据,可以映射成在三维线性可分的:

在更高的维度也适用吗?实际上,这个论点在理论上是有证明的,即Cover定理,Cover定理可以理解为:当空间的维数D越大时,在该空间的N个数据点间的线性可分的概率就越大。如果固定数据的数量N,维度D小于数据数量N时,特征空间维度越高,越有可能使数据线性可分;在维度超过数据数量时,数据一定线性可分(试想如果我们把每个数据点都映射到不同的坐标轴上,那么可不就是线性可分的了么)。

因此,我们对非线性可分的数据,可以将数据映射至高维空间,然后再用我们熟悉的线性分类器来分类,至此,剩下的问题就是怎么映射呢?这就需要核函数登场了。

2 核函数登场

2.1 什么是核函数

核函数是一个广泛使用的技术,事实上它比支持向量机出现的更早,它可以将一个空间的向量映射到另一个空间,刚好符合我们解决非线性可分问题的需求,核函数定义

假设ϕ是一个从低维的输入空间χ(欧式空间的子集或者离散集合)到高维的希尔伯特空间的H映射:\phi(x):χ\rightarrow H,如果存在函数K(x,z),对于任意x,z∈χ,都满足:

K(x, z) = \phi(x) \cdot \phi(z)

则称K(x,z)为核函数,ϕ(x)为映射函数。

核函数的一大优势就是,它通过定义函数K(x,z)来隐式的定义映射ϕ(x),一般来说,直接计算函数K(x,z)是比较容易的,因为它是在原始低维度进行的,而通过ϕ(x) \cdot ϕ(z)计算是很困难的,因为ϕ(x)是高维的,甚至是无穷维的。

2.2 怎么得到核函数

既然核函数这么棒,那怎么获得一个核函数呢?或者说怎么判断一个函数是不是核函数?通常我们所说的核函数都是正定核函数,正定核函数的充要条件:

χ\subset R^nK(x,z)是定义在χ\times χ上的对称函数(K(x,z)=K(z,x)),如果对任意的x_i∈χ,i=1,2,3...m, K(x_i,x_j)对应的Gram矩阵(格拉姆矩阵)K=[K(x_i,x_j)]_{m\times m}是半正定矩阵,则K(x,z)是正定核函数。

有了这个定义,理论上我们可以构造出核函数,不过对非常困难,因为要保证任意输入的Gram矩阵都要是半正定矩阵,所以在实际使用中,我们一般使用前辈们总结好的常用核函数。

证明:

根据定义,核函数的映射涉及从欧氏空间到希尔伯特空间的转化,其过程是怎样的呢?如果我们在Gram矩阵是半正定的条件下,把这个映射过程推出来不就相当于证明了上述定理的充分性了吗~

前提:K是对称函数、[K(x_i,x_j)]是半正定矩阵

  1. 对于低维度的数据x,定义一个映射x\rightarrow \phi(x)=K(x,\cdot)

  2. K(x,z)是一个二维半正定矩阵,因为其是对称矩阵,特征向量相互正交,可以视为一组正交基,对K(x,z)进行特征分解,同样因为对称性,所以\psi_i (z)视为变量z时的特征向量,是\psi_i (x)的转置,可得:

K(x,z)=\psi \lambda\psi ^T= \sum_{i=1} \lambda_i \psi_i (x) \psi_i (z)

  1. 由基底\{ \sqrt{\lambda_i} \psi_i \}_{i=1}^{\infty}构建一个空间,因为[K(x_i,x_j)]是半正定矩阵,可以证明这个空间可以定义内积运算,是一个内积空间,将其完备化得到希尔伯特空间(各种空间的关系见文末附录),这个空间中的任何一个函数(向量)都可以表示为这组基的线性组合,因此有:

K(x,\cdot) = \sum_{i=1}^{\infty} \lambda_i \psi_i (x) \psi_i

除去对应的基底,将其表示为希尔伯特空间的向量(一个函数可以看成一个无穷维的向量,空间中的任何一个函数都可以表示为一组正交基的线性组合):

K(x,\cdot) = (\sqrt{\lambda_1} \psi_1 (x), \sqrt{\lambda_2} \psi_2 (x), \cdots )_\mathcal{H}^T

K(z,\cdot) = (\sqrt{\lambda_1} \psi_1 (z), \sqrt{\lambda_2} \psi_2 (z), \cdots )_\mathcal{H}^T

计算二者内积:

K(x,\cdot)\cdot K(z,\cdot) = \sum_{i=0} \lambda_i \psi_i (x) \psi_i(z) = K(x,z)

也就是核函数定义中的:

K(x, z) = \phi(x) \cdot \phi(z)

至此就证明了上述定理的充分性,至于必要性,求出Gram矩阵就可以证明,比较简单就不说了。

K(x,\cdot)\cdot K(z,\cdot) = K(x,z)这个特性叫做再生性(reproducing property),所以这个空间叫做再生核希尔伯特空间(RKHS, reproducing kernel Hilbert space)

对定义的低维度到高纬度的映射\phi(x)来说,我们不需要知道这个映射是什么就可以计算得到高维的内积K(x, z) = \phi(x) \cdot \phi(z),这就是SVM中使用的核技巧

*上述核函数及证明中出现较多的各种数学空间,如果不熟悉的话可以看文末的附录,对各种空间的关系有一个大致的展示。

2.3 常用核函数

  • 线性核函数(Linear Kernel)

K(x,z)=x\cdot z

使用线性核函数跟不使用核函数是一样的,还是无法处理非线性可分问题的,不过从这个角度出发,我们可以把线性可分SVM看作非线性不可分SVM的使用线性核函数的特例

  • 多项式核函数(Polynomial Kernel)

K(x,z)=(x\cdot z+1)^p

  • 高斯核函数(Gaussian Kernel)

SVM中也称为径向基核函数(Radial Basis Function,RBF),是非线性支持向量机中最常用的核函数:

K(x,z)=exp(-\frac{||x-z||}{2\sigma^2})^p

3 基于核函数的非线性支持向量机

因为在映射后的高维空间中,支持向量机还是在解决线性可分的数据,所以原理、目标函数什么的都跟之前是一样的,只是最终的形式上有所不同,最终可得非线性支持向量机模型:

f(x)=sign(\sum_{i=1}^N \lambda_i^*y_iK(x,x_i)+b^*)

非线性支持向量机的算法过程:

  • 输入:样本T=(x_1,y_1),(x_2,y_2),...,(x_m,y_m)xn维特征向量,y\in[+1,-1]
  • 输出:\lambda^*,b^*,支持向量机模型f(x)=sign(\sum_{i=1}^m \lambda_i^*y_iK(x,x_i)+b^*)
  1. 确定核函数K(x,z)和惩罚系数C>0,确定目标函数:

\min_{\lambda}\;\frac{1}{2}\sum_{i=1,j=1}^{m}\lambda_iy_i\lambda_jy_jK(x_i,x_j)-\sum_{i=1}^{m}\lambda_i

s.t. \sum_i^m \lambda_iy_i=0,\;\;0\leq\lambda_i\leq C

  1. 使用SMO优化目标函数,得到对应的λ^*
  2. 根据λ^*找到样本中的k个支持向量,计算参数b

b^*=\frac{1}{k}\sum_i^k (y_i-\sum_{i=1}^m \lambda_i^*y_iK(x,x_i))

  1. 得到支持向量机模型f(x)=sign(\sum_{i=1}^m \lambda_i^*y_iK(x,x_i)+b^*)

4 总结

核函数的引入大大提升了支持向量机的应用范围,使得其在非线性可分问题上也有了很好的分类表现,而且核技巧使得隐式的高维映射成为可能,使用起来也非常便捷。

还记得我们在逻辑回归中针对非线性可分问题说过:

使用逻辑回归的话,也是有办法的,那就要对特征做处理,将特征进行非线性变换比如组合乘积、平方等,做出很多新的特征出来,简单来说就是需要我们想办法显式的将数据映射到合适的高维空间中去。

所以相对于逻辑回归等线性分类器来说,SVM具有很大的优势,这也是SVM在过去几十年里流行的主要原因之一,其优美的数学推导也让很多学者非常喜欢,不过随着近几年集成学习、神经网络的兴起和数据量的爆炸性增长,SVM也慢慢的不再那么流行了,不过其在特定问题上仍然是一个很有魅力的算法,值得大家掌握。

现在三种SVM都写完了,来总结一下SVM的优缺点吧:

1)优点

  • 数学理论推导严格优美,可解释性强
  • 没有对原始数据的分布做任何的假设,对数据分布没什么要求,适用性广
  • 只使用对分类重要的关键样本(支持向量)得到决策边界,对样本不平衡不太敏感
  • 采用核技巧之后,可以处理非线性分类/回归任务
  • 使用间隔最大化,增强了模型的鲁棒性,泛化能力好

2)缺点

  • 训练时间长。使用 SMO 算法,每次都需要挑选一对参数优化,因此时间复杂度O(N^2),其中 N为训练样本的数量;
  • 采用核技巧时,存储核矩阵的空间复杂度较大,为O(N^2)
  • 支持向量机目前只适合小批量样本的任务(一般小于10万条数据比较好),无法适应百万甚至上亿样本的任务;
  • 核函数不好选,线性SVM效果不好的话就上高斯核函数,映射到无限维空间;
  • 不好调参,惩罚C选不好的话,容易无法收敛。


附录

数学空间:数学中的空间的组成包括两个部分:研究的对象和内在的规则,或者叫做元素和结构。

多种数学空间的关系
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,258评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,335评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,225评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,126评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,140评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,098评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,018评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,857评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,298评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,518评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,400评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,993评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,638评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,661评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352