机器学习——支持向量机support vector machine
支持向量机是与统计机器理论相关的机器学习算法,在1992年首次引入。SVM之所以流行,源于其对手写数字识别的错误率达到1.1%,与一个精确构建的神经网络的错误率相当。SVM现在被认为是kernel methods里面的一个经典例子。
一、 分类问题
1. 问题的提出
问题:给定训练集,其中;
目标:学习一个分类函数g(x),使得f(x) = sign(g(x))能对新输入的x进行分类
线性分类器:
对于一个线性可分的二分类问题,我们可以找到很多的分类界面,如下图所示:
很多人提出了不同的算法寻找分类界面,Perceptron算法只能找到一个这样的分类界面,但是不同的判别界面是否一样好呢?答案是显然的。
2. 基于平分线的决策界面(Bisector based Decision Boundary)
对于线性可分的二分类问题,我们将每一类的全部点构成一个凸集,
如上图所示,我们的目标是找到两个凸集之间距离最近的两个点c和d,在这个两个点之间连一条直线cd,然后以这条线段cd的垂直平分线做为判别界面。
Formalization:
我们的目标是求得使上式最小的β,这样我们就能得到c和d:
然后求得c和d连线的中垂线:
其中:
这样我们就可以通过来对样本点进行分类。
二、 最大间隔界Maximal Margin
1. 线性可分的情况:
1) 最大间隔界
直观上来讲,分类界面应该离两类点的距离尽量远,这样的话,我们需要找到两类点之间的最大间隔,以此为基础选择分类界面。
如图所示,依据原点到直线的距离公式,我们可以得到两类点之间间隔的表达式
我们希望最大化这个间隔
约束条件:
由于我们可以同时放大和缩小w和b的值而不改变,我们可以调整w和b的值,使得γ = 1,那么问题可以做如下转换:
于是我们得到一个优化目标:
2)求解:
对于上面的优化问题,我们可以写出等价的拉格朗日形式:
首先我们先看一下对于一般的拉格朗日函数的求解:
我们先定义一个函数
如果约束条件不被满足的话,我们得到
当约束条件被满足的时候,我们可以得到
于是我们得出:
这样原优化问题就等价于:
他的对偶问题是:
我们可以推导出原问题和对偶问题有如下的关系:
那么在什么样的条件下我们可以得到d = p 呢?
这就需要用到KKT条件(Karush-Kuhn-Tucher):
回到我们的问题:
其拉格朗日形式为:
我们的问题就可以转化为求解:
其对偶问题是:
通过求解里面的最小化问题得到:
于是我们有:
带回L化简之后得到:
这样对偶问题就变成了求解如下优化问题:
这是一个二次优化问题,我们总能找到最优解 α, 然后可以得到:
以及
3)说明:
a、由于许多的α 值都为0, 由上面w的表达式可以知道,w是少量数据样本的线性组合,这种稀疏的表示方法可以看做一种数据压缩。
b、对于α 值非0 的点,我们称其为支持向量,分类的决策面就是由支持向量决定的。
2. 线性不可分的情况:
之前的讨论仅仅适用于线性可分的情况。样本线性不可分的情况下,我们引入了松弛变量
这里,我们允许间隔小于1,对于小于1的间隔1-ε,我们在目标函数中增加一个cost,C*ε, C控制着w和ε之间的权重比例。
对应的拉格朗日形式为:
得到min max问题的对偶问题max min问题,我们对于min L求解之后得到
这是个二次优化问题,求解同上。
最后按照 α 值的不同范围,我们得到如下结论:
当 α = 0时, 为正确分类的样本;
当 α = C 时,为可能误分的样本点;
当 0 < α < C时, 为支持向量.
机器学习——支持向量机support vector machine相关推荐
- [机器学习] 分类 --- Support Vector Machine (SVM)
1. 基本概念 支持向量机(Support Vector Machine, SVM)的基本模型是在特征空间上找到最佳的分离超平面使得训练集上正负样本间隔最大.SVM是用来解决二分类问题的有监督学习算法 ...
- 西瓜书+实战+吴恩达机器学习(十)监督学习之支持向量机 Support Vector Machine
文章目录 0. 前言 1. 拉格朗日乘子法 2. SVM参数求解方法 3. 软间隔 4. 核方法 5. 支持向量回归 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~ 0. 前 ...
- 支持向量机(support vector machine)(SVM)(1)
背景 对于两类问题,给定数据,使用线性函数,如何分类? 方案1(只看黑色分界线,红色不用管) 方案2(只看黑色分界线,红色不用管) 哪一个更好? 第二个好,将两类数据分得更开,而且: 建模 有了目标之 ...
- 机器学习中的数学基础(4.1):支持向量机Support Vector Machine(SVM)
SVM可以说是一个很经典的二分类问题,属于有监督学习算法的一种.看过那么多的博客知乎解释SVM我一定要自己总结一篇,加深一下自己的理解. 带着问题去读文章会发现,柳暗花明又一村,瞬间李敏浩出现在眼前的 ...
- R语言高级算法之支持向量机(Support Vector Machine)
1.支持向量机原理解析 机器学习本质上就是一种对所研究问题真实模型的逼近,通常会假设一个近似模型,然后根据适当的原理将这个近似模型不断逼近真实模型.结构风险就是指近似模型与真实模型之间的差距. 我们可 ...
- 李宏毅svm_【李宏毅机器学习笔记】 18、支持向量机(Support Vector Machine,SVM)...
[李宏毅机器学习笔记]1.回归问题(Regression) [李宏毅机器学习笔记]2.error产生自哪里? [李宏毅机器学习笔记]3.gradient descent [李宏毅机器学习笔记]4.Cl ...
- 支持向量机SVM(Support Vector Machine)是一个有监督的学习模型
前言 动笔写这个支持向量机(support vector machine)是费了不少劲和困难的,原因很简单,一者这个东西本身就并不好懂,要深入学习和研究下去需花费不少时间和精力,二者这个东西也不好讲清 ...
- 机器学习实战(五)支持向量机SVM(Support Vector Machine)
目录 0. 前言 1. 寻找最大间隔 2. 拉格朗日乘子法和KKT条件 3. 松弛变量 4. 带松弛变量的拉格朗日乘子法和KKT条件 5. 序列最小优化SMO(Sequential Minimal O ...
- 【机器学习算法】支持向量机(support Vector Machine,SVM)
目录 支持向量机 支持向量机概述 线性可分及线性不可分的问题 线性可分的支持向量机 线性不可分的支持向量机 支持向量机与神经网络之间的关系 处理两类以上的分类问题. 我的主页:晴天qt01的博客_CS ...
- 机器学习-62-Structured Learning-03-Structured Support Vector Machine(结构化学习-结构化支持向量机)
文章目录 Structured Support Vector Machine Unified Framework(统一框架:两步走,三问题) two steps(两步) three problems( ...
最新文章
- 视频教学动作修饰语:CVPR2020论文解析
- vue-router基本使用
- python做excel自动化可视化-简直出神入化,教你用Python控制Excel实现自动化办公...
- SQLyog连接虚拟机中docker中的mysql过程详解,并解决2003错误
- web公选课第三节2020.5.18
- [课程设计]Scrum 多鱼点餐系统(团队交流日)
- Windows的同步I/O和异步I/O
- S5PV210-uboot移植-从三星官方uboot开始移植
- 国外在线Md5,md4,mysql,Sha1,NTLM破解网站
- MS08067红队攻防第一期班 精彩回顾~
- 吃妖怪的萝莉和帅气道长大叔,古风治愈漫画温暖来袭!
- SOFA BOLT源码解析之设计要点-网络IO
- Mysql查询当天,本周,本月所有数据记录
- 特征预处理:归一化/标准化/缺失值
- Bouncy Castle使用(一)【开始】
- html文本下一页,Javascript html2canvas + jsPDF 导出PDF,解决一半文字在上一页一半文字在下一页的问题...
- ​居家?如何获得一个公网IP​
- Email营销课堂:邮件群发平台与软件区别
- 基于Android的旅游景点推荐
- 让SVG 自己动起来!SMIL animation动画详解
热门文章
- 千人千面系统,这样搞比较靠谱【干货】
- Crashing Robots
- 1003.Crashing Balloon
- 有没有可以测试充电宝电流电压的软件,USB测试仪 移动电源电流电压容量检测 充电宝充电器测试老化工具...
- 我的wow血精灵圣骑士,晒晒
- 学计算机的女生容易脱单,最容易让男生脱单的5个大学专业,特别是第3个,女生会倒追你!...
- 开源python语音助手_python实现语音助手小思同学
- 背单词App开发日记3
- 单片机中存储器扩展位地址线怎么算_单片机程序存储器的扩展
- uniapp中scroll-view的下拉刷新