机器学习技法总结(一):支持向量机(linear support vector machine,dual support vector machine)
第一阶段技法:
large margin (the relationship between large marin and regularization), hard-SVM,soft-SVM,dual problem(解对偶问题),kernel trick,kernel logistic regression,
主要思路是:(这里不区分线性与非线性,差别只是特征空间转换,X空间与Z空间的关系)
1. 从PLA出发,对于二维平面的二分类问题,PLA可能得出一堆能够正确分类的直线,但是哪一条直线会是最好的呢?我们应当如何评价分类的好坏呢?从而导出了large margin 和 support vector的概念。
具有large margin的那条直线具有更好的抗干扰能力,鲁棒性好。而影响margin大小的其实就是在fat边界上的那些数据,这些数据叫做support vector(candidate)。所以,就有了这样的一个优化目标,如何通过调节w使得margin最大。后面就是一系列的数学优化推导,最后转化为二次规划问题得到解决。
下面说明large margin背后所隐藏的一些可以解释为何large margin会“好”的原因:1)从regularization角度看,large margin所对应的优化函数,类似于加了regularizer的线性分类/回归问题,也就是说,large margin对应着regularization;
2)从VC dimension的角度来讲,large margin其实是减少了hypothesis能够shutter的dichotomy(二分类)的数量,也就是说减少了VC dimension,使得模型可以控制overfitting。
2. 我们另一个动机就是:能不能将X特征空间转化到无限维度的特征空间呢?同时为了保证Hoeffding's 不等式对VC dimension的限制及计算量上的限制,则希望转化后的Z空间的VC dimension不跟W的自由度d相关。
因此,开始研究svm的dual problem(对偶问题)。在不断的推导和求解dual support vector machine问题时,用到了著名的KKT条件:
通过上面给的推导和解释,我们可以看到,实际上W值是由on fat boundary上面的support vector线性表出的(这就是后面要讲到的表示定理)。数学的推导与理论分析都说明support vector才是主导我们进行模型选择所用到的数据。
所以,现在重新限制support vector,刚开始我们提出的边界上的data叫做support vector(candidate),而这个通过解dual问题得到的决定W的alpha不为零的data就叫做support vector。
回想PLA,类似support vector machine,这个W都是可以通过样本点线性表出的;PLA实际上是通过犯错误的点表出,而support vector machine则是通过support vector线性表出的。
这就是原始的svm和dual svm的对比。
到目前为止,我们还没有解决W的维度d和计算量的评估,下面将通过一个叫做kernel trick的方法,实现无限维度的特征转换。
机器学习技法总结(一):支持向量机(linear support vector machine,dual support vector machine)的更多相关文章
- 机器学习技法笔记:01 Linear Support Vector Machine
Roadmap Course Introduction Large-Margin Separating Hyperplane Standard Large-Margin Problem Support ...
- 机器学习技法:06 Support Vector Regression
Roadmap Kernel Ridge Regression Support Vector Regression Primal Support Vector Regression Dual Summ ...
- 机器学习技法笔记:06 Support Vector Regression
Roadmap Kernel Ridge Regression Support Vector Regression Primal Support Vector Regression Dual Summ ...
- 机器学习技法笔记(2)-Linear SVM
从这一节开始学习机器学习技法课程中的SVM, 这一节主要介绍标准形式的SVM: Linear SVM 引入SVM 首先回顾Percentron Learning Algrithm(感知器算法PLA)是 ...
- 机器学习技法之Aggregation方法总结:Blending、Learning(Bagging、AdaBoost、Decision Tree)及其aggregation of aggregation
本文主要基于台大林轩田老师的机器学习技法课程中关于使用融合(aggregation)方法获得更好性能的g的一个总结.包含从静态的融合方法blending(已经有了一堆的g,通过uniform:voti ...
- 机器学习技法课之Aggregation模型
Courses上台湾大学林轩田老师的机器学习技法课之Aggregation 模型学习笔记. 混合(blending) 本笔记是Course上台湾大学林轩田老师的<机器学习技法课>的学习笔记 ...
- 【Matrix Factorization】林轩田机器学习技法
在NNet这个系列中讲了Matrix Factorization感觉上怪怪的,但是听完第一小节课程就明白了. 林首先介绍了机器学习里面比较困难的一种问题:categorical features 这种 ...
- 机器学习常见面试题—支持向量机SVM
前言 总结了2017年找实习时,在头条.腾讯.小米.搜狐.阿里等公司常见的机器学习面试题. 支持向量机SVM 关于min和max交换位置满足的 d* <= p* 的条件并不是KKT条件 Ans: ...
- Coursera台大机器学习技法课程笔记01-linear hard SVM
极其淡腾的一学期终于过去了,暑假打算学下台大的这门机器学习技法. 第一课是对SVM的介绍,虽然之前也学过,但听了一次感觉还是很有收获的.这位博主总结了个大概,具体细节还是 要听课:http://www ...
随机推荐
- python——使用xlwing库进行Excel操作
Excel是现在比不可少的数据处理软件,python有很多支持Excel操作的库,xlwing就是其中之一. xlwings的安装 xlwings库使用pip安装: 在控制台输入 pip instal ...
- MP4文件批量转码成MP3
需求背景:最近为了学python爬虫,在论坛里找了不少视频教程,非常棒.但有时看视频不方便,就想着能否把视频批量转码成音频,这样在乘坐地铁公交的时候也能学习了. 解决路径:有了需求,我首先在论坛里搜了 ...
- MySql常用函数大全
MySql常用函数大全 MySQL数据库中提供了很丰富的函数.MySQL函数包括数学函数.字符串函数.日期和时间函数.条件判断函数.系统信息函数.加密函数.格式化函数等.通过这些函数,可以简化用户的操 ...
- OLED液晶屏幕(0)自动获取12ic地址液晶屏幕
. 烧录 串口可以看到输出的地址 #include <Wire.h> void setup(){ Wire.begin(); Serial.begin(9600); Serial.prin ...
- [ARIA] aria-describedby & aria-labelledby
When to use describedby: For example you have a close button: <button aria-describedby="clos ...
- CI持续集成 -- git 与 gitlab
版本控制系统概述 git Git基本概述 Git是一个免费的开源分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有内容. Git安装配置 #安装Git yum install -y git ...
- openjdk k8s port-forward 连接容器jmx服务
jmx 是java 自带的,如果需要使用我们只需要添加对应的配置即可,以下演示docker 集成jmx 使用kompose 生成k8s 的部署文件,使用port-forward 进行连接,所以java ...
- [译博文]CUDA是什么
翻译自:https://blogs.nvidia.com/blog/2012/09/10/what-is-cuda-2/ 你可能并没有意识到,GPU的应用有多广泛,它不但用于视频.游戏以及科学研究中, ...
- 第03组 团队git现场编程实战
1.组员职责分工 张逸杰:复制监督整个编程任务的进程以及协助组员编程 黄智锋.刘汪洋:负责UI设计 苏凯婷.鲍冰如:爬取数据并负责测评出福州最受欢迎的商圈 陈荣杰.杨锦镔:爬取数据并负责测评出福州人均 ...
- (转)React事件处理函数必须使用bind(this)的原因
1.JavaScript自身特性说明如果传递一个函数名给一个变量,之后通过函数名()的方式进行调用,在方法内部如果使用this则this的指向会丢失.示例代码:首先我们创建test对象并直接调用方法 ...