机器学习(十六) ——SVM理论基础

机器学习(十六)——SVM理论基础

(原创内容,转载请注明来源,谢谢)

一、概述

支持向量机(supportvector machine,SVM),是一种分类算法,也是属于监督学习的一种。其原理和logistics回归很像,也是通过拟合出一个边界函数,来区分各个分类的结果。

二、代价函数与假设函数

由于svm和logistic很相似,故与logistic进行比较。logistic的代价函数如下:

与logistic不同之处在于,SVM是用两个线段表示logistic中的h。在logistic中,h(x)=1/(1+e-z);在svm中,直接另h接近于0的地方等于0,而剩余的地方用一条线进行表示,如下图所示:

另外,svm的代价函数也省略了1/m,并且将原先logistic的正则化项λ提到前面,改成了C,可以认为C≈1/λ。

上图中的cost1和cost0,分别表示的是y=1和y=0的函数,因此,svm的假设函数如下所示:

三、大间距分类器

1、概念

svm是一种大间距分类器(largemargin intuition),即svm的算法得到的边界函数,会尽量的距离分类的不同结果都很远。

如下图所示,黑色那条会是svm拟合出来的边界函数,而不会是绿色或者粉色的线。其最大边界,指的就是其到两个分类结果中,最接近边界的点的垂直距离最大。

当上面代价函数中的C非常大时,svm的最大间距特性就会更明显。但是这样也会存在过拟合的问题,如下图所示:

当分类存在一些误差的数据,则C太大时,算法会太过于纠结绝对意义上的最大距离,导致划分结果变成上图的粉色的线。C不太大时会是上图的黑色的线。

2、原理

svm能够自动的划分出最大边界,主要依据的是向量的点乘的原理。当C很大时,为了让代价函数尽量小,带C的那一项则需要为0,因此现考虑正则化项。正则化小可以换算成为欧式距离,即平方和带根号。

而要满足y=1,则需要θTx≥1,又θTx可以换算成向量的相乘模式,即如下图公式:

因此,当预测点在y=1的时候,其要求θTx≥1,也即要求P||θ||≥1,而这个公式中,P向量是每个点到边界函数的投影,因此如果边界函数不合理的情况下,点到边界函数的投影值会很小,要实现乘积≥1,则需要θ非常大,也就会使得代价函数的结果非常大。

则在优化代价函数的过程中,慢慢的就会调整出一个合适的θ。如下图所示,下图左边即为不符合的边界函数,右边是符合的边界函数:

四、核函数

1、高斯核函数

svm的分类,除了可以用上面的线性的分类器(也成为线性核函数),还可以用到其他的核函数(kernel)。所谓核函数,也就是帮助svm实现分类的边界函数。

最常用的非线性的核函数即高斯核函数(Gaussian kernel)。其主要公式即为高斯分布的公式。可知当x很接近l时,结果是1;x远大于(或远小于)l时,结果是0。

高斯核函数,可以写为f=similarity(x,l),另外所有的核函数都可以写为k(x,l)。

如下图所示:

利用高斯核函数,可以非线性的划分边界函数。例如样本的分类是几个同心圆的范围,则此时线性划分无法解决问题,就需要用到高斯核函数来划分。

2、性质

δ值会影响到高斯核函数的划分结果。下图是不同的δ值对应的三维图像,以及其等价线图。可以看出,δ值越大,则核函数越平缓,即0和1的区间分布的中越偏向于1;而δ值越小,则0所占的比例越大,其图像越尖。

原因在于公式,从公式上可以看出,δ值越小,越趋向于e的负无穷大次方,即为0;反之则越趋向于e的0次方,即为1。

五、高斯核函数实际判定过程

假设样本l(1),则其对应的x1和x2已经固定,则带入到原来拟合好的边界函数中,可以得到对应的点f的值。并用之前拟合出来的θ值,计算最终的结果,结果如果≥0则表示y=1,反之y=0。如下图所示:

具体过程,即一开始给定了若干样本,带有特征值矩阵x、分类结果y,令l=x,则可以求解出对应的f矩阵,进而求解出上面的θf是否≥0。

另外,在实际的代码中,通常计算正则化项(即θ平方和项),虽然平方和等价于θTθ,但是不会直接这么计算,因为当特征值特别多时,这样计算的量太大。有一个叫做SMO的算法,可以快速进行计算。

六、小结

1、拟合问题

这里主要有C(即1/λ)和δ两个参数。

C的性质类似1/λ的性质,可以参照logistic,当C太大时容易出现高方差过拟合,C太小时容易出现高偏差欠拟合。

δ的性质上面提到过,太大容易高偏差欠拟合,且变化缓慢;太小容易出现高方差过拟合,且变化太快。

2、归一化

如果用到高斯核函数,当特征值之间的数量值差距太大,需要将特征值归一化。

3、默塞尔定理

默塞尔定理(Mercer’stheorem),是对核函数的一个规定。即要求核函数能满足优化方法,且要能快速得到θ。

选择svm的核函数时,要求选择的核函数都要满足默塞尔定理。

4、其他核函数介绍

svm最常用的核函数还是线性核函数和高斯核函数。除此之外还有其他不常用的核函数:

1)多项式核函数(polynomialkernel)

k(x,l)=(xTl+C)m,C是常数,m是次数。有个性质是当x和l很接近时,k的值会非常大。用这个多项式,通常要求样本的特征值都是大于0的。

2)字符串核函数(stringkernel)

当涉及到文本处理的时候,通常用到这个核函数。

3)其他

还有诸如卡方核函数(chi-squarekernel)、直方相交核函数(histogram intersection kernel)等复杂的核函数。

5、选择logistic或者svm

1)特征很多、样本很少

此时需要用logistic或者svm的线性核函数,避免过拟合。

2)特征少、样本正常

此时使用svm的高斯核函数非常合适。

3)特征少、样本非常多

此时也不适用高斯核函数,因为其计算量太大,速度太慢。通常是先增加或者创造部分特征,再使用logistic或者svm的线性核函数。

6、个人感悟

svm的方程比较复杂,吴恩达的视频中并没有完整的讲述推导过程,个人感觉,svm是一个非常类似logistic的分类方式,区别在于可以最大程度上区分两个分类结果,并且可以通过不同的核函数控制分类方式,可以非线性分类。

——written by linhxx 2018.01.17

原文发布于微信公众号 - 决胜机器学习(phpthinker)

原文发表时间:2018-01-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习算法全栈工程师

基础|认识机器学习中的逻辑回归、决策树、神经网络算法

作者:石文华 编辑:田 旭 逻辑回归 1 逻辑回归。它始于输出结果为有实际意义的连续值的线性回归,但是线性回归对于分类的问题没有办法准确而又具备鲁棒性地分割,...

3628
来自专栏机器学习算法原理与实践

异常点检测算法小结

    异常点检测,有时也叫离群点检测,英文一般叫做Novelty Detection或者Outlier Detection,是比较常见的一类非监督学习算法,这...

1103
来自专栏marsggbo

DeepLearning.ai学习笔记(五)序列模型 -- week1 循环序列模型

一、为什么选择序列模型 序列模型可以用于很多领域,如语音识别,撰写文章等等。总之很多优点。。。 二、数学符号 为了后面方便说明,先将会用到的数学符号进行介绍。 ...

41210
来自专栏自学笔记

Some methods of deep learning and dimensionality reduction

上一篇主要是讲了全连接神经网络,这里主要讲的就是深度学习网络的一些设计以及一些权值的设置。神经网络可以根据模型的层数,模型的复杂度和神经元的多少大致可以分成两类...

792
来自专栏人工智能LeadAI

零基础入门深度学习 |最终篇:递归神经网络

无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learni...

5195
来自专栏深度学习入门与实践

一文弄懂神经网络中的反向传播法——BackPropagation

本博客所有内容以学习、研究和分享为主,如需转载,请联系本人,标明作者和出处,并且是非商业用途,谢谢! 最近在看深度学习的东西,一开始看的吴恩达的...

30110
来自专栏机器学习算法全栈工程师

基础|认识机器学习中的逻辑回归、决策树、神经网络算法

逻辑回归。它始于输出结果为有实际意义的连续值的线性回归,但是线性回归对于分类的问题没有办法准确而又具备鲁棒性地分割,因此我们设计出了逻辑回归这样一个算法,它的输...

1062
来自专栏决胜机器学习

循环神经网络(一) ——循环神经网络模型与反向传播算法

循环神经网络(一) ——循环神经网络模型与反向传播算法 (原创内容,转载请注明来源,谢谢) 一、概述 这一章开始讲循环神经网络(RNN,Recurrent Ne...

3595
来自专栏人工智能

机器学习笔记

基本术语 数据集(data set): 一组数据的集合 样本/示例(instance/sample):数据集中的一个事件或对象 属性/特征(attribute/...

1819
来自专栏null的专栏

UFLDL笔记——自我学习

注:最近打算将UFLDL教程重新看一遍,其实里面有很多关于神经网络以及深度学习的知识点很有用,但是只是学习深度学习的话有一些内容就有点多余,所以想整理一个笔记,...

3525

扫码关注云+社区