SVM-线性可分支持向量机
SVM-线性可分支持向量机
如果您想体验更好的阅读:请戳这里littlefish.top
函数间隔和几何间隔
给定线性可分训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分离超平面为
$$w^* \cdot x+b^* =0 $$
以及相应的分类决策函数
$$f(x) = sign (w^* \cdot x + b^*)$$
称为线性可分支持向量机。
对于给定训练集合T和超平面$(w,b)$,定义超平面$(w,b)$关于样本点$(x _i,y_i)$的函数间隔为
$$\hat\gamma_i = y_i(w \cdot x_i + b)$$
定义超平面$(w,b)$关于训练数据集T的函数间隔为超平面$(w,b)$关于T中所有样本点$(x_i,y_i)$的函数间隔之最小值,
$$\hat\gamma = min_{i=1,...,N}\hat\gamma_i$$
对于给定的训练数据集和超平面$(w,b)$,定义超平面$(w,b)关于$样本$(x_i,y_i)$的几何间隔为
$$\hat\gamma_i = y_i(\frac w{||w||} \cdot x_i + \frac b{||w||})$$
定义超平面$(w,b)$关于训练数据集T的几何间隔为超平面$(w,b)$关于T中所有样本点$(x_i,y_i)$的几何间隔之最小值
$$\gamma = min_{i=1,...,N}\gamma_i$$
从而得到几何间隔和函数间隔的关系:
$$\gamma = \frac{\hat\gamma_i}{||w||}$$
间隔最大化
对数据集合找到几何间隔最大的超平面意味着以充分大的确信度来对训练数据进行分类。
最大化超平面可表示为:
$$max_{w,b} \quad {\gamma}\
s.t.\quad y_i(\frac w{||w||} \cdot x_i + \frac b{||w||}) \ge \gamma,\quad i=1,...,N$$
即最大化超平面$(w,b)$关于训练结合的间隔$\gamma$,约束条件表示的超平面$(w,b)$关于每个训练样本点的几何间隔至少为$\gamma$。
而函数间隔对于上述公式并没有影响,假设按比例改变为$\lambda w$和$\lambda b$,那么函数间隔改变为$\lambda \hat\gamma$
改变为相应的函数距离,如下
$$max_{w,b} \quad \frac{\hat\gamma}{||w||}\
s.t.\quad y_i(w \cdot x_i + b) \ge \hat\gamma,\quad i=1,...,N$$
由于分母和分子同时拥有$\lambda$,因此成比例改变并不会对函数间隔产生影响,从而对目标函数的优化也没有影响。
令$\hat\gamma$=1,代入上式,最大化$\frac1{||w||}$等价于最小化$\frac12||w||$,从而得到线性可分支持向量机学习的最优化问题
$$min_{w,b}\quad \frac12{||w||}^2\
s.t.\quad y_i(w\cdot x_i + b) - 1 \ge 0, \quad i=1,2,...,N$$
这是一个凸二次规划问题。
支持向量
在线性可分的情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例称为支持向量(support vector),即
$$y_i(w\cdot x_i+b) =1$$
对于y=+1的正例来说,支持向量在超平面
$$H_1:w\cdot x + b= 1$$
对于y=-1的负例来说,支持向量在超平面
$$H_2:w\cdot x + b = -1$$
如图中, H1和H2平行,之间形成一条长带,其宽度为$\frac 2 {||w||}$。在决定分离超平面时只有支持向量起作用,而其他实例点并不起作用,如果移动支持向量改变所求的解,但是如果在间隔边界(H1和H2)以外移动其他实例点,解都不会发生改变。
对偶算法
为了求解线性可分支持向量机的最优化问题,应用拉格朗日对偶性,通过求解对偶问题得到最优解。
定义拉格朗日函数:
$$L(w,b,\alpha) = \frac 1 2 {||w||}^2 - \sum_{i=0}^n \alpha_i y_i(w\cdot x_i + b) + \sum_{i=1}^N\alpha_i$$
其中,$\alpha = (\alpha_1, \alpha_2,...,\alpha_N)^T$为拉格朗日乘子向量。
根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题需要先求$L(w,b,\alpha)$对(w,b)求极小,再对$\alpha$求极大:
$$\max_\alpha \min_{w,b} L(w,b,\alpha)$$
- $\min_{w,b} L(w,b,\alpha)$
分别对$w,b,\alpha$求偏导数,并令其等于0,将结果带入原公式中即得
$$\min_{w,b} L(w,b,\alpha) = -\frac 1 2 \sum_{i-=1}^N \sum_{j-=1}^N \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) + \sum_{i=1}^N \alpha_i$$
- 求$\min_{w,b} L(w, b, \alpha)$对$\alpha$的极大
$$\max_\alpha -\frac 1 2 \sum_{i-=1}^N \sum_{j-=1}^N \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) + \sum_{i=1}^N \alpha_i \
s.t.\quad \sum_{i=1}^N\alpha_i y_i=0, \quad \alpha_i > 0,i=1,2,...,N$$
等价于:
$$\min_\alpha \frac 1 2 \sum_{i-=1}^N \sum_{j-=1}^N \alpha_i \alpha_j y_i y_j(x_i \cdot x_j) - \sum_{i=1}^N \alpha_i \
s.t.\quad \sum_{i=1}^N\alpha_i y_i=0, \quad \alpha_i > 0, i=1,2,...,N$$
线性可分支持向量机学习算法
(1)构造并求解约束最优化问题
$$\min_\alpha \frac 1 2 \sum_{i-=1}^N \sum_{j-=1}^N \alpha_i \alpha_j y_i y_j(x_i \cdot x_j) - \sum_{i=1}^N \alpha_i \
s.t.\quad \sum_{i=1}^N\alpha_i y_i=0, \quad \alpha_i > 0, i=1,2,...,N$$
(2)计算
$$w^* = \sum_{i=1}^N \alpha_i^* y_i x_i$$
并选择$\alpha^*$的一个正分量$\alpha_j^*$,计算
$$b^* = y_i - \sum_{i=1}^N \alpha_i^*y_i(x_i \cdot x_j)$$
(3)求得分离超平面
$$w^* \cdot x + b^* = 0$$
分类决策函数
$$f(x) = sign(w^* \cdot x + b^*)$$
SVM-线性可分支持向量机的更多相关文章
- 线性可分支持向量机与软间隔最大化--SVM(2)
线性可分支持向量机与软间隔最大化--SVM 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 我们说可以通过间隔最 ...
- 线性可分支持向量机--SVM(1)
线性可分支持向量机--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清晰讲解——线性可分问题
转载作者: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),在其在对目标样本的划分正确的基础上,使得到该 ...
- 模式识别之svm()---支持向量机svm 简介1995
转自:http://www.blogjava.net/zhenandaci/archive/2009/02/13/254519.html 作者:Jasper 出自:http://www.blogjav ...
随机推荐
- MongoDB基本管理命令
MongoDB是一个NoSQL数据库系统:一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表:而每个集合中 可以存储一组由列标识的记录,列是可以自由定义的,非常灵活,由 ...
- flex中下拉框的实现
flex中下拉框的实现 <mx:ComboBox id = "combobox" dataProvider = "{deviceCodeType }" e ...
- angular.js中插值语法和ng-bind以及ng-model的区别
首先呢,插值语法也就是{{}}和ng-bind基本上是没有区别的. 主要区别在于,使用花括号语法时,在AngularJS使用数据替换模板中的花括号时,第一个加载的页面,通常是应用中的index.htm ...
- SAP项目管理模块培训教材
SAP项目管理模块培训教材(PLM210.PLM220.PLM230)分享: http://sap.npbok.com/
- Jquery打造的类似新浪微博@提醒功能
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js的执行机制
遇到一个问题,因为自己本身就是菜鸟的原因,弄懂了还是很高兴的. console.log(a) function a() { return "this is function" } ...
- CabArc to create or extract a cab file
CabArc n D:\test.cab D:\output\*.* CabArc x D:\test.cab -r -p D:\output\*.*
- javascript中array常用属性方法
属性: length 表示一个无符号 32-bit 整数,返回一个数组中的元素个数. 截短数组..截短至长度2 则: .length = 2 方法: Array.from() 方法可以将一个类数 ...
- delphi7 编译程序时报win32.indcu.a病毒的解决方法
Delphi7用了很久一直都没问题,同一个工程文件昨天编译时mod32还不会报毒,今天重新编译时,生成的exe突然nod32报毒. 提示: “Project1.exe Win32/Induc.A 病毒 ...
- Handler机制来处理子线程去更新UI线程控件
public class HandlerTestActivity extends Activity { private TextView tv; private static final int UP ...