今天我们讲解一下SVM的核函数,那么什么是核函数呢?我也不知道啊,但是我们可以从普通的回归任务出发。假设我们有这样一个式子:

\begin{equation}
\begin{split}
h_\theta (x_1, x_2) = \theta_0 + \theta_1 x_1 + \theta_2 x_2 + \theta_3 x{_1^2} + \theta_4 x_2^2
\end{split}
\end{equation}

我们令 \( x_3 = x_1^2 \), \(x_4 = x_2^2\),那么上面的式子变成了:

\begin{equation}
\begin{split}
h_\theta (x_1, x_2) = \theta_0 + \theta_1 x_1 + \theta_2 x_2 + \theta_3 x_3 + \theta_4 x_4
\end{split}
\end{equation}

从上面可以看出,原来的2元n次多项式回归变成了4元1次多项式回归,通过这个改进,我们是不是把上述的非线性回归重新变回了线性回归,即把特征从2维空间映射到了4维空间。这就给了我们启发,如果想把非线性特征转变为线性特征,只要把数据特征映射到高维特征空间上去。

在SVM中,我们也可以利用这样的思想。对于SVM不可分的低维数据,只要将其映射到高维,就可以利用前两节讲解的线性SVM的方法进行求解。

核函数

上面我们讲解了回归中将非线性映射到线性的思想,那么在SVM中,我们该如何运用这种思想呢?

在SVM中,我们引入了一种叫做核函数的东西。回顾上一小节我们的目标函数:

\begin{equation}
max \ \sum_{i=1}^{m}\alpha_i - \frac{1}{2} \sum \sum \alpha_i \alpha_j y_i y_j x_i^T x_j
\end{equation}

\begin{equation}
\begin{split}
s.t. &\sum_{i=1}^m \alpha_i y_i = 0 \\
&\alpha_i \geq 0 , \ i = 1,2,…,m
\end{split}
\end{equation}

注意到上式低维特征是以\(x_i^T x_j\) 内积的形式出现,如果我们定义一个从低维映射到高维的函数 \( \phi\),将所有的特征映射到更高的维度,让数据变得线性可分,那么我们就可以用前两节所说的方法进行函数目标的优化。那么,现在我们的函数变为:

\begin{equation}
max \ \sum_{i=1}^{m}\alpha_i - \frac{1}{2} \sum \sum \alpha_i \alpha_j y_i y_j \phi (x_i^T) \phi (x_j)
\end{equation}

\begin{equation}
\begin{split}
s.t. &\sum_{i=1}^m \alpha_i y_i = 0 \\
&\alpha_i \geq 0 , \ i = 1,2,…,m
\end{split}
\end{equation}

这样看来我们完美的解决了线性不可分的问题,但是事实真的是这样的吗?一个2维特征的数据我们可以映射到4维来进行特征的内积。如果我们有3维特征的数据,我们可以映射到16维。那么1000维的特征,10000维的特征呢,这样做是不是造成了 维度的爆炸增长。这时候, 核函数就被提出了。

假设\(\phi\)是从低维的输入空间\(\chi \)到高维的 再生希尔伯特空间\(\mathcal{H}\)的映射。那么如果存在函数 \(k(x_i,x_j)\),对于任意的\(x_i, x_j \in \chi\),都有:

\begin{equation}
k(x_i,x_j) = \phi(x_i).\phi(x_j)
\end{equation}

我们称\(k(x,z)\)为核函数。核函数的价值在于虽然是将特征从低维到高维的转换,但它是在低维上进行计算,而将实际的分类效果表现在高维上,这样避免了在高维上的直接计算,降低了计算复杂度。

那么什么样的函数可以作为核函数呢?周志华的西瓜书上给出了详细的定义。总的来说,核函数是一个 半正定核函数。一个函数想要成为半正定核函数,那么必须满足,它所对应的 Gram核矩阵是半正定的。也就是说,对于任意的\(x_i \in \chi , i=1,2,3...m\),\(k(x_i,x_j)\)对应的核矩阵\(K = \bigg[ K(x_i, x_j )\bigg]\)是半正定矩阵。那么什么是半正定矩阵呢?设\(A\)为实对称矩阵,对任意的非零向量 \(x\),有\(x^TAx \geq 0\),那么我们称\(A\)是 半正定矩阵

通过前面的讨论我们可以知道,我们希望样本在特征空间内线性可分,因此特征空间的好坏对支持向量机的性能至关重要,但是我们并不知道特征空间的形式时,我们并不知道什么样的核函数适合的,而核函数隐式地定义了这个特征空间。还好大佬们帮我们找到了一些核函数,常用的核函数也仅仅是以下几个。

线性核函数(Linear Kernel)

\begin{equation}
k(x_i,x_j) = x_i^T x_j
\end{equation}

也就是说,线性可分SVM可以和线性不可分SVM可以归为一类,只是核函数不同而已。

多项式核函数(Polynomial Kernel)是线性不可分SVM常用核函数之一

\begin{equation}
k(x_i,x_j) = (x_i^T x_j)^d
\end{equation}

\(d=1\)时,多项式核退化为线性核。

高斯核函数(Gaussian Kernel),有时候也称为径向基函数(Radial Basis Function)即RBF核,它是非线性SVM最常使用的核函数。

\begin{equation}
k(x_i,x_j) = exp(- \frac{||x_i^T x_j||}{2\sigma^2}), \ \sigma > 0 是高斯核的带宽
\end{equation}

当然核函数不止上面的,还有 拉普拉斯核,Sigmoid核,此外还可以通过和 函数组合如线性组合,直积得到不同的核函数。

总结

核函数解决了SVM的线性不可分的情况,并且将线性SVM和非线性SVM进行了统一,降低了高维空间计算的复杂度,因此核函数是非常重要的一个概念,在其他的地方也有着重要的应用,如核PCA降维,核聚类,核感知机等。特征空间上去。

SVM(三) 核函数相关推荐

  1. python机器学习案例系列教程——支持向量机SVM、核函数

    全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 线性函数.线性回归.线性分类 参考:http://blog.csdn.net/luanpeng825485697/article/de ...

  2. SVM(核函数、高斯核函数RBF)

    转载自博客园:https://www.cnblogs.com/volcao/p/9465214.html SVM(核函数.高斯核函数RBF) 一.核函数(Kernel Function) 1)格式 K ...

  3. SVM 的核函数选择和调参

    版权声明:本文为博主原创文章,未经博主允许不得转载.    https://blog.csdn.net/aliceyangxi1987/article/details/80617649 本文结构:  ...

  4. matlab svm核函数选择,SVM分类核函数及参数选择比较.pdf

    Compu~r Engineering口 4 胁日ff0 计算机工程与应用 SVM分类核函数及参数选择比较 奉国和 FENG Guohe 华南师范大学 经济管理学院 信息管理系,广州 5 10006 ...

  5. 机器学习算法 08 —— 支持向量机SVM算法(核函数、手写数字识别案例)

    文章目录 系列文章 支持向量机SVM算法 1 SVM算法简介 1.1 引入 1.2 算法定义 2 SVM算法原理 2.1 线性可分支持向量机 2.2 SVM计算过程与算法步骤(有点难,我也没理解透,建 ...

  6. 机器学习入门学习笔记:(4.2)SVM的核函数和软间隔

    前言 之前讲了有关基本的SVM的数学模型(机器学习入门学习笔记:(4.1)SVM算法).这次主要介绍介绍svm的核函数.软间隔等概念,并进行详细的数学推导.这里仅将自己的笔记记录下来,以便以后复习查看 ...

  7. ML之SVM(三种):基于三种SVM(linearSVR、polySVR、RBFSVR)对Boston(波士顿房价)数据集(506,13+1)进行价格回归预测并对比各自性能

    ML之SVM(三种):基于三种SVM(linearSVR.polySVR.RBFSVR)对Boston(波士顿房价)数据集(506,13+1)进行价格回归预测并对比各自性能 目录 输出结果 设计思路 ...

  8. svm常用核函数及选择核函数的方法

    SVM核函数的选择对于其性能的表现有至关重要的作用,尤其是针对那些线性不可分的数据,因此核函数的选择在SVM算法中就显得至关重要.对于核技巧我们知道,其目的是希望通过将输入空间内线性不可分的数据映射到 ...

  9. 百题突击12:1,SVM算法的优缺点 2,SVM的超参数C如何调节 3,SVM的核函数如何选择 4,简述SVM硬间隔推导过程 5,简述SVM软间隔推导过程

    1,SVM算法的优缺点 优点 可以解决高维问题,即大型特征空间: 解决小样本下机器学习问题: 能够处理非线性特征的相互作用: 无局部极小值问题:(相对于神经网络等算法) 无需依赖整个数据: 泛化能力比 ...

  10. 系统学习机器学习之SVM(三)--Liblinear,LibSVM使用整理,总结

    1.Libsvm与Liblinear区别,简单源码剖析. http://blog.csdn.net/zhzhl202/article/details/7438160 http://blog.csdn. ...

最新文章

  1. iptables使用方法
  2. 为什么我恨Scrum?
  3. Flink – window operator
  4. 原生ajax请求及readyState的几种状态
  5. 如何在ASP.NET Core中使用JSON Patch
  6. .NET Core WebApi中实现多态数据绑定
  7. uilabel 自适应
  8. WordPress文章阅读量统计和显示(非插件, 刷新页面不累加)
  9. “=” “:=” 区别
  10. 查看文件_如何在Mac上显示和查看隐藏的文件/文件夹
  11. C# winform webbrowser如何指定内核为IE11?
  12. poj 2503 Babelfish
  13. python函数知识七 闭包、装饰器一(入门)、装饰器二(进阶)
  14. Mac 上Dock中添加“最近打开过的项目”(Recent Applications)
  15. 二分搜索/查找(最大化or最小化问题)
  16. Windows OCR推荐
  17. 使用华为nexus6p进行拍并照裁剪图片和从相册裁剪图片
  18. 基于面部视频的心率监测系统 day 10
  19. 写博客有什么意义以及为什么?
  20. PID 控制器代码实现

热门文章

  1. spss和mysql哪个好学_MYSQL 入门全套
  2. 富士通FRAM技术和工作原理
  3. Linux ftrace 1.5、syscall event
  4. CIDR掩码聚合的规则
  5. 【Tool】保留labelImg的上一张标注信息
  6. web前端入门到实战:网页开发中字体,字号与尺寸对应表
  7. 致远OA表单自定义函数(日期时间计算)
  8. 动画效果程序员的最高境界就是能够参加全球DEMO大赛
  9. MySQL57图形化建表_Navicat 创建数据库和表之图形化界面方法
  10. VisionPro工具 中英文功能对照表