【Linear Support Vector Machine】林轩田机器学习技法
首先从介绍了Large_margin Separating Hyperplane的概念。

(在linear separable的前提下)找到largest-margin的分界面,即最胖的那条分界线。下面开始一步步说怎么找到largest-margin separating hyperplane。
接下来,林特意强调了变量表示符号的变化,原来的W0换成了b(这样的表示利于推导;觉得这种强调非常负责任,利于学生听懂,要不然符号换来换去的,谁知道你说的是啥)

既然目标是找larger-margin separable hyperplane,那就得先弄明白一个点到平面的距离是啥。

假设x'是平面上的点,x是平面外的点;那么x到平面的距离可以用x-x'再投影到平面法向量w上。
有了点到hyperplane的表达式,就可以把我们需要的larger-margin条件的分类面的求解条件表示出来。

由于假设是数据是linear separable的,所以有yn(W'xn+b)>0。
这时候看subject to部分:
(1)every那条保证了求出的超平面一定是可以分开的
(2)margin那条包含两个意思:
a. 啥叫margin啊?就是离hyperplane最近的点到hyperplane的距离;每个给定的满足条件的hyperplane,都对应一个margin(b,W)
b. 也就是说:一个(b, W)就对应一个hyperplane → 如果hyperplane满足yn(W'xn+b)>0(n=1,...,N)→ 则对应一个margin(b,W)
这样连起来看就捋清晰了:对于某一个separable hyperplane,求margin(b,W)是一个求min的过程;对于所有separable hyperplane产生的margins,求所有margins里面最大的那个margin是一个求max的过程。
截至到上面,larger-margin separable hyperplane的问题就列清楚了。下面开始,就是如何不断简化上约束条件和求解目标。

这里直接从margin的表达式入手,强行指定min yn(W'xn+b)=1 (n=1,...,N);这样margin的表达式就变成了1/||W||这个形式。
我看过的一些资料,对这个的解释就是:对(b,W)放缩大小,使得margin上的点yn(W'xn+b)=1。
上面的说法比较直观,从几何角度规定了这样一个简化方法;但是这种一笔带过的解释并不能使我完全信服,下面从公式的角度解释一下为什么可以做上面的替换。
对于某个hyperplane(b,W)来说,margin是min (1/||W||) * (yn(W'xn+b)),如果直接让yn(W'xn+b)=1,凭什么说1/||W||还是margin呢?
可以这样想:
(1)假设对于某个hyperplane(b,W)来说,margin的值是v(确定的值)→
(2)min (1/||W||) * (yn(W'xn+b)) = v (n=1,...,N) →
(3)min 1/ (||W||/s) * (yn(W'xn/s+b/s)) = v (n=1,...,N) →
(4)令yn(W'xn/s+b/s) = 1 ,再令Wnew = W/s , bnew = b/s →
(5)则有 min (1/||Wnew||) * (yn(Wnew'xn+bnew)) = v (n=1,...,N) →
(6)1/||Wnew|| = v
==================================================
2015-09-09
至于为什么可以放缩w'xn+b,可以从几何角度来理解。以两维输入特征为例:
超平面的方程是:
(1)x1+x2+1:w=[1, 1]' , b=1
(2)10x1+10x2+10:w=[10,10]', b=10
看这两个方程,虽然w和b都不同,但是其实是同一条线。
(1)法向量方向相同,大小不同
(2)直线到(0,0)点的距离都是1/sqrt(2)
==================================================
通过以上6个步骤,令min yn(W’xn+b)=1的背后道理明确了。再进一步简化约束条件,如下:

上面用了一个反证法说明这种替代是可行的。
另外,还有一点需要强点:这里之所以敢把最优化目标函数设定为1/2W'W正是因为,只有当yn(W‘xn+b)=1的时候才能取到最优化的结果。
接下来,用一个例子引出了Support Vector的概念。

用于hyperplane的这些vector称为support vector。
下面的内容,让我耳目一新。

到上面,突然没有乱七八糟的事情了;林直接说,这是一个典型的quadratic programming(QP)问题;
典型的特点:最优化的表达式是二次的;即这种问题是有常规套路去解的。

怎么按照QP的常规套路去搞呢?整理出来几个参数就OK了。看到这里,似乎有些傻掉了:说好的KKT那些玩意呢?都不讲了么?
到这里想想也没有啥必要了,都QP直接解出来了,还啥KKT啊。
接下来解释了Large-Margin Hyperplane的背后道理。
Large-Margin控制模型复杂度,控制VC维。

简而言之,Large-Margin的好处就是在带入non-linear transform的情况下,可以控制模型的复杂度。

【Linear Support Vector Machine】林轩田机器学习技法的更多相关文章
- 【Dual Support Vector Machine】林轩田机器学习技法
这节课内容介绍了SVM的核心. 首先,既然SVM都可以转化为二次规划问题了,为啥还有有Dual啥的呢?原因如下: 如果x进行non-linear transform后,二次规划算法需要面对的是d`+1 ...
- 【Support Vector Regression】林轩田机器学习技法
上节课讲了Kernel的技巧如何应用到Logistic Regression中.核心是L2 regularized的error形式的linear model是可以应用Kernel技巧的. 这一节,继续 ...
- 【Matrix Factorization】林轩田机器学习技法
在NNet这个系列中讲了Matrix Factorization感觉上怪怪的,但是听完第一小节课程就明白了. 林首先介绍了机器学习里面比较困难的一种问题:categorical features 这种 ...
- 【Deep Learning】林轩田机器学习技法
这节课的题目是Deep learning,个人以为说的跟Deep learning比较浅,跟autoencoder和PCA这块内容比较紧密. 林介绍了deep learning近年来受到了很大的关注: ...
- 【Radial Basis Function Network】林轩田机器学习技法
这节课主要讲述了RBF这类的神经网络+Kmeans聚类算法,以及二者的结合使用. 首先回归的了Gaussian SVM这个模型: 其中的Gaussian kernel又叫做Radial Basis F ...
- 【Neural Network】林轩田机器学习技法
首先从单层神经网络开始介绍 最简单的单层神经网络可以看成是多个Perception的线性组合,这种简单的组合可以达到一些复杂的boundary. 比如,最简单的逻辑运算AND OR NOT都可以由多 ...
- 【Adaptive Boosting】林轩田机器学习技法
首先用一个形象的例子来说明AdaBoost的过程: 1. 每次产生一个弱的分类器,把本轮错的样本增加权重丢入下一轮 2. 下一轮对上一轮分错的样本再加重学习,获得另一个弱分类器 经过T轮之后,学得了T ...
- 【Random Forest】林轩田机器学习技法
总体来说,林对于random forest的讲解主要是算法概况上的:某种程度上说,更注重insights. 林分别列举了Bagging和Decision Tree的各自特点: Random Fores ...
- 【Decision Tree】林轩田机器学习技法
首先沿着上节课的AdaBoost-Stump的思路,介绍了Decision Tree的路数: AdaBoost和Decision Tree都是对弱分类器的组合: 1)AdaBoost是分类的时候,让所 ...
随机推荐
- SAP成都C4C小李探花:浅谈Fiori Design Guidelines
Jerry: 我和周帅认识不久,自去年7月SAP成都研究院Cloud for Customer(以下简称为C4C)开发团队组建至今,根据这段时间和周帅愉快的合作经历,我觉得如果把周帅比作我读过的小说里 ...
- 使用selenium grid与BrowserMobProxyServer联合使用
背景:项目主要是做埋点数据,要使用 BrowserMobProxyServer,它相当于做一个代理,在你访问一个网页时,通过代理,获取打开网页的数据,对比你需要对比数据,所以这个工具提供获取页面请求的 ...
- Java nio socket与as3 socket(粘包解码)连接的应用实例
对Java nio socket与as3 socket连接的简单应用 <ignore_js_op>Java nio socket与as3 socket连接的应用实例.rar (9.61 K ...
- 2017.9.21 HTML学习总结---多媒体播放系统设计
1.题目:整个页面被划分三个子窗口,上面窗口为页面功能提示区, 下左部分为不同类型播放的功能选项,下右部分为播放系统显示播放信息窗口. (1)网页设计框架: <html> <head ...
- css隐藏元素的六类13种方法
隐藏元素的方法 隐藏元素的方法可以总结为六类:直接隐藏.对溢出内容隐藏.对元素透明度进行调整.将元素移除当前屏幕.对元素的层级关系进行调整.对元素进行裁剪 只有对元素的透明度进行调整才可以点击,其余都 ...
- 搭建ssm中遇到的问题
1.多模块pom.xml文件无效 原因是没有指定模块
- javaweb基础(39)_数据库连接池
一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大 ...
- 【洛谷P3390】矩阵快速幂
矩阵快速幂 题目描述 矩阵乘法: A[n*m]*B[m*k]=C[n*k]; C[i][j]=sum(A[i][1~n]+B[1~n][j]) 为了便于赋值和定义,我们定义一个结构体储存矩阵: str ...
- 旧文备份:VC中嵌入NASM编写的汇编函数
在公司开发的RT下没法使用C库,并且替代库函数没有几个,需要用到setjmp和longjmp函数,没办法,只能自己想办法了,上sourceforge淘换到一个小日本的工程,提供这两个函数的替代源码,名 ...
- CNN训练中的技巧
转自: http://weibo.com/p/1001603816330729006673 说明:这个翻译应该是来自原文:http://yyue.blogspot.hk/2015/01/a-brief ...