机器学习(十六) ——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 条评论
登录 后参与评论

相关文章

来自专栏人工智能

机器学习实战-线性回归提高篇之乐高玩具套件二手价预测

作者:崔家华 编辑:王抒伟 线性回归 零 前言: 本篇文章讲解线性回归的缩减方法,岭回归以及逐步线性回归,同时熟悉sklearn的岭回归使用方法,对乐高玩具套件...

2037
来自专栏PPV课数据科学社区

全连接网络到卷积神经网络逐步推导(组图无公式)

摘要: 在图像分析中,卷积神经网络(Convolutional Neural Networks, CNN)在时间和内存方面优于全连接网络(Full Connec...

642
来自专栏数据科学与人工智能

【知识】线性回归和梯度下降算法,值得学习

小编邀请您,先思考: 线性回归的假设是什么?线性回归用来解决什么问题? 梯度下降算法怎么理解?梯度下降算法怎么改进? ? 实例 首先举个例子,假设我们有一个二手...

1946
来自专栏iOSDevLog

人工智能-机器学习总结

2877
来自专栏红色石头的机器学习之路

台湾大学林轩田机器学习技法课程学习笔记11 -- Gradient Boosted Decision Tree

上节课我们主要介绍了Random Forest算法模型。Random Forest就是通过bagging的方式将许多不同的decision tree组合起来。除...

2020
来自专栏决胜机器学习

深层神经网络参数调优(五) ——超参数调试、batch归一化、softmax回归

深层神经网络参数调优(五) ——超参数调试、batch归一化、softmax回归 (原创内容,转载请注明来源,谢谢) 一、超参数调试 1、超参数 超参数是不直...

3938
来自专栏desperate633

深入浅出--梯度下降法及其实现

本文将从一个下山的场景开始,先提出梯度下降算法的基本思想,进而从数学上解释梯度下降算法的原理,最后实现一个简单的梯度下降算法的实例!

762
来自专栏Fish

Andrew Ng的机器学习课程概述(二)

第七章 过拟合(over-fitting) 这一章主要就是处理过拟合问题。 首先介绍如何选择参数: 选择尽可能少的特征 自动选择模型(这是啥?) 正则化 ...

1935
来自专栏机器学习算法与Python学习

线性分类(SoftMax) - 下篇

导读 线性分类器-中篇 线性分类器 CS231n课程笔记翻译:图像分类笔记(下) CS231n课程笔记翻译:图像分类笔记(上) SoftMax分类器 SVM是最...

2748
来自专栏编程

梯度下降法及其Python实现

梯度下降法及其Python实现 基本介绍 梯度下降法(gradient descent),又名最速下降法(steepest descent)是求解无约束最优化问...

28310

扫码关注云+社区