林轩田之机器学习课程笔记( embedding numerous feature之dual support vector machine)(32之18)
- 概要
- 对偶SVM的动机
- 拉格朗日对偶SVM
- 解决对偶SVM
- 对偶SVM背后的理论
欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen
题目可能不全,因为有字数限制,不好意思,可以参考:
https://www.csie.ntu.edu.tw/~htlin/course/ml15fall/
概要
上节课讲到了线性的支持向量机,采用胖胖的分割线作为分类器。要进行求解,首先将X投影到z空间,然后在z空间进行线性分割就好了。但是如果投影到z空间中的维度很高,或者是无线维,那么好像就不好求解了。
本节课就是讨论如何求解特征转换到高维度或者无线维度的方程。
对偶SVM的动机
所以为啥要用svm的对偶方程去求解呢,就是因为当我们经过特征转化到高维度后,直接采用QP的方式太慢了,或者有的时候会投影到无限多维,这个时候就没法算了。所以能不能在不依赖于空间维度的数量,而是样本数量?如果学习过对偶问题的童鞋应该是知道的,在运筹学中,就相当于影子价格。言归正传,目的如下图:
目的就是SVM的对偶求解不依赖于新产生的维度数量,减少运算复杂度
关于线性对偶可以参考
http://blog.csdn.net/cqy_chen/article/details/77872159
将变量个数从d˜+1\widetilde{d}+1——>NN,而条件个数从NN——>N+1N+1。这就是对偶问题干的事情。
这个怎么做呢?使用熟悉的拉格朗日乘子法啦。
回顾原始的式子:
\min_{w,b}\ \frac{1}{2}w^Tw \\ subject\ to :y_n(w^Tz_n+b)\geq 1 \\ for \ all \ n=1,2,.....N
通过添加拉个朗日乘子后,添加了 ana_n个乘子:
\mathcal{L}(w,b,a)= \frac{1}{2}w^Tw+\sum_{n=1}^{N}a_n(1-y_n(w^Tz_n+b))\\ 其中:a_1,a_1,a_3......a_n \geq 0
这里我们来看看添加之后的式子和原来的式子会不会是一样的呢?
首先我们令, m=12wTwm= \frac{1}{2}w^Tw以及 n=∑Nn=1an(1−yn(wTzn+b))n=\sum_{n=1}^{N}a_n(1-y_n(w^Tz_n+b))则: L(w,b,a)=m+n\mathcal{L}(w,b,a)=m+n,原来的最小化我们先将w和b固定住,做最大化,然后再做最小化操作,如下:
\min_{b,w}(\max_{a}(m+n))
当我们选择了一个不符合条件的点,就会导致 yn(wTzn+b)≤1y_n(w^Tz_n+b)\leq 1,由于要使得固定w和b之后的最大化,就会导致 nn无穷大。
当我们选择了一个符合条件的点的时候,就会导致yn(wTzn+b)≥1y_n(w^Tz_n+b)\geq 1,这个时候由于要使得固定w和b之后的最大化,只能令所有的拉格朗日乘子都为0,n=0。
当我们最大化之后再进行最小化,只能选择n=0的情况,这个时候和原来的情况是一样一样的,如下图:
拉格朗日对偶SVM
上面式子只是说明了经过变换,拉格朗日式子和原来的求解是一样的。如果是对于非最优的aa则有:
\min_{b,w}(\max_{a}(\mathcal{L}(w,b,a)))\geq \min_{b,w}(\mathcal{L}(w,b,a'))\\ 对于任意的a'存在上面的式子。所以在右边的式子加上最大化也成立得到;\\ \min_{b,w}(\max_{a}(\mathcal{L}(w,b,a)))\geq \max_{a}(\min_{b,w}(\mathcal{L}(w,b,a')))
上面的这个式子称为拉格朗日对偶问题,这个证明了先固定a,求得最小值,然后求解最大值是原问题的一个解的下确界。
当条件满足kkt条件的时候两个式子是相等的:
对于SVM问题,恰好满足条件,可以通过求解对偶问题来求解原问题。
变成对偶问题之后,有啥好处,因为没有可以在没有条件的情况下去求解w和bw和b了啊
对偶问题是:
\max_{a}(\min_{w,b}(\frac{1}{2}w^Tw+\sum_{n=1}^{N}a_n(1-y_n(w^Tz_n+b))))
由于先求解里面的最小化,而且是木有任何条件限制的,所以呢,可以直接求解梯度,令为0不就好了么,所以最佳解应该满足:
\frac{\partial {\mathcal{L}}}{b}=\sum_{n=1}^{N}a_n(-y_n)=0\sum_{n=1}^{N}a_ny_n=0\\ \frac{\partial {\mathcal{L}}}{w}=w+\sum_{n=1}^{N}a_n(-y_nz^n)=0w=\sum_{n=1}^{N}a_ny_nz_n
所以带入 bb的导数得到:
\begin{align*} \mathcal{L}(w,b,a)&= \max_{a,\sum_{n=1}^{N}a_ny_n=0}(\min_{w}(\frac{1}{2}w^Tw+\sum_{n=1}^{N}a_n(1-y_n(w^Tz_n))))\\ &=\max_{a,w=\sum_{n=1}^{N}a_ny_nz_n,\sum_{n=1}^{N}a_ny_n=0}(\min_{w}(\frac{1}{2}w^Tw+\sum_{n=1}^{N}a_n-w^Tw))\\ &=\max_{a,w=\sum_{n=1}^{N}a_ny_nz_n,\sum_{n=1}^{N}a_ny_n=0}(\min_{w}(-\frac{1}{2}w^Tw+\sum_{n=1}^{N}a_n))\\ &=\max_{a,w=\sum_{n=1}^{N}a_ny_nz_n,\sum_{n=1}^{N}a_ny_n=0}(-\frac{1}{2}||\sum_{n=1}^{N}a_ny_nz_n||^2+\sum_{n=1}^{N}a_n)\\ \end{align*}
所以最后我们得到如下式子:
\mathcal{L}(w,b,a)=\max_{a,w=\sum_{n=1}^{N}a_ny_nz_n,\sum_{n=1}^{N}a_ny_n=0}(-\frac{1}{2}||\sum_{n=1}^{N}a_ny_nz_n||^2+\sum_{n=1}^{N}a_n)
需要满足如下条件:
1)拉格朗日乘子: a1,a2,a2...an≥0a_1,a_2,a_2...a_n\geq 0
2)梯度为0: w=∑Nn=1anynzn,∑Nn=1anyn=0w=\sum_{n=1}^{N}a_ny_nz_n,\sum_{n=1}^{N}a_ny_n=0
3)线性可分,就是有解: 1−yn(wTzn+b)≥01-y_n(w^Tz_n+b)\geq 0
4)同时我们知道当所选点违反条件的时候,原始的式子里面是趋于无穷大,只有当选择的点满足条件才证明了与原始的式子等同,所以有: an(1−yn(wTzn+b))=0a_n(1-y_n(w^Tz_n+b))=0
上面的条件称之为kkt条件,所以我们成功将SVM的问题转换成了对偶问题。
解决对偶SVM
那么我们看到上的式子只是关于aa的,主要将aa求解完毕,不就ok了嘛,所以我们将上面的式子稍微转换下,最大化变成最小化,同时只保留aa的条件,如下:
\min_{a}(\frac{1}{2}\sum_{n=1}^{N}\sum_{m=1}^{N}a_na_my_ny_mz_n^Tz_m-\sum_{n=1}^{N}a_n)\\ s.t.:a_1,a_2,......a_n\geq 0\\ \sum_{n=1}^{N}{y_na_n}=0
哇咔咔,这是个啥,不就是一个QP问题么?这里有N+1N+1个条件,同时有N个变量,转换成QP问题的标准形式如下:
这里有一个问题,就是Q矩阵,可以看看这是一个资料量大小相关的方阵,假如有1W笔资料就需要1W*1W的大小。而且是一个很稠密的矩阵,这就麻烦了,原来是的SVM问题Q是一个稀疏的矩阵。
对于这种稠密的,很大的Q矩阵一般采用了SMO方法进行优化,可以参考:
http://blog.csdn.net/luoshixian099/article/details/51227754
ok,现在假设已经求解出了aa,剩下的问题就是要求解w和bw和b
根据我们的限制条件:
w=\sum_{n=1}^{N}a_ny_nz_n\\ a_n(1-y_n(w^Tz_n+b))=0
这就是很easy的一件事情啦。w就直接求出,对于 bb呢,我们看到只要选择任意一个ana_n不为0的情况, 1−yn(wTzn+b)=01-y_n(w^Tz_n+b)=0就求解了b。
这里当 ana_n不为0的情况的点,称为支持向量,因为这个时候 1−yn(wTzn+b)=01-y_n(w^Tz_n+b)=0,反之, 1−yn(wTzn+b)=01-y_n(w^Tz_n+b)=0不一定有 an=0a_n=0。所以我们前面说边界上的点是支持向量点的候选集。
对偶SVM背后的理论
上面中我们知道了
当an>0a_n>0,我们称这些点为支持向量,这个时候得到:
w=\sum_{n=1}^{N}a_ny_nz_n=\sum_{支持向量}a_ny_nz_n\\ b=y_n-w^Tz_n,任意的支持向量
所以最后得到的w和b只和支持向量有关,我们对比下以前学习到的PLA;
可以看到,在SVM中,w可以通过支持向量表现出来,而PLA中,w可以通过犯错误的点表现出来。
其实在使用优化算法,GD或者SGD的过程中,w都可以表现成 ynzny_nz_n的形式。只不过在SVM中,只与支持向量有关。
但是其实我们还没做完呢,对比原始的SVM和对偶的SVM:
在原始的SVM中,因为映射到了高维,所以我们想要通过对偶问题来求解,所以只得到了NN个变量和N+1N+1个条件。
但是在对偶问题求解过程中,真的和高维度的映射么有关系么?
这里在进行QP求解的时候:qn,m=ynymzTnzmq_{n,m}=y_ny_mz_n^Tz_m就包含了映射到高维度的z了哇,如果采用无线维度的映射,那岂不是Q矩阵没法求解啦?
所以这里还留下了一个问题,如何来避免求解Q。
预知后事如何,请听下回分解。
欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen
林轩田之机器学习课程笔记( embedding numerous feature之dual support vector machine)(32之18)相关推荐
- 林轩田之机器学习课程笔记( embedding numerous feature之support vector regression)(32之22)
概要 带核函数的岭回归 支持向量回归原问题 支持向量回归的对偶问题 核函数模型总结 欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen 题目可能不全,因为有字数限制,不 ...
- 林轩田之机器学习课程笔记(when can machines learn之learning problem)(32之1)
前言 课程简介 什么是机器学习 为什么要用机器学习 机器学习的应用 机器学习的构成 机器学习和其他领域的关系 欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen 前言 ...
- 林轩田之机器学习课程笔记( how can machines learn better之three learning principles)(32之16)
概要 奥卡姆剃刀 抽样偏差 数据偷看 三的力量 欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen 概要 上节讲到了交叉验证,采用这种方法模拟做测试的过程,从而调整超参 ...
- 台湾大学林轩田机器学习技法课程学习笔记2 -- Dual Support Vector Machine
红色石头的个人网站:redstonewill.com 上节课我们主要介绍了线性支持向量机(Linear Support Vector Machine).Linear SVM的目标是找出最"胖 ...
- 【本站原创】台大林轩田《机器学习基石》系列课程教材的习题解答和实现
台湾大学林轩田老师的<机器学习基石>.<机器学习技法>课程由浅入深.内容全面,基本涵盖了机器学习领域的很多方面.其作为机器学习的入门和进阶资料非常适合.本站实现了课程教材的绝大 ...
- 台大林轩田《机器学习基石》系列课程教材的习题更新完毕了
台湾大学林轩田老师的<机器学习基石>.<机器学习技法>课程由浅入深.内容全面,基本涵盖了机器学习领域的很多方面.其作为机器学习的入门和进阶资料非常适合.本站实现了课程教材的绝大 ...
- 首发:台大林轩田《机器学习基石》系列课程教材的习题解答和实现
台湾大学林轩田老师的<机器学习基石>.<机器学习技法>课程由浅入深.内容全面,基本涵盖了机器学习领域的很多方面.其作为机器学习的入门和进阶资料非常适合.本站实现了课程教材的绝大 ...
- 林轩田《机器学习基石》资源汇总(视频+学习笔记+书)
来源 | AI有道(公众号ID:redstonewill) ▌课程介绍 台湾大学林轩田老师的<机器学习基石>课程由浅入深.内容全面,基本涵盖了机器学习领域的很多方面.其作为机器学习的入门和 ...
- 台湾大学林轩田教授机器学习基石课程理解及python实现----PLA
最近在班主任的带领下,开始观看台湾大学林轩田教授的机器学习基石课程,虽然吧,台湾人,汉语说得蛮6,但是还是听着怪怪的,不过内容非常值得刚刚入门的机器学习 小白学习,话不多说,直接进入正题. 1.基本介 ...
- 假期福利 | 林轩田《机器学习基石》资源汇总
AI有道 不可错过的AI技术公众号 关注 课程介绍 台湾大学林轩田老师的<机器学习基石>课程由浅入深.内容全面,基本涵盖了机器学习领域的很多方面.其作为机器学习的入门和进阶资料非常适合.而 ...
最新文章
- 《Java: The Complete Reference》等书读书笔记
- 对付惰性必杀:(10+2)*5法
- 高性能key-value数据库
- 手把手教你建网站--程序小白适用篇
- SAP Spartacus ng serve 之后,localhost 4200 会后面自动添上 electronics-spa 吗?
- 数据库人员面试:SQL Server常用测试题
- linux端口爆破软件,Linux网络安全:端口扫描软件 nmap
- 数据结构之外部排序:归并排序法
- 拿来就能用!几步搭建一套简单直播系统 | 原力计划
- 父母延长退休,作为程序员的我光荣失业
- html与js简单小游戏,JS实现简单贪吃蛇小游戏
- java ssh 框架下 利用junit4 spring-test进行单元测试
- sas 安装后处理出错
- java号码池_Java常量池详解
- 软件工程入门基本知识
- 计算机右键管理没有管理员权限,win7系统右键菜单没有“以管理员身份运行”选项如何恢复...
- win7系统文件夹共享后有锁图标怎么去掉?
- 【论文复现】ARBITRAR : User-Guided API Misuse Detectionl
- HyperLynx(十一)BoardSim和PCB板级仿真分析(二)
- Zoomit默认快捷键
热门文章
- 子目录和子域名哪个好?子目录和子域名如何利用seo优化?
- SDCC 2016数据库架构技术峰会(深圳站),PPT全回顾
- 房地产企业与项目管理
- 使用键盘设置桌面计算机图标的显示不出来,显示桌面,小编教你显示桌面图标不见了如何恢复...
- java的duplicate用法_Java FloatBuffer duplicate()用法及代码示例
- 【图像压缩】基于余弦变换及霍夫曼编码实现jpeg压缩和解压附matlab代码
- mac日历与iphone日历不无法同步问题
- Error: Network Error
- QScrollArea qt滚动区域的简单使用
- 安装免费在线客服livezilla系统