课程主页

课程视频和PPT

上一节课,我们介绍了分类问题的三种线性模型,可以用来解决binary classification和multiclass classification问题。本节课主要介绍非线性的模型来解决分类问题。

目录

1. Quadratic Hypothesis

2. Nonlinear Transform

3. Price of Nonlinear Transform

4. Structured Hypothesis Sets

5. 总结


1. Quadratic Hypothesis

之前介绍的线性模型,在2D平面上是一条直线,在3D空间中是一个平面,在高维空间中是一个超平面。数学上,我们用线性得分函数s来表示:.其中,x为特征值向量,w为权重,s是线性的。

线性模型的优点就是,它的VC Dimension比较小,保证了。但是缺点也很明显,对某些非线性问题(线性不可分),可能会造成很大,虽然,但是也造成很大,分类效果不佳。

为了解决线性模型的缺点,我们可以使用非线性模型来进行分类。例如数据集D不是线性可分的,而是圆形可分的,圆形内部是正类,外面是负类。假设它的hypotheses可以写成:

基于这种非线性思想,我们之前讨论的PLA、Regression问题都可以有非线性的形式进行求解。

下面介绍如何设计这些非线性模型的演算法。还是上面介绍的平面圆形分类例子,它的h(x)的权重,但是h(x)的特征不是线性模型的,而是.我们令,那么h(x)变成:

这种的转换可以看成是x空间的点映射到z空间中去,而在z域中,可以用一条直线(或超平面,总之是线性可分)进行分类,也就是从x空间的圆形可分映射到z空间的线性可分。z域中的直线对应于x域中的圆形。因此,我们把这个过程称之为特征转换(Feature Transform)。通过这种特征转换,可以将非线性模型转换为另一个域中的线性模型。

已知x域中圆形可分在z域中是线性可分的,那么反过来,如果在z域中线性可分,是否在x域中一定是圆形可分的呢?答案是否定的。由于权重向量w取值不同,x域中的hypothesis可能是圆形、椭圆、双曲线等等多种情况。

目前讨论的x域中的圆形都是圆心过原点的,对于圆心不过原点的一般情况, 映射公式包含的所有项为:

也就是说,对于二次hypothesis,它包含二次项、一次项和常数项1,z域中每一条线对应x域中的某二次曲线的分类方式,也许是圆,也许是椭圆,也许是双曲线等等。那么z域中的hypothesis可以写成:

2. Nonlinear Transform

上一部分我们定义了什么是二次hypothesis,那么这部分将介绍如何设计一个好的二次hypothesis来达到良好的分类效果。那么目标就是在z域中设计一个最佳的分类线。

其实,做法很简单,利用映射变换的思想,通过映射关系,把x域中的最高阶二次的多项式转换为z域中的一次向量,也就是从quardratic hypothesis转换成了perceptrons问题。用z值代替x多项式,其中向量z的个数与x域中x多项式的个数一致(包含常数项)。这样就可以在z域中利用线性分类模型进行分类训练。训练好的线性模型之后,再将z替换为x的多项式就可以了。具体过程如下:

整个过程就是通过映射关系,换个空间去做线性分类,重点包括两个:

  • 特征转换
  • 训练线性模型

其实,我们以前处理机器学习问题的时候,已经做过类似的特征变换了。比如数字识别问题,我们从原始的像素值特征转换为一些实际的concrete特征,比如密度、对称性等等,这也用到了feature transform的思想。

3. Price of Nonlinear Transform

若x特征维度是d维的,也就是包含d个特征,那么二次多项式个数,即z域特征维度是:

如果x特征维度是2维的,即,那么它的二次多项式为,有6个。

现在,如果阶数更高,假设阶数为Q(Q次多项式),那么对于x特征维度是d维的,它的z域特征维度为:

由上式可以看出,计算z域特征维度个数的时间复杂度是Q的d次方,随着Q和d的增大,计算量会变得很大。同时,空间复杂度也大。也就是说,这种特征变换的一个代价是计算的时间、空间复杂度都比较大。

另一方面,z域中特征个数随着Q和d增加变得很大,同时权重w也会增大,即自由度增加(可以调节的参数增加),VC Dimension增大。令z域中的特征维度是,则在z域中,任何个输入都不能被shattered;同样,在x域中,任何个输入也都不能被shattered。是VC Dimension的上界,如果很大的时候,相应的VC Dimension就会很大。根据之前章节课程的讨论,VC Dimension过大,模型的泛化能力会比较差。

下面通过一个例子来解释为什么VC Dimension过大,会造成不好的分类效果:

上图中,左边是用直线进行线性分类,有部分点分类错误;右边是用四次曲线进行非线性分类,所有点都分类正确,那么哪一个分类效果好呢?单从平面上这些训练数据来看,四次曲线的分类效果更好,但是四次曲线模型很容易带来过拟合的问题,虽然它的比较小,从泛化能力上来说,还是左边的分类器更好一些。也就是说VC Dimension过大会带来过拟合问题, 不能太大。

那么如何选择合适的Q,来保证不会出现过拟合问题,使模型的泛化能力强呢?一般情况下,为了尽量减少特征自由度,我们会根据训练样本的分布情况,人为地减少、省略一些项。但是,这种人为地删减特征会带来一些“自我分析”代价,虽然对训练样本分类效果好,但是对训练样本外的样本,不一定效果好。所以,一般情况下,还是要保存所有的多项式特征,避免对训练样本的人为选择。

4. Structured Hypothesis Sets

下面,我们讨论一下从x域到z域的多项式变换。首先,如果特征是0次的话,那么变换多项式只有常数项:

如果特征是一次的,变换多项式包含了:

如果特征是二次的,变换多项式包含了:

以此类推,如果特征是Q次,那么它的变换多项式为:

那么对于不同阶次构成的hypothesis有如下关系:

我们把这种结构叫做Structured Hypothesis Sets:

那么对于这种Structured Hypothesis Sets,它们的VC Dimension满足下列关系:

它的满足下列关系:

从上图中也可以看到,随着变换多项式的阶数增大,虽然 逐渐减小,但是model complexity会逐渐增大,造成很大,所以阶数不能太高。

那么,如果选择的阶数很大,确实能使接近于0,但是泛化能力通常很差,我们把这种情况叫做tempting sin。所以,一般最合适的做法是先从低阶开始,如先选择一阶hypothesis,看看是否很小,如果足够小的话就选择一阶,如果大的话,再逐渐增加阶数,直到满足要求为止。也就是说,尽量选择低阶的hypothes,这样才能得到较强的泛化能力。

5. 总结

这节课主要介绍了非线性分类模型,通过非线性变换,将非线性模型映射到另一个空间,转换为线性模型(在当前维度空间中线性不可分的数据,可以通过映射(引入多项式),将其映射到高维空间或其他空间,使其线性可分),再来进行线性分类。本节课完整介绍了非线性变换的整体流程,以及非线性变换可能会带来的一些问题:时间复杂度和空间复杂度的增加。最后介绍了在要付出代价的情况下,使用非线性变换的最安全的做法,尽可能使用简单的模型,而不是模型越复杂越好。

机器学习 | 台大林轩田机器学习基石课程笔记12 --- Nonlinear Transformation相关推荐

  1. 机器学习 | 台大林轩田机器学习基石课程笔记3 --- Types of Learning

    课程主页 课程视频和PPT 上节课我们主要介绍了解决线性分类问题的一个简单的方法:PLA.PLA能够在平面中选择一条直线将样本数据完全正确分类(前提数据是线性可分的,在高维空间中,可以用一个超平面完全 ...

  2. 台大林轩田·机器学习基石记要

    台大林轩田·机器学习基石记要 昨天开始看林轩田的机器学习基石,从今天起开始去粗取精 第一讲比较基础,一些概念自己早已经理解了,所以不再做笔记,有点印象的是讲到了ML.DL.AI的一些联系与区别,ML主 ...

  3. 台大林轩田·机器学习技法记要

    台大林轩田·机器学习技法 记要 6/1/2016 7:42:34 PM 第一讲 线性SVM 广义的SVM,其实就是二次规划问题 把SVM问题对应到二次规划的系数 这就是线性SVM,如果想变成非线性,只 ...

  4. 台大·林轩田·机器学习基石·第二讲

    第二讲···感知机学习算法 2-1 Perceptron hypothesis set 对于银行是否决定要给申请者信用卡问题,对于输入数据(例如申请者的个人信息,年龄,性别,收入,工作情况等)可用一组 ...

  5. 台大林轩田机器学习基石学习笔记(一):The Learning Problem

    这里写自定义目录标题 写在前面 一.What is Machine Learning 二.Applications of Machine Learning 三.Components of Machin ...

  6. 台大林轩田机器学习技法完全解读

    支持向量机(SVM)完全解读 集成学习完全解读 神经网络深度学习完全解读 感谢林轩田老师!

  7. [机器学习基础][台大林轩田]机器学习概念

    什么是机器学习 什么是"学习"?学习就是人类通过观察.积累经验,掌握某项技能或能力.就好像我 们从小学习识别字母.认识汉字,就是学习的过程.而机器学习(Machine Learni ...

  8. 【本站原创】台大林轩田《机器学习基石》系列课程教材的习题解答和实现

    台湾大学林轩田老师的<机器学习基石>.<机器学习技法>课程由浅入深.内容全面,基本涵盖了机器学习领域的很多方面.其作为机器学习的入门和进阶资料非常适合.本站实现了课程教材的绝大 ...

  9. 台大林轩田《机器学习基石》系列课程教材的习题更新完毕了

    台湾大学林轩田老师的<机器学习基石>.<机器学习技法>课程由浅入深.内容全面,基本涵盖了机器学习领域的很多方面.其作为机器学习的入门和进阶资料非常适合.本站实现了课程教材的绝大 ...

最新文章

  1. Configure,Makefile.am, Makefile.in, Makefile文件之间关系
  2. 那个脑袋生锈的我写的东西
  3. web项目错误页面友好处理404,500等
  4. w7怎么查看电脑配置_学室内设计,对电脑配置有何要求?不懂戳这!
  5. 九九乘法表的C语言实现
  6. vue 2 使用 Bus.js 实现兄弟 (非父子) 组件通信 简单案例
  7. 元宇宙是个啥?送4本科普好书
  8. 我发现有的人就活该他赚钱,他们的脑子就是个聚宝盆
  9. qt通过http连接mysql_Qt如何利用MySQL连接远程数据库?
  10. 2018CCPC网络赛 HDU 6444: G. Neko's loop(线段树)
  11. ASP(从前) vs ASP.NET(之后)
  12. html自动播放音乐播放器代码,[界面设计] 关于HTML 音乐播放器代码|音乐播放器网页代码大全(转)...
  13. SQL Server无法连接客户端的问题
  14. 2021如何提升网站的排名?SEO
  15. Microsoft Edge浏览器打开就是360导航的问题解决方法
  16. 【基于51】红外寻迹智能小车-硬件篇
  17. 【Keil变量定义】定义extern类型变量
  18. 没键盘计算机能启动吗,电脑没有接鼠标键盘为什么会影响电脑的正常开机?
  19. AUTOSAR Network Wakeup(Can) Configuration
  20. 凑单这个技术活,阿里工程师怎么搞?

热门文章

  1. pumping lemma
  2. js获取PC设备信息,js获取手机设备信息,最全
  3. 柠檬班培训1软件测试
  4. mac更新go到最新版本
  5. php tp 聚合数据接口,TP5结合聚合数据天气预报API查询天气
  6. 项目初始化报 404 Not Found - GET https://registry.npmjs.org(转)
  7. Photoshop CS4 CS5 CS6永久序列号全面整理
  8. Mapreduce Wordcount白名单 Python实现
  9. Qt编写安防视频监控系统61-子模块5设备控制
  10. [51Nod](1278)相离的圆 ---- 二分查找