SVM核函数与软间隔
核函数
在上文中我们已经了解到使用SVM处理线性可分的数据,而对于非线性数据需要引入核函数的概念
它通过将数据映射到高维空间来实现线性可分。在线性不可分的情况下,支持向量机通过某种事先选择的非线性映射(核函数)将输入变量映射到一个高维特征空间,在这个空间中构造最优分类超平面。我们使用SVM进行数据集分类工作的过程首先是同预先选定的一些非线性映射将输入空间映射到高维特征空间(下图很清晰的表达了通过映射到高维特征空间,而把平面上本身不好分的非线性数据分了开来)

只要给出φ,计算出φ(x)和φ(z),再求他们的内积我们能够很容易的计算出K(X,Z),但是这样做的计算复杂度非常高,达到O(n2),我们可以得出一个φ但不去直接的计算它。
例如:
其中x和z都是n维向量

通过公式可以发现求x,z内积的平方与映射后求内积的结果是一样的,而最终的复杂度降到了O(n)。
我们直观看这个核函数,假设φ(x)与φ(z)夹角较小,则核函数k(x,z)会比较大,相反如果φ(x)与φ(z)夹角较大,则核函数k(x,z)会比较小,比如φ(x)与φ(z)正交,则相应核函数为0,所以核函数一定程度上是φ(x)与φ(z)相似度的度量,。
下面来介绍一种径向基函数(Radial Basis Function 简称RBF),也称作高斯核函数(Gaussian kernel)如下:

如果x与z相近,则核函数趋近与1,反之x与z差值很大,则核函数趋近于0.这个核函数叫做高斯核函数,能把特征值映射到无穷维。
进一步讨论,如果给出一个核函数,我们怎么证明他是个有效的核函数呢?
假设我们已经给出了一个有效的核函数K,给定一个含有m个点的训练集{x1,x2,x3……xm},我们使用Kij来表示(Ki,Kj),这样组成一个核函数矩阵(kernel matrix), 显然可以得到矩阵K是一个对称矩阵:

而且我们发现对于任意向量z,

通过公式我们了解到如果K是一个有效的核函数则对应的核函数矩阵是对称半正定矩阵(K>=0)。这是一个必要条件。而通过mercer定理它也是一个充分条件。Mercer定理表明为了证明K是有效的核函数,那么我们不用去寻找
,而只需要在训练集上求出各个
,然后判断矩阵K是否是半正定即可。
软间隔
SVM算法是假定数据是线性可分的,把数据映射到高维通常能够增加线性可分的可能性,但我们不能保证这总是有效的,而由于噪声值的存在,我们也不能保证计算出来的超平面是我们想要得到的,举个例子如左图展示了一个最优间隔超平面,但是当加上噪声值后,超平面有了比较大幅度的倾斜,得到了一个间隔小很多的超平面。

为了解决线性不可分的数据,我们需要重构最优化模型如下:

我们允许函数间隔小于1,而对于函数间隔小于等于1-ξ的点我们在目标函数上加上一个惩罚函数,C称作惩罚因子,
称作损失函数,C代表着超平面对于噪声值的权重,保证大多数的点函数间隔大于1,C越大表明离群点对目标函数影响越大,也就是越不希望看到离群点。
同时要调整的还有拉格朗日公式

这里的
和
都是拉格朗日乘子,然后将其看作是变量w和b的函数,分别对其求偏导,得到w和b的表达式。然后代入公式中,求带入后公式的极大值。整个推导过程比较复杂,最后得出模型的对偶形式:

此时,我们发现没有了参数
,与之前模型唯一不同在于
又多了
的限制条件。根据KKT推导出下列结论,在求拉格朗日乘子是需要使用到(SMO算法)。

至此SVM纯原理部分介绍完毕,接下来会结合实际应用来理解SVM算法。
SVM核函数与软间隔的更多相关文章
- SVM中的软间隔最大化与硬间隔最大化
参考文献:https://blog.csdn.net/Dominic_S/article/details/83002153 1.硬间隔最大化 对于以上的KKT条件可以看出,对于任意的训练样本总有ai= ...
- SVM支持向量机——核函数、软间隔
支持向量机的目的是寻找一个能讲两类样本正确分类的超平面,很多时候这些样本并不是线性分布的. 由此,可以将原始特征空间映射到更高维的特征空间,使其线性可分.而且,如果原始空间是有限维,即属性数量有限, ...
- 支持向量机 (二): 软间隔 svm 与 核函数
软间隔最大化(线性不可分类svm) 上一篇求解出来的间隔被称为 "硬间隔(hard margin)",其可以将所有样本点划分正确且都在间隔边界之外,即所有样本点都满足 \(y_{i ...
- 支持向量机(SVM)必备概念(凸集和凸函数,凸优化问题,软间隔,核函数,拉格朗日乘子法,对偶问题,slater条件、KKT条件)
SVM目前被认为是最好的现成的分类器,SVM整个原理的推导过程也很是复杂啊,其中涉及到很多概念,如:凸集和凸函数,凸优化问题,软间隔,核函数,拉格朗日乘子法,对偶问题,slater条件.KKT条件还有 ...
- 支持向量机(SVM)的推导(线性SVM、软间隔SVM、Kernel Trick)
线性可分支持向量机 给定线性可分的训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习到的分离超平面为 \[w^{\ast }x+b^{\ast }=0\] 以及相应的决策函数 \[f\le ...
- 5. 支持向量机(SVM)软间隔
1. 感知机原理(Perceptron) 2. 感知机(Perceptron)基本形式和对偶形式实现 3. 支持向量机(SVM)拉格朗日对偶性(KKT) 4. 支持向量机(SVM)原理 5. 支持向量 ...
- 线性可分支持向量机与软间隔最大化--SVM(2)
线性可分支持向量机与软间隔最大化--SVM 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 我们说可以通过间隔最 ...
- 机器学习,详解SVM软间隔与对偶问题
今天是机器学习专题的第34篇文章,我们继续来聊聊SVM模型. 我们在上一篇文章当中推导了SVM模型在硬间隔的原理以及公式,最后我们消去了所有的变量,只剩下了\(\alpha\).在硬间隔模型当中,样本 ...
- 软间隔分类——SVM
引入:1. 数据线性不可分:2. 映射到高维依然不是线性可分3. 出现噪声.如图: 对原始问题变形得到#2: 进行拉格朗日转换: 其中α和r是拉格朗日因子,均有不小于0的约束.按照之前的对偶问题的推导 ...
随机推荐
- Android:打包apk
右击项目->导出export next,完成相关信息填写将得到.apk文件,即可部署到手机上. 第一次: 然后打开目录就可以看到生成的apk,可以发布到各大市场上.
- WP之Sql Server CE数据库
如何在WP8中进行数据存储,你首先想到应该是独立存储,但是独立存储似乎存储文件更方便,如果我们希望像处理对象的形式,该怎么办呢,答案就是Sql Server CE. Sql Server CE并不是新 ...
- Linux 查找软件安装路径
root@kali:~# whereis sqlmap sqlmap: /usr/bin/sqlmap /usr/share/sqlmap /usr/share/man/man1/sqlmap..gz ...
- Java中ArrayList和LinkedList区别
ArrayList和LinkedList的大致区别如下:1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构. 2.对于随机访问get和set,ArrayLis ...
- Android下 ionic view 无法登录
ionic view一个超棒工具,它是测试 ionic 框架搭建项目的app软件. 在它的官网有iphone 和 android 版本的下载地址.但是,这里只有在 google play 里面才有,而 ...
- 新浪实时股票数据接口http://hq.sinajs.cn/list=code
股票数据的获取目前有如下两种方法可以获取:1. http/javascript接口取数据2. web-service接口 1.http/javascript接口取数据1.1Sina股票数据接口以大秦铁 ...
- openVPN使用
http://www.williamlong.info/archives/3814.html http://openvpn.ustc.edu.cn/ http://www.williamlong.in ...
- 【转载】React初学者入门须知
http://www.oschina.net/news/75530/9-things-every-reactjs-beginner-should-know react.js入门学习 看了一遍,没什么特 ...
- Android 按键消息处理Android 按键消息处理
在android系统中,键盘按键事件是由SystemServer服务来管理的:然后在以消息的形式分发给应用程序处理.产生键盘按键事件则是有Linux kernel的相关驱动来实现. 键盘消息有别于其他 ...
- hdu 4882 ZCC Loves Codefires (贪心 推导)
题目链接 做题的时候凑的规律,其实可以 用式子推一下的. 题意:n对数,每对数有e,k, 按照题目的要求(可以看下面的Hint就明白了)求最小的值. 分析:假设现在总的是sum, 有两个e1 k1 e ...