支持向量机(四)----序列最小最优化算法SMO
在支持向量机(二)和(三)中,我们均遗留了一个问题未解决,即如何求解原问题的对偶问题;
在支持向量机(二)中对偶问题为:
在支持向量机(三)中的对偶问题为:
对于上述两个对偶问题,我们在支持向量机(三)中分析C的作用时有分析过,当C特别大时,松弛因子ξ=0,故此时的线性支持向量机即为线性可分支持向量机,也就是说线性可分支持向量机可以看做是线性支持向量机的一种特殊情况,故在此处,我们以支持向量机(三)中的对偶问题为例,来分析利用SMO算法求解的过程,在上述对偶问题中,变量是拉格朗日乘子,一个变量αi对应一个样本点(xi,yi)变量的总数等于样本容量n
在支持向量机(一)中我们已经讨论了原问题与对偶问题的解等价的条件,即KKT条件。SMO算法基本思路也正是KKT条件:即如果所用变量的解都需满足此最优化问题的KKT条件,那么这个最优化问题的解就得到了。也就说假如是上述对偶问题的最优解,那么对于每一个α,均满足KKT条件,如下:(KKT条件推导见支持向量机(一))
SMO算法过程:
1.选几个变量进行优化
分析如上问题,最终我们需要优化的是n个变量α,一次型优化显然行不通,此时我们可以采用一种从局部到整体的思路,即先优化其中一部分变量,使这部分变量满足上述KKT条件,然后重复这种思路,直到n个变量α均被优化到满足KKT条件,那么此时的α即为满足条件的最优解,此时问题的关键为我们选几个变量进行优化,下边分情况讨论;
a.每次选一个变量α进行优化:
等式两边同乘以y1,即可得:
α1变化的同时等号右边也随着一起变量,显然选定一个变量和原问题没有区别
b.每次选择两个变量α进行优化:
等式两边同乘以y1,可得:……………………………………………………………………(1)
我们可以用一个变量表示另一个变量,我们通过在优化一个变量的同时也优化了另外一个变量,这样将一个优化n个变量的问题转换成为了优化两个变量的问题,按照这样的思路,不断的重复即可优化所有的变量,使其满足KKT条件。解决了选几个的问题,接下来要解决的问题就是怎么选和如何求解的问题这才是SMO的核心,参考《李航-统计学习方法一书》,将SMO分解为两个部分:第一:求解两个变量的二次规划的解析方法;第二:选择变量的启发式方法
2.求解两个变量的二次规划的解析方法
遵循何种原则去去选择两个变量,我们在后边整理,这里我们现假定我们选α1和α2作为优化变量,我们对原式进行化简如下:
在上述化简过程中
(1)我们将和α1与α2无关的项统一表示为常数项即英文单词constant
(2)
将式(1)代入到式(2)中可得:
为了求解方便特令:
将(4)(5)代入(1)中得:
在KKT条件中:,令
则:
则:
求解式(3)的最小值,式(3)为关于变量α2的二次函数,最值点即为极值点也就是导数为0的点,对(3)式求导并将上述(6)代入得:
将(7)(8)(10)(11)代入(12)并化简:
令:
为预测值,
为真实值,定义
为真实值与预测值之间的误差;
则:
支持向量机(四)----序列最小最优化算法SMO的更多相关文章
- 序列最小最优化算法(SMO)-SVM的求解(续)
在前一篇文章中,我们给出了感知器和逻辑回归的求解,还将SVM算法的求解推导到了最后一步,在这篇文章里面,我们将给出最后一步的求解.也就是我们接下来要介绍的序列最小最优化算法. 序列最小最优化算法(SM ...
- SMO序列最小最优化算法
SMO例子: 1 from numpy import * 2 import matplotlib 3 import matplotlib.pyplot as plt 4 5 def loadDataS ...
- 【机器学习】支持向量机(SVM)的优化算法——序列最小优化算法(SMO)概述
SMO算法是一一种启发式算法,它的基本思路是如果所有变量的解的条件都满足最优化问题的KKT条件,那么这个最优化问题的解就得到了.因为KKT条件是该优化问题的充分必要条件. 整个SMO算法包括两个部分: ...
- Sequential Minimal Optimization(SMO,序列最小优化算法)初探
什么是SVM SVM是Support Vector Machine(支持向量机)的英文缩写,是上世纪九十年代兴起的一种机器学习算法,在目前神经网络大行其道的情况下依然保持着生命力.有人说现在是神经网络 ...
- 一小部分机器学习算法小结: 优化算法、逻辑回归、支持向量机、决策树、集成算法、Word2Vec等
优化算法 先导知识:泰勒公式 \[ f(x)=\sum_{n=0}^{\infty}\frac{f^{(n)}(x_0)}{n!}(x-x_0)^n \] 一阶泰勒展开: \[ f(x)\approx ...
- 支持向量机(Support Vector Machine)-----SVM之SMO算法(转)
此文转自两篇博文 有修改 序列最小优化算法(英语:Sequential minimal optimization, SMO)是一种用于解决支持向量机训练过程中所产生优化问题的算法.SMO由微软研究院的 ...
- 隐马尔科夫模型HMM(四)维特比算法解码隐藏状态序列
隐马尔科夫模型HMM(一)HMM模型 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数 隐马尔科夫模型HMM(四)维特比算法解码隐藏状态 ...
- 【转载】NeurIPS 2018 | 腾讯AI Lab详解3大热点:模型压缩、机器学习及最优化算法
原文:NeurIPS 2018 | 腾讯AI Lab详解3大热点:模型压缩.机器学习及最优化算法 导读 AI领域顶会NeurIPS正在加拿大蒙特利尔举办.本文针对实验室关注的几个研究热点,模型压缩.自 ...
- 【数据结构】 最小生成树(四)——利用kruskal算法搞定例题×3+变形+一道大水题
在这一专辑(最小生成树)中的上一期讲到了prim算法,但是prim算法比较难懂,为了避免看不懂,就先用kruskal算法写题吧,下面将会将三道例题,加一道变形,以及一道大水题,水到不用高级数据结构,建 ...
随机推荐
- java 内部编译异常的处理方法
1.可能存在的问题. 在cmd 输入 java -version 和javac -version 检验java的环境是否正常,不正常就卸载重装. 搞定!
- 创建一个项目并在GitHub上发出拉取请求
1.第一步:创建存储库 创建新存储库: New repository 命名存储库 写一个简短的描述 选择使用自述文件初始化此存储库 2.第二步:创建一个分支 创建一个新分支 转到新的存储库hello- ...
- The kth great number
The kth great number Problem Description Xiao Ming and Xiao Bao are playing a simple Numbers game. I ...
- 数学: HDU1098 Ignatius's puzzle
Ignatius's puzzle Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- php strpos() 函数介绍与使用方法详解
本文主要和大家介绍PHP中mb_strpos的使用技巧,通过使用语法以及实例给大家详细分析了用法,需要的朋友参考学习下.希望能帮助到大家.mb_strpos(PHP 4 >= 4.0.6, PH ...
- React -- 3/100 】组件通讯
通讯 | props | prop-types 组件通讯 Props: 组件无论是使用函数声明还是通过 class 声明,都决不能修改自身的 props /* class */ .parent-box ...
- (新手入门,学习笔记)通过NPM进行Vue.js的安装
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,本文只介绍如何通过NPM进行安装Vue.js NodeJS官方网站:http://nodejs.cn/downlo ...
- 基于Red5与ffmpeg实现rtmp处理NVR或摄像头的监控视频处理方案
背景 各大监控视频平台厂商与外对接均是基于IE的OCX插件方式提供实时视频查看.历史视频回放与历史视频下载.在h5已大行其道的当下,基于IE的OCX插件方式已满足不了广大客户的实际需求,因此需要一个兼 ...
- 团队项目作业-Beta版本发布
团队成员: 学号 姓名 201731062234 薛磊 201731062230 李林 201731062231 燕泓达 201731062232 陈东 201731062229 沈瑞琦 201731 ...
- IAR
IAR是什么 支持众多半导体公司产品的c处理器 http://www.rimelink.com/pr.jsp