svm 之 线性可分支持向量机
定义:给定线性可分训练数据集,通过间隔最大化或等价的求解凸二次规划问题学习获得分离超平面和分类决策函数,称为线性可分支持向量机。
目录:
• 函数间隔
• 几何间隔
• 间隔最大化
• 对偶算法
1、函数间隔

考虑分类算法的两个方面:确信度 + 正确性
确信度:用点到分离超平面的距离表示,间接表示为$w ⋅x_i+b$,分类的结果有多大的自信保证它是正确的;
正确性:$y_i$ 与 $w ⋅x_i+b$的符号是否一致,表征分类是否正确;
结合以上两点,
某一实例点的函数间隔的定义即:$γ ̂_i= y_i (w⋅x_i+b)$;
训练数据集的函数间隔定义为:$γ ̂*=min\quadγ ̂*_i$;
确信度:$w⋅x_i+b$可以间接的表示点到超平面的距离,距离越小,说明确信度越低,反之;
正确性:当 $y_i$ 与 $w⋅x_i+b$ 的符号一致时,函数间隔为正,此时分类是正确的,反之,分类错误;
2、几何间隔
但是.........
当w,b成倍的变化,变成了ℷw,ℷb时,超平面没有发生变化,但是函数间隔却变化了 ℷ 倍,基于此,
某一实例点的几何间隔就被定义为:$γ_i=y_i\frac{(w⋅x_i+b)}{‖w‖}$;
训练数据集的几何间隔定义为:$γ=min\quadγ_i$;
几何间隔不会随着w和b的比例变化而同比例的变化;
而且,$\frac{(w⋅x_i+b)}{‖w‖}$ 也是点到超平面真正的距离(不再是间接的表示了),所以几何间隔其实是带符号的距离;
几何间隔和函数间隔之间的关系:$γ=\frac{γ^*}{‖w‖}$
3、间隔最大化
线性可分支持向量机的目的是:正确的分离超平面 + 最大的几何间隔
最大的几何间隔直观的解释:以最大的确信度分离数据集,即使是最难分的实例点也可以被分的很好(大的确信度);
最大化几何间隔:
$max\quadγ$ ;
$s.t.\quad\frac{(y_i (w⋅x_i+b))}{‖w‖} ≥γ ,\qquad i=1,2……N$ ;
带入函数间隔:
$max\quad\frac{γ^*}{‖w‖}$ ;
$s.t.\quad y_i (w⋅x_i+b)≥γ^*, \qquad i=1,2……N$;
考虑上优化问题,可知$γ^*$ 的取值不会影响优化问题(当w和b成比例变化时,$γ^*$也会成比例变化,优化问题不变),可取$γ^*$ 为1,又可知最大化 $\frac1{‖w‖}$ 等价与最小化 $\frac1{2} ‖w‖^2$,故优化问题就可以写成一个凸二次规划问题:
$min\quad\frac{1}{2} ‖w‖^2$ ;
$s.t. \quad y_i (w⋅x_i+b)≥1 ,\qquad i=1,2…N$;
算法:线性可分支持向量机学习算法 -- 最大间隔算法
输入:训练数据集 $T{(x_1,y_1 ),(x_2,y_2 ),…,(x_n,y_n )} , x∈R^n , y∈ \left \{ +1,-1 \right \} $;
输出:分离超平面和分类决策函数;
(1)构造并求解凸二次规划问题:
$min\quad\frac1{2} ‖w‖^2$ ;
$s.t.\quad y_i (w⋅x_i+b)≥1 , \qquad i=1,2…N$;
得到问题的解:$w^∗, b^∗ $ ;
(2)得到分离超平面:$w^∗⋅x+b^∗=0$ ;
分类决策函数:$f(x)=sign(w^∗⋅x+b^∗ )$;
支持向量:距离超平面最近的实例点,(那些最难分类的实例点)
间隔边界:
$H_1 : w⋅x+b=1$;
$H_2 : w⋅x+b=−1$;

4、对偶算法
根据拉格朗日对偶性,求对偶问题即可求原始问题。对偶问题一般更容易求解。
构建拉格朗日函数:$L(w,b,α)=\frac1{2} ‖w‖^2−∑α_i y_i (w⋅x_i+b)+∑α_i $;
根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:max min L(w,b,α)
(1)求解极小问题 min L(w,b,α) 分别对w和b求导:
$\frac{\partial L(w,b,\alpha)}{\partial w}=w-\sum_{i=1}^N\alpha_iy_ix_i=0$ ; $\frac{\partial L(w,b,\alpha)}{\partial b}=-\sum_{i=1}^N\alpha_iy_i=0$
得到:
$w=\sum_{i=1}^N\alpha_iy_ix_i$;
$\sum_{i=1}^N\alpha_iy_i=0$;
带入到极小问题中:
$min\quad L(w,b,α)=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot{x_j})+\sum_{i=1}^N\alpha_i$
(2)求解极大问题:max min L(w,b,α)
$max\quad-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot{x_j})+\sum_{i=1}^N\alpha_i$
$s.t.\quad\sum_{i=1}^N\alpha_iy_i=0 , \alpha_i\geqslant 0,i=1,2,...,N$
等价于:
$min\quad\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot{x_j})-\sum_{i=1}^N\alpha_i$
$s.t.\quad\sum_{i=1}^N\alpha_iy_i=0 , \alpha_i\geqslant 0,i=1,2,...,N$
我们的原始问题是:
$min\quad \frac1{2} ‖w‖^2$ ;
$s.t. \quad y_i (w⋅x_i+b)≥1$;
原始问题满足定理C.3(统计机器学习附录)的条件,故可以通过求解对偶问题来求解原始问题;
定理:设$α^∗$ 是对偶问题的解,则存在$α_j>0$,按下式求原始问题的解:
$w^∗=∑α_i^∗ y_i x_i$;
$b^∗=y_j−∑α_i^∗ y_i (x_i⋅x_j )$;
证明:
根据KKT的互补条件:$α_i c_i (x)=0,若α_j>0,则c_j (x)=0;y_j (w⋅x_j+b)−1=0≫ y_j^2 (w⋅x_j+b)−y_j=0≫b=y_j−w⋅x_j$
至此,就得到了分离超平面和分类决策函数。
算法:线性可分支持向量机 -- 对偶学习算法
输入:训练数据集 $T{(x_1,y_1 ),(x_2,y_2 ),…,(x_n,y_n )} , x∈R^n , y ∈ \left \{ +1,-1 \right \} $ ;
输出:分离超平面和分类决策函数;
(1)构造并求解原始问题的对偶问题:
$min\quad\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot{x_j})-\sum_{i=1}^N\alpha_i$
$s.t.\quad\sum_{i=1}^N\alpha_iy_i=0 , \alpha_i\geqslant 0,i=1,2,...,N$
得到解为$α^∗$;
(2)根据对偶问题的解求原始问题的解:
$w^∗=∑α_i^∗ y_i x_i$;
$b^∗=y_j−∑α_i^∗ y_i (x_i⋅x_j )$;
(3)得到分离超平面和分类决策函数;
支持向量:$α_i^∗>0$的实例点,
根据KKT互补条件,对于$α_i^∗>0$的实例点,$y_j (w⋅x_j+b)−1=0 ≫ w⋅x_j+b=±1$ ,即实例点在间隔边界上,这个定义和之前的定义是一致的;
至此,线性可分支持向量机完结。
但是...........
线性可分支持向量机(硬间隔最大化)针对的是线性可分训练数据集,然而,现实世界里有很多数据集是线性不可分的(样本数据中有噪声或特异点),这种情况下改怎么办?
svm 之 线性可分支持向量机的更多相关文章
- 线性可分支持向量机与软间隔最大化--SVM(2)
线性可分支持向量机与软间隔最大化--SVM 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 我们说可以通过间隔最 ...
- 线性可分支持向量机--SVM(1)
线性可分支持向量机--SVM (1) 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 线性可分支持向量机的定义: ...
- 统计学习:线性可分支持向量机(SVM)
模型 超平面 我们称下面形式的集合为超平面 \[\begin{aligned} \{ \bm{x} | \bm{a}^{T} \bm{x} - b = 0 \} \end{aligned} \tag{ ...
- 统计学习2:线性可分支持向量机(Scipy实现)
1. 模型 1.1 超平面 我们称下面形式的集合为超平面 \[\begin{aligned} \{ \bm{x} | \bm{a}^{T} \bm{x} - b = 0 \} \end{aligned ...
- SVM-线性可分支持向量机
SVM-线性可分支持向量机 如果您想体验更好的阅读:请戳这里littlefish.top 函数间隔和几何间隔 给定线性可分训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分离超平面 ...
- OpenCV支持向量机SVM对线性不可分数据的处理
支持向量机对线性不可分数据的处理 目标 本文档尝试解答如下问题: 在训练数据线性不可分时,如何定义此情形下支持向量机的最优化问题. 如何设置 CvSVMParams 中的参数来解决此类问题. 动机 为 ...
- SVM清晰讲解——线性可分问题
转载作者:liangdas 引言: 1995年Cortes和Vapnik于首先提出了支持向量机(Support Vector Machine),由于其能够适应小样本的分类,分类速度快等特点,性能不差于 ...
- SVM明确的解释1__
线性可分问题
笔者:liangdas 出处:简单点儿,通俗点儿,机器学习 http://blog.csdn.net/liangdas/article/details/44251469 引言: 1995年Cor ...
- 线性可分SVM中线性规划问题的化简
在网上找了许多关于线性可分SVM化简的过程,但似乎都不是很详细,所以凭借自己的理解去详解了一下. 线性可分SVM的目标是求得一个超平面(其实就是求w和b),在其在对目标样本的划分正确的基础上,使得到该 ...
随机推荐
- 学习React之前你需要知道的的JavaScript基础知识
在我的研讨会期间,更多的材料是关于JavaScript而不是React.其中大部分归结为JavaScript ES6以及功能和语法,但也包括三元运算符,语言中的简写版本,此对象,JavaScript内 ...
- python slot
每个实例包含一个字典,slot 让实例变成tup 或list,减少内存,但不能再增加属性 For classes that primarily serve as simple data structu ...
- PHP连接FTP服务的简单实现
PHP连接FTP服务: <?php class Ftp { private $connect; private $getback; /** * ftp连接信息 * @var array */ p ...
- T1373:鱼塘钓鱼(fishing)
原题链接:1373:鱼塘钓鱼(fishing) 解题思路: 由于在走路时,鱼的数量不会减少,那我们此时可以先减去路上可能花掉的时间,用剩下的时间来找最多的鱼,然后从左向右走,k枚举能到达的最远的鱼塘, ...
- Cocos2d-x之UI控件简介
| 版权声明:本文为博主原创文章,未经博主允许不得转载. 在Cocos2d-x中提供了一种UI控件,UI控件是指用户交互界面的操作部件.UI控件可以是Button(按钮),CheckBox(选择框 ...
- with cats as pets get cataracts and macular degeneration
I really enjoyed this talk, optimistic and helpful. May I offer a small but perhaps helpful bit of k ...
- 2019 SCUT SE 新生训练第四波 L - Boxes in a Line——双向链表
先上一波题目 https://vjudge.net/contest/338760#problem/L 这道题我们维护一个双向链表 操作1 2 3 都是双向链表的基本操作 4操作考虑到手动将链表反转时间 ...
- 图推荐-基于随机游走的personrank算法
转自http://blog.csdn.net/sinat_33741547/article/details/53002524 一 基本概念 基于图的模型是推荐系统中相当重要的一种方法,以下内容的基本思 ...
- ReactOS 无法显示中文的问题
其实非常简单, 实际上是因为包里面没有中文字体,所以输出文字都是乱码, 去 https://svn.reactos.org/optional/ 这里,下载ttf字体文件, 把字体文件放到源码中 mod ...
- 五、hibernate表与表之间的关系(一对多关系)
数据库表与表之间的关系 一对多:一个学校可以有多个学生,一个学生只能有一个学校 多对多:一个学生可以有多个老师,一个老师可以教多个学生 一对一:一个人只能有一个身份证号,一个身份证号只能找到一个人 一 ...