非线性支持向量机

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9g13V18T-1590057139912)(https://upload-images.jianshu.io/upload_images/23124486-9bb71ec97ec56eca?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

对于线性分类问题,线性分类支持向量机是一种非常有效的方法。但是有的分类问题是非线性的,这时就可以使用非线性支持向量机对分类问题求解,其主要的特点是利用核技巧(kernel trick),下面通过一个通俗的小栗子介绍核技巧。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qodClQ6F-1590057139917)(https://upload-images.jianshu.io/upload_images/23124486-bf332ea8db79c0f5?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

核方法与核技巧

假设有一个二维平面上有4个点,两个红色点、两个绿色点,这4个点位于一条直线上,如下:

对于这个问题,我们是无法利用一条直线准确将红色点和绿色点分隔开,但是可以利用一条曲线实现分类,如下:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ckjqOMcP-1590057139923)(https://upload-images.jianshu.io/upload_images/23124486-ebc05397f530ab63?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 “K2.png”)]

这时可以改变一下我们固有的思想,如果将二维平面映射至三维立体空间中,并且将一类别的点在纵轴上提高或者下降,这样不就可以利用一个超平面将其分隔开了嘛!如下:

现在只需要考虑一个问题,就是将同一类别在纵轴上同时提高或下降的操作应该如何实现。先回到开始的二维平面,如果将这些点添至坐标轴中,会不会存在某个函数的图像可以将其分隔开呢?

这里利用一个函数区分两类点,可以看出红色点的横纵坐标乘积为0,即,绿色点的横纵坐标乘积为2,即,那么利用曲线不就可以将两类点准确分类嘛!如下: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-As3pMCwm-1590057139930)(https://upload-images.jianshu.io/upload_images/23124486-6b9ffeeedcbafcb1?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 “K5.png”)] 其中也就是我们非常熟悉的反比例函数。
解决了二维平面的问题,那么再将其映射至三维空间就可以解决前文提出的问题了。可以将算出的新值作为点在三维空间的z轴的坐标,绿色的点就可以沿z轴正方向提高,两类点就可以利用一个超平面实现分类,如下:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WAMZMxgW-1590057139931)(https://upload-images.jianshu.io/upload_images/23124486-f349677d4bb1c0a7?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 “K6.png”)]

上面这个栗子也称作异或问题,求解这个问题利用的思想就是核方法。这个栗子说明用线性分类方法求解分线性分类问题大致可分为两步:首先使用一个变换将原空间的数据映射至新空间;然后在新空间里用线性分类学习方法对数据进行分类,核技巧就属于这样的方法。核技巧的基本思想就是通过一个非线性变换将输入空间映射至特征空间,使得输入空间的超曲面模型对应于特征空间的超平面模型,这样,就可以通过在特征空间利用线性支持向量机求解分类问题。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T9zPdeZa-1590057139934)(https://upload-images.jianshu.io/upload_images/23124486-c7bb322324b7960b?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tHyk2HZb-1590057139935)(https://upload-images.jianshu.io/upload_images/23124486-af3d891a6af5dad3?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

核函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AhhigxXG-1590057139942)(https://upload-images.jianshu.io/upload_images/23124486-ee34a40282beecc4?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

在知道核技巧的基本思想后,我们可以对之前求出的对偶问题做出相应的处理,即通过输入空间向特征空间的映射,将、,如下:

若按照这种方法对问题求解,必须在特征空间中求出和的内积,但是特征空间的维度往往是比较大的,这就使内积的运算极其复杂,有没有另一种方法可以简化这个求解方式呢?假设有一个二维平面,我们需要将其映射至一个三维特征空间中,那么二维平面上的两类样本点分为用和;则在三维特征空间中两类点可以用和表示。若要对三维特征空间做内积操作,可以将其做以下推导,可以看到三维特征空间中的内积是可以由二维平面的内积表示的,最后得到的这个函数就被称为核函数。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dKptruJR-1590057139945)(https://upload-images.jianshu.io/upload_images/23124486-0caf452e5de8a4c5?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 “K8.png”)]

所以对于每一个映射至特征空间中的函数,都可以找到一个相应的核函数对其运算进行优化,表达式也可以做出相应的更改,如下:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RPrDLVUl-1590057139947)(https://upload-images.jianshu.io/upload_images/23124486-81055d53b33bce47?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 “K9.png”)]

在此基础上可以了解一下核函数的定义,设是输入空间,又设为特征空间(希尔伯特空间),如果存在一个到的映射使得对所有,函数满足条件
则称为核函数,为映射函数,其中为和的内积。综上,如果有一个待求解的非线性分类问题,我们没有必要去计算其对应特征空间中的内积,只需要找到这个非线性分类问题对应的核函数,将输入空间的数据代入核函数中,便可求得该问题的解。于是,“核函数的选择”就成了支持向量机的最大变数,若核函数的选择不合适,则意味着将样本映射到了一个不合适的特征空间,很可能导致分类效果不佳。而只是起到一个中间的过渡作用,并没有什么实际意义。下图给出了几个常用的核函数,其中高斯核函数是最为重要的,也称作径向基核函数。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Zxg3HBF-1590057139949)(https://upload-images.jianshu.io/upload_images/23124486-fc07a427abe2555d?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 “K10.png”)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wSpLPE3i-1590057139954)(https://upload-images.jianshu.io/upload_images/23124486-5ba23c9b2de6a6bd?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wk7xwkkC-1590057139956)(https://upload-images.jianshu.io/upload_images/23124486-c53240c4d15b5dd0?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

正定核

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RYMRoUo5-1590057139959)(https://upload-images.jianshu.io/upload_images/23124486-26ff4d58de251988?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

在已知映射函数,可以通过和的内积求得核函数,但这个过程是比较复杂的,能否直接判断一个给定的函数是不是核函数呢?或者一个函数需要满足什么条件才能成为核函数?我们通常所说的核函数是叫作正定核函数,先了解一下正定核的两个概念。其一,若输入空间映射至特征空间的关系为,有使得则称为正定核函数。

R代表数学中的实数域

其二,对于输入空间内的样本点,有如果满足对称性和正定性,则称为正定核函数。 概念一很好理解,并且前文也应用到了,所以这里着重讲述一下概念二。概念二的对称性:由于内积运算具有对称性,而核函数包含内积运算,所以核函数具有对称性。正定性表示对于任意,对应的Gram矩阵是半正定矩阵。如果在对称性成立的情况下,那么正定性是一个核函数为正定核的充要条件,即
这里只给出必要性的证明。若要证明一个矩阵是半正定的,只需证明矩阵中每个特征值都大于等于0即可。在已知条件下,对任意的,若存在以下等式:

则表明关于的Gram矩阵是半正定的。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-17DsE7aT-1590057139963)(https://upload-images.jianshu.io/upload_images/23124486-c908ed14f9cce094.gif?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

总结

对于分类问题而言,可以利用核技巧,将线性分类的学习方法应用至非线性分类问题中。将线性支持向量机扩展至非线性支持向量机,只需将线性支持向量机对偶问题中的内积利用转化成核函数即可。

服务推荐

  • 蜻蜓代理
  • ip代理服务器
  • 企业级代理ip
  • 微信域名检测
  • 微信域名拦截检测

机器学习笔记(十一)——学支持向量机怎能不懂“核”相关推荐

  1. 机器学习笔记(十一)特征选择和稀疏学习

    11.特征选择和稀疏学习 11.1子集搜索与评价 对象都有很多属性来描述,属性也称为特征(feature),用于刻画对象的某一个特性.对一个学习任务而言,有些属性是关键有用的,而有些属性则可能不必要纳 ...

  2. 2018-3-21李宏毅机器学习笔记十一-----Brief Introduction of Deep Learning?

    我觉的有用的: BP神经网络_百度百科 https://baike.baidu.com/item/BP%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/4581827?fr=a ...

  3. 机器学习笔记九之支持向量机

    本节目录: 1 优化目标 2 大边界的理解 3 大间距分类器 4 核函数 5 使用支持向量机 1.优化目标 大量数据在应用算法时,表现情况往往依赖于操作水平,比如 算法设计特征量的选择.如何选择正则化 ...

  4. 机器学习笔记III: 基于支持向量机的分类预测

    支持向量机(Support Vector Machine,SVM)是一个非常优雅的算法,具有非常完善的数学理论,常用于数据分类,也可以用于数据的回归预测中,由于其优美的理论保证和利用核函数对于线性不可 ...

  5. 机器学习笔记09:支持向量机(二)-核函数(Kernels)

    核函数是 SVM 的最重要的部分,我们可以通过设置不同的核函数来创造出非常复杂的.非线性的支持向量机. 1.核(Kernel) 首先来看看什么是核函数.如图所示,假设有一个样本 xx 有两个特征 x1 ...

  6. sklearn和libsvm吗_机器学习笔记(3)-sklearn支持向量机SVM

    文章用于总结对sklearn支持向量机模块的使用,系统回顾作者近期的相关学习,部分内容来源网站(侵权联系必删). 第一部分 SVM用途及优缺点 1. 主要用途: classification(分类). ...

  7. 机器学习笔记十一之降维

    本节目录: 1 数据压缩 2 数据可视化 3 主成分分析 4 选择主成分的数量 5 重建的压缩表示 6 主成分分析法的应用建议 1 数据压缩 第二种监督学习问题为降维.有几个不同的原因使你可能想要做降 ...

  8. 机器学习笔记十四:随机森林

    在上一篇机器学习笔记十三:Ensemble思想(上)中,简要的提了一下集成学习的原理和两种主要的集成学习形式.  而在这部分要讲的随机森林,就算是其中属于bagging思路的一种学习方法.为了篇幅,b ...

  9. 机器学习笔记(六) ---- 支持向量机(SVM)

    支持向量机(SVM)可以说是一个完全由数学理论和公式进行应用的一种机器学习算法,在小批量数据分类上准确度高.性能好,在二分类问题上有广泛的应用. 同样是二分类算法,支持向量机和逻辑回归有很多相似性,都 ...

最新文章

  1. 基于FPGA的波速形成系统的实现
  2. Ajax请求,跨域小坑
  3. centos 6.5 安装 redis
  4. 如何在LOL中成功制造一颗飞弹?
  5. SAP Spartacus scss 变量--cx-spatial-base赋值的地方
  6. 约稿——码字能赢得百万人生?不开玩笑
  7. 第3节 中间层创建与设置
  8. 微信小程序的出现会给前端开发带来什么
  9. 28留数及其应用(四)
  10. Eclipse 安装SVN的两种方式
  11. 分层图最短路【bzoj2763】: [JLOI2011]飞行路线
  12. Unity Bound
  13. linux查找文件内容 linux文件关键字搜索
  14. 2020湖南省技能竞赛获奖名单_2020技能竞赛丨湖南省职业院校技能竞赛我校赛点圆满闭幕...
  15. oracle 同义词转换错误,一次对dual表的恢复操作(ORA-00980:同义词转换不再有效错误解决方法) (转载)...
  16. android动画 行星,AndroidAnimation
  17. 仿某App锁屏页Gallery
  18. 跨境电商,商品详情api
  19. 小松鼠邮件(squirrelmail)服务器部署(squirrelmail+Postfix)
  20. 2017-2018-1 Java演绎法 第一周 作业

热门文章

  1. vue遍历输出列表中以逗号隔开的字符串
  2. xss基本概念和原理介绍
  3. 解锁三星bl锁有几种方法_如何判断三星手机bootloader是否解锁_免费解锁BL的3个方法...
  4. 6-5 快速排序的实现
  5. CSS 实现箭头、三角形、旋转的正方体
  6. ccsa安学网小程序_CCSA安学网安全题库完整
  7. 动漫主题的聊天室(html+css+js)(聊天室下篇)
  8. Flutter中的多选按钮组件Checkbox
  9. 洛谷P2905 [USACO08OPEN]农场危机Crisis on the Farm
  10. 本地Windows系统远程连接滴滴云Linux云服务器