核函数

  在上文中我们已经了解到使用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核函数与软间隔的更多相关文章

  1. SVM中的软间隔最大化与硬间隔最大化

    参考文献:https://blog.csdn.net/Dominic_S/article/details/83002153 1.硬间隔最大化 对于以上的KKT条件可以看出,对于任意的训练样本总有ai= ...

  2. SVM支持向量机——核函数、软间隔

    支持向量机的目的是寻找一个能讲两类样本正确分类的超平面,很多时候这些样本并不是线性分布的. 由此,可以将原始特征空间映射到更高维的特征空间,使其线性可分.而且,如果原始空间是有限维,即属性数量有限, ...

  3. 支持向量机 (二): 软间隔 svm 与 核函数

    软间隔最大化(线性不可分类svm) 上一篇求解出来的间隔被称为 "硬间隔(hard margin)",其可以将所有样本点划分正确且都在间隔边界之外,即所有样本点都满足 \(y_{i ...

  4. 支持向量机(SVM)必备概念(凸集和凸函数,凸优化问题,软间隔,核函数,拉格朗日乘子法,对偶问题,slater条件、KKT条件)

    SVM目前被认为是最好的现成的分类器,SVM整个原理的推导过程也很是复杂啊,其中涉及到很多概念,如:凸集和凸函数,凸优化问题,软间隔,核函数,拉格朗日乘子法,对偶问题,slater条件.KKT条件还有 ...

  5. 支持向量机(SVM)的推导(线性SVM、软间隔SVM、Kernel Trick)

    线性可分支持向量机 给定线性可分的训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习到的分离超平面为 \[w^{\ast }x+b^{\ast }=0\] 以及相应的决策函数 \[f\le ...

  6. 5. 支持向量机(SVM)软间隔

    1. 感知机原理(Perceptron) 2. 感知机(Perceptron)基本形式和对偶形式实现 3. 支持向量机(SVM)拉格朗日对偶性(KKT) 4. 支持向量机(SVM)原理 5. 支持向量 ...

  7. 线性可分支持向量机与软间隔最大化--SVM(2)

    线性可分支持向量机与软间隔最大化--SVM 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 我们说可以通过间隔最 ...

  8. 机器学习,详解SVM软间隔与对偶问题

    今天是机器学习专题的第34篇文章,我们继续来聊聊SVM模型. 我们在上一篇文章当中推导了SVM模型在硬间隔的原理以及公式,最后我们消去了所有的变量,只剩下了\(\alpha\).在硬间隔模型当中,样本 ...

  9. 软间隔分类——SVM

    引入:1. 数据线性不可分:2. 映射到高维依然不是线性可分3. 出现噪声.如图: 对原始问题变形得到#2: 进行拉格朗日转换: 其中α和r是拉格朗日因子,均有不小于0的约束.按照之前的对偶问题的推导 ...

随机推荐

  1. PowerDesigner概念模型的Notation设置

    原文:PowerDesigner概念模型的Notation设置 在进行数据库设计模型时,分为概念模型设计和物理模型设计两种,概念模型主要是反映真是 世界中的业务关系,也就是我们常用的实体关系图.物理模 ...

  2. Java泛型中的extends和super关键字

    理解List<? extends T> list, T key, Comparator<? super T> c 这些一般用在方法形参类型上,用于接受泛型对象. 1.List& ...

  3. fil_space_create

    /*******************************************************************//** Creates a space memory obje ...

  4. GET,POST,PUT,DELETE的区别

    Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP ...

  5. Servlet和JAVA BEAN 分析探讨

    在JSP中调用JAVA类和使用JavaBean有什么区别? 可以像使用一般的类一样使用JavaBean,Bean只是一种特殊的类.特殊在可以通过<jsp:useBean   />调用Jav ...

  6. snv的绑定,检出,同步

    svn安装  http://www.android100.org/html/201511/15/196792.html svn绑定Studio 显示svn图标 效果图

  7. Java [Leetcode 319]Bulb Switcher

    题目描述: There are n bulbs that are initially off. You first turn on all the bulbs. Then, you turn off ...

  8. 使用ffmpeg向crtmpserver发布rtsp流

    ffmpeg的调用命令如下: ffmpeg -re -i xxx.mp4  -vcodec copy -acodec copy -f rtsp rtsp://127.0.0.1/live/mystre ...

  9. RAID0_RAID1_RAID10_RAID5各需几块盘才可组建

    RAID 0 RAID 0即Data Stripping(数据分条技术).整个逻辑盘的数据是被分条(stripped)分布在多个物理磁盘上,可以并行读/写,提供最快的速度,但没有冗余能力.要求至少两个 ...

  10. 【转】Android Studio简单设置

    原文网址:http://ask.android-studio.org/?/article/14 Android Studio 简单设置 界面设置 默认的 Android Studio 为灰色界面,可以 ...