常用的核函数:

1、多项式核函数

对应的支持向量机是一个p次多项式分类器,在此情形下,分类决策函数成为:

(来自前面关于支持向量机w的估计,因而分类决策函数转为今儿通过核函数的内积将

映射后对分类决策函数进行替换得到上f(x)式子)

2、高斯核函数

对应的支持向量机是高斯径向基函数分类器,在此情形下,分类决策函数成为:

如上应用核技巧,将线性分类的学习方法应用到非线性分类问题中,将线性支持向量机扩展到非线性支持向量机,只需要将线性支持向量机对偶形式中的内积转换成核函数。

 非线性支持向量机学习算法:

输入:训练数据集,其中

输出:分类决策函数

(1) 选取适当的核函数K(x,z)和适当的参数C,构造并求解最优化问题

求解最优解

(2)  选择a*的一个正分量,计算

(3)  构造决策函数:

当K(x,z)是正定核函数时,上述问题是凸二次规划问题,解是存在的。

由于支持向量机的学习问题可以形式化为求解凸二次规划问题,这样的凸二次规划问题具有全局最优解,并且有许多最优化算法用于该问题求解。其中就包括下面要提到的序列最小最优化(SMO)算法。

SMO算法要解如下凸二次规划的对偶问题:

在这个问题中,变量是拉格朗日乘子,一个变量ai对应于一个样本点(xi,yi);变量的总数等于训练样本容量N.

SMO算法的基本思路是:如果所有变量的解都满足此最优化问题的KKT条件,那么这个最优化问题的解就得到了。因为KKT条件是该最优化问题的充分必要条件,否则选择两个变量,固定其他变量,针对这两个变量构建一个二次规划问题,这个二次规划问题关于这两个变量的解应该更接近原始二次规划问题的解,因为这会使得原始二次规划问题的目标函数值变得更小,更重要的是这时子问题可以通过解析方法求解,那么就可以显著提高算法额计算速度。子问题有两个变量,一个是违反KKT条件最严重的,另一个由约束条件自动确定,如此SMO算法将原问题不断分解为子问题并对子问题求解,以达到求解原问题的目的。

子问题的两个变量中只有一个是自由变量,假设a1,a2为两个变量,a3,a4,...,aN固定,那么由等式约束可以得到:

(即上式提取a1并移项)

如果a2确定,那么a1也就随之确定,从而子问题同时更新两个变量。

整个SMO算法包括两个部分:求解两个变量二次规划的解析方法和选择变量的启发式方法。

两个变量二次规划的求解方法

假设选择的两个变量是a1,a2,其他变量ai(3,4,...,N)是固定的,于是SMO的最优化问题(经核函数转换后的最优化问题)的子问题可以写成:

其中是常数

(具体求解算法目前看不懂)

(总的来说就是不断将原二次规划问题分解为只有两个变量的二次规划子问题,对子问题进行解析求解,直到所有变量均满足KKT条件位置,通过这种启发式的方法得到原二次规划问题的最优解,因为子问题有解析解,因此计算子问题速度很快,即使子问题次数多但总体算法高效。)

转载于:https://www.cnblogs.com/xiaochouk/p/8093523.html

非线性支持向量机(2)相关推荐

  1. 支持向量机(SVM):超平面及最大间隔化、支持向量机的数学模型、软间隔与硬间隔、线性可分支持向量机、线性支持向量机、非线性支持向量机、核函数、核函数选择、SMO算法、SVM vs LR、优缺点

    支持向量机(SVM):超平面及最大间隔化.支持向量机的数学模型.软间隔与硬间隔.线性可分支持向量机.线性支持向量机.非线性支持向量机.核函数.核函数选择.SMO算法.SVM vs LR.优缺点 目录

  2. 线性支持向量机、线性可分支持向量机、非线性支持向量机是怎么区分的?

    SVM(Support Vector Machine)是一种二类分类模型. 它的基本模型是定义在特征空间上的间隔最大的线性分类器. 支持向量就是最大间隔或者分割超平面上的那几个临界点,具体入下图所示: ...

  3. 统计学习方法笔记(六)-非线性支持向量机原理及python实现

    非线性支持向量机 非线性支持向量机 定义 非线性支持向量机 算法 非线性支持向量机学习算法 代码案例 TensorFlow 案例地址 非线性支持向量机 定义 非线性支持向量机 从非线性分类训练集,通过 ...

  4. 监督学习 | SVM 之非线性支持向量机原理

    文章目录 1. 非线性支持向量机 1.1 核技巧 1.2 核函数 1.2.1 核函数选择 1.2.2 RBF 函数 参考资料 相关文章: 机器学习 | 目录 机器学习 | 网络搜索及可视化 监督学习 ...

  5. 分类:支持向量机(四)——非线性支持向量机

    前面介绍的支持向量机都是在数据线性可分条件下的,但我们拿到训练数据时,并不一定能知道数据是否线性可分,低维数据可以通过可视化的方式观察是否线性可分,而高维数据则很难判断其是否线性可分了.对线性不可分数 ...

  6. 线性可分支持向量机、线性支持向量机、非线性支持向量机的区别

    线性可分支持向量机: 线性可分支持向量机处理的是严格线性可分的数据集. 其分类超平面为: 相应的决策函数为:或者 其学习的优化问题为: 线性支持向量机: 线性支持向量机处理的是线性不可分的数据集.对于 ...

  7. 机器学习(7)——支持向量机(二):线性可分支持向量机到非线性支持向量机

    线性可分支持向量机 回顾 前面总结了线性可分支持向量机,知道了支持向量机的最终目的就是通过"间隔最大化" 得到最优分类器,能够使最难区分的样本点得到最大的分类确信度,而这些难区分的 ...

  8. 支持向量机(四)——非线性支持向量机

    前面介绍的支持向量机都是在数据线性可分条件下的,但我们拿到训练数据时,并不一定能知道数据是否线性可分,低维数据可以通过可视化的方式观察是否线性可分,而高维数据则很难判断其是否线性可分了.对线性不可分数 ...

  9. 支持向量机 二 :非线性支持向量机

    如果您还未了解 线性向量机,建议首先阅读 <支持向量机 一:线性支持向量机> 一.为什么要用非线性支持向量机? 线性支持向量机不香吗?为什么还要用非线性支持向量机? 线性支持向量机香是香, ...

  10. 简单易学的机器学习算法——非线性支持向量机

    一.回顾     前面三篇博文主要介绍了支持向量机的基本概念,线性可分支持向量机的原理以及线性支持向量机的原理,线性可分支持向量机是线性支持向量机的基础.对于线性支持向量机,选择一个合适的惩罚参数,并 ...

最新文章

  1. 【OpenCV学习】XML的读写
  2. Web系统中Mic设备的应用实例
  3. C# 入门经典示例.
  4. hibernate映射-单向n-n关联关系
  5. php windows共享内存,给PHP开启shmop扩展实现共享内存
  6. 虚拟的有时比真实的还要好(+奥运杂谈)
  7. win7旗舰版系统关闭自动更新功能教程
  8. 【测试】软件测试分类体系系统学习
  9. MVC通过重写OnActionExecuting获取控制器,方法和域
  10. 脚本重启项目-定时启动
  11. JSP中退出登录销毁Session
  12. 黑莓9930/9970/99xx一键刷机包
  13. 卧槽,迅雷的代码结构被扒了精光
  14. 战舰猎手服务器不稳定,《战舰猎手》竟然还有这个系的这艘战舰啊?今天就让你见识一下!...
  15. Docker学习之六:基于Dockerfile构建镜像
  16. VBA宏批量处理多个Word文档
  17. 搞编程选什么方向好?前端还是后端?阿里程序员和你聊聊就业心得
  18. Python全栈开发——面向对象进阶(一切皆对象)
  19. js数字类型每隔三位加逗号(最简单方法)
  20. ENC1编码器插USB-4G卡托后如何获取IP并通过无线方式访问后台

热门文章

  1. 如何在 Mac 上的 Pages 文稿中查找和替换文本?
  2. simplemind pro for Mac(思维导图)
  3. mac好用的图片转文字,ocr文字识别工具:Text Scanner
  4. python实现二分查找算法
  5. 周博通 | 阿里开源首个 DL 框架、4000台服务器真实数据集;明年1月开源Blink...
  6. 系统时间正常日志时间不正常
  7. Python爬虫(一)抓取指定的页面
  8. Could not find class
  9. 对“被投诉”的最新解读(外四篇)
  10. 推荐一款配置中心新贵:Nacos,阿里开源,是真的香!!