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 ...
随机推荐
- linux搞大头,bang bang bang
偶遇网站打不开,人懵逼了,然后各种查询资料,查到可能跟服务器的问题有关,于是乎连接linux服务器,开始一段苦逼旅程. 其实主要是一些简单的linux命令,对我这个没怎么接触linux的小白来说,何等 ...
- Orchard源码--初步(1)
1.打开解决方案Orachard.sln 2.直接启动项目调试 3.接着你会看到下图 呵呵,有点啰嗦( ̄︶ ̄)↗ 涨 4.点击上图的‘Finish Setup’后
- Zepto 实现checkbox全选与全不选状态切换
最近项目里用到foundation,而foundation4默认集成了Zepto,很多轮子要重造,所以有了下面的代码. <script> /** * Muti-Checking-Toggl ...
- LoopBackJS 之 文件上传下载——使用loopback-component-storage
参考链接: http://loopback.io/doc/en/lb2/Storage-component.html#creating-a-storage-component-data-source ...
- C语言通过timeval结构设置周期
在C语言中,我们经常需要设置一个时间周期.在这里,我们通过Timeval结构实现时间周期的设置.首先,我们介绍timeval,其定义如下(转载http://www.cnblogs.com/wainiw ...
- flashftp连接虚拟机centos报错的解决方法
flashftp连接虚拟机centos报错,一般情况可能是因为端口(22)的权限没有开放 先在centos中检查并开放22端口,执行:iptables -I INPUT -p tcp --dport ...
- 黑马程序员_Java基础:反射机制(Reflection)总结
------- android培训.java培训.期待与您交流! ---------- 反射在java中有非常重大的意义,它是一种动态的相关机制,可以于运行时加载.探知.使用编译期间完全未知的clas ...
- JAVA里的异常
一.概念和分类 JAVA程序设计语言中,异常对象都是Throwable类的一个实例.Throwable分为Error和Exception. 其中,Error类层次结构描述了JAVA运行时系统的内部错误 ...
- js获取倒计时
<html> <head> <title>出错啦~~~</title> <link href="css/login1.css" ...
- disconf安装部署
1.client pom文件引入 <dependency> <groupId>com.baidu.disconf</groupId> <artifactId& ...