[置顶] 台大机器学习笔记-Kernel 支持向量机
2016-06-12 20:43
295 查看
Kernel support vector machine
1.在上一讲中我们已经推出了对偶问题的二次规划问题:
在解这个二次规划问题的时候,变量和条件的数量都在N左右,跟特征维数看似没什么关系了,但是仔细看q_(n,m),里面依旧包含了特征维数,那么在求解释,如果特征维数很高,求解二次规划的为题依然很难!为了加速q的求解,让两个Z的内积更快。
如果从x空间来看,Z的内积可已看作两个步骤,就是先将x转换到Z空间,再做内积,即:
2.那么此时我们是否能找到一种方法直接将这两个步骤联合起来,专业术语叫做偷吃步,那么如何能做到这一点呢?
假设Z中最高次为二次项,那么x转化到Z空间就如ϕ_2 (x),那么Z的内积就可以有图中推导所得,可以发现,此时的Z的内积,本来要花两步,现在只用求解x空间x自身的内积就够了!那么此时达到了一个什么效果,就是在求解对偶问题中二次规划里的q是,我们彻底特征维数的限制。此时我们就把这个转换称为,核函数:
3.那么根据这个核函数的定义以及前面对偶形式得出的支持向量机的条件,我们可以化简很多求解的公式:
那么在整个SVM的求解过程中,都可以用到这个偷吃步,kernel trick!
5.以上介绍只是特殊的二次转换,当然一般多项式核的形式为:
当其中的系数为0,1,1时就是我们熟悉的最简单的线性核函数。在机器学习实践的过程中,可以先试线性核,效果不好的时候再去采用更高次的核。
6.以上的核最多也是在Q次多项式,那么如果我们想将偷吃步做到极致,就是Z空间里特征的维数为无限多维,那么在这种情况下我们怎样通过偷吃步也能进行有效的计算,那么就引入了高斯核函数,那么为何高斯核为何是两个无限多维的Z的内积呢?推导如下:
那么此时我们将之前的Z的内积换成现在的高斯核,就能求解SVM问题,那么它的SVM结果就是基于支持向量的高斯函数的线性组合,且将x映射到了无限多维的空间里面:
1.在上一讲中我们已经推出了对偶问题的二次规划问题:
在解这个二次规划问题的时候,变量和条件的数量都在N左右,跟特征维数看似没什么关系了,但是仔细看q_(n,m),里面依旧包含了特征维数,那么在求解释,如果特征维数很高,求解二次规划的为题依然很难!为了加速q的求解,让两个Z的内积更快。
如果从x空间来看,Z的内积可已看作两个步骤,就是先将x转换到Z空间,再做内积,即:
2.那么此时我们是否能找到一种方法直接将这两个步骤联合起来,专业术语叫做偷吃步,那么如何能做到这一点呢?
假设Z中最高次为二次项,那么x转化到Z空间就如ϕ_2 (x),那么Z的内积就可以有图中推导所得,可以发现,此时的Z的内积,本来要花两步,现在只用求解x空间x自身的内积就够了!那么此时达到了一个什么效果,就是在求解对偶问题中二次规划里的q是,我们彻底特征维数的限制。此时我们就把这个转换称为,核函数:
3.那么根据这个核函数的定义以及前面对偶形式得出的支持向量机的条件,我们可以化简很多求解的公式:
那么在整个SVM的求解过程中,都可以用到这个偷吃步,kernel trick!
5.以上介绍只是特殊的二次转换,当然一般多项式核的形式为:
当其中的系数为0,1,1时就是我们熟悉的最简单的线性核函数。在机器学习实践的过程中,可以先试线性核,效果不好的时候再去采用更高次的核。
6.以上的核最多也是在Q次多项式,那么如果我们想将偷吃步做到极致,就是Z空间里特征的维数为无限多维,那么在这种情况下我们怎样通过偷吃步也能进行有效的计算,那么就引入了高斯核函数,那么为何高斯核为何是两个无限多维的Z的内积呢?推导如下:
那么此时我们将之前的Z的内积换成现在的高斯核,就能求解SVM问题,那么它的SVM结果就是基于支持向量的高斯函数的线性组合,且将x映射到了无限多维的空间里面:
相关文章推荐
- 【忽略】Python操作数据库
- [Android]使用Intent跳转至桌面首页
- Spring 事务
- Python 偏函数
- JZOJ 4485【GDOI 2016 Day1】第一题 中学生数学题
- $a && $b = $c的问题
- sqlite3使用简介
- window下systemc的环境搭建
- c++11多线程简介
- centos下使用yum 安装percona xtrabackup
- Java配置环境变量
- 试问CodeFile、CodeBehind深几许?
- 本周学习进度
- 所有排序算法
- 《JAVA与模式》之策略模式
- 第九周项目一深复制体验一
- 1.Linux应用编程——文件
- MyBatis基础(一)
- Android高性能ORM数据库DBFlow入门
- Sprint第二个冲刺(第十一天)