红色石头的个人网站:redstonewill.com

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

一、Quadratic Hypothesis

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

线性模型的优点就是,它的VC Dimension比较小,保证了Ein≈EoutEin≈EoutE_{in}\approx E_{out}。但是缺点也很明显,对某些非线性问题,可能会造成EinEinE_{in}很大,虽然Ein≈EoutEin≈EoutE_{in}\approx E_{out},但是也造成EoutEoutE_{out}很大,分类效果不佳。

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

hSEP(x)=sign(−x21−x22+0.6)hSEP(x)=sign(−x12−x22+0.6)

h_{SEP}(x)=sign(-x_1^2-x_2^2+0.6)
基于这种非线性思想,我们之前讨论的PLA、Regression问题都可以有非线性的形式进行求解。

下面介绍如何设计这些非线性模型的演算法。还是上面介绍的平面圆形分类例子,它的h(x)的权重w0=0.6,w1=-1,w2=-1,但是h(x)的特征不是线性模型的(1,x1,x2)(1,x1,x2)(1,x_1,x_2),而是(1,x21,x22)(1,x12,x22)(1,x_1^2,x_2^2)。我们令z0=1z0=1z_0=1,z1=x21z1=x12z_1=x_1^2,z2=x22z2=x22z_2=x_2^2,那么,h(x)变成:

h(x)=sign(w˘0⋅z0+w˘1⋅z1+w˘2⋅z2)=sign(0.6⋅z0−1⋅z1−1⋅z2)=sign(w˘Tz)h(x)=sign(w˘0⋅z0+w˘1⋅z1+w˘2⋅z2)=sign(0.6⋅z0−1⋅z1−1⋅z2)=sign(w˘Tz)

h(x)=sign(\breve{w}_0\cdot z_0+\breve{w}_1\cdot z_1+\breve{w}_2\cdot z_2)=sign(0.6\cdot z_0-1\cdot z_1-1\cdot z_2)=sign(\breve{w}^Tz)

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

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

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

Φ2(x)=(1,x1,x2,x21,x1x2,x22)Φ2(x)=(1,x1,x2,x12,x1x2,x22)

\Phi_2(x)=(1,x_1,x_2,x_1^2,x_1x_2,x_2^2)

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

二、Nonlinear Transform

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

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

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

  • 特征转换

  • 训练线性模型

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

三、Price of Nonlinear Transform

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

d˘=1+C1d+C2d+d=d(d+3)2+1d˘=1+Cd1+Cd2+d=d(d+3)2+1

\breve d=1+C_d^1+C_d^2+d=\frac{d(d+3)}2+1
如果x特征维度是2维的,即 (x1,x2)(x1,x2)(x_1,x_2),那么它的二次多项式为 (1,x1,x2,x21,x1x2,x22)(1,x1,x2,x12,x1x2,x22)(1,x_1,x_2,x_1^2,x_1x_2,x_2^2),有6个。

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

d˘=CQQ+d=CdQ+d=O(Qd)d˘=CQ+dQ=CQ+dd=O(Qd)

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

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

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

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

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

四、Structured Hypothesis Sets

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

Φ0(x)=(1)Φ0(x)=(1)

\Phi_0(x)=(1)

如果特征维度是两维的,变换多项式包含了一维的Φ0(x)Φ0(x)\Phi_0(x):

Φ1(x)=(Φ0(x),x1,x2,…,xd)Φ1(x)=(Φ0(x),x1,x2,…,xd)

\Phi_1(x)=(\Phi_0(x),x_1,x_2,\ldots,x_d)

如果特征维度是三维的,变换多项式包含了二维的Φ1(x)Φ1(x)\Phi_1(x):

Φ2(x)=(Φ1(x),x21,x1x2,…,x2d)Φ2(x)=(Φ1(x),x12,x1x2,…,xd2)

\Phi_2(x)=(\Phi_1(x),x_1^2,x_1x_2,\ldots,x_d^2)

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

ΦQ(x)=(ΦQ−1(x),xQ1,xQ−11x2,⋯,xQd)ΦQ(x)=(ΦQ−1(x),x1Q,x1Q−1x2,⋯,xdQ)

\Phi_Q(x)=(\Phi_{Q-1}(x),x_1^Q,x_1^{Q-1}x_2,\cdots,x_d^Q)

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

HΦ0⊂HΦ1⊂HΦ2⊂⋯⊂HΦQHΦ0⊂HΦ1⊂HΦ2⊂⋯⊂HΦQ

H_{\Phi_0} \subset H_{\Phi_1} \subset H_{\Phi_2} \subset \cdots \subset H_{\Phi_Q}

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

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

dVC(H0)≤dVC(H1)≤dVC(H2)≤⋯≤dVC(HQ)dVC(H0)≤dVC(H1)≤dVC(H2)≤⋯≤dVC(HQ)

d_{VC}(H_0)\leq d_{VC}(H_1)\leq d_{VC}(H_2)\leq \cdots \leq d_{VC}(H_Q)

它的EinEinE_{in}满足下列关系:

Ein(g0)≥Ein(g1)≥Ein(g2)≥⋯≥Ein(gQ)Ein(g0)≥Ein(g1)≥Ein(g2)≥⋯≥Ein(gQ)

E_{in}(g_0)\geq E_{in}(g_1)\geq E_{in}(g_2)\geq \cdots \geq E_{in}(g_Q)

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

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

五、总结

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

注明:

文章中所有的图片均来自台湾大学林轩田《机器学习基石》课程

关注公众号并输入关键字“jspdf”获得该笔记的pdf文件哦~

更多AI资源请关注公众号:红色石头的机器学习之路(ID:redstonewill)

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

  1. 台湾大学林轩田机器学习基石课程学习笔记13 -- Hazard of Overfitting

    红色石头的个人网站:redstonewill.com 上节课我们主要介绍了非线性分类模型,通过非线性变换,将非线性模型映射到另一个空间,转换为线性模型,再来进行分类,分析了非线性变换可能会使计算复杂度 ...

  2. 台湾大学林轩田机器学习基石课程学习 笔记资料汇总

    笔记: 红色石头的专栏(写得非常好) 课后练习: 機器學習基石(Machine Learning Foundations) 机器学习基石 课后习题链接汇总 https://download.csdn. ...

  3. 台湾大学林轩田机器学习基石课程学习笔记1 -- The Learning Problem

    红色石头的个人网站:redstonewill.com 最近在看NTU林轩田的<机器学习基石>课程,个人感觉讲的非常好.整个基石课程分成四个部分: When Can Machine Lear ...

  4. 台湾大学林轩田机器学习基石课程学习笔记15 -- Validation

    红色石头的个人网站:redstonewill.com 上节课我们主要讲了为了避免overfitting,可以使用regularization方法来解决.在之前的EinEinE_{in}上加上一个reg ...

  5. 台湾大学林轩田机器学习基石课程学习笔记11 -- Linear Models for Classification

    红色石头的个人网站:redstonewill.com 上一节课,我们介绍了Logistic Regression问题,建立cross-entropy error,并提出使用梯度下降算法gradient ...

  6. 台湾大学林轩田机器学习基石课程学习笔记10 -- Logistic Regression

    红色石头的个人网站:redstonewill.com 上一节课,我们介绍了Linear Regression线性回归,以及用平方错误来寻找最佳的权重向量w,获得最好的线性预测.本节课将介绍Logist ...

  7. 台湾大学林轩田机器学习基石课程学习笔记8 -- Noise and Error

    红色石头的个人网站:redstonewill.com 上一节课,我们主要介绍了VC Dimension的概念.如果Hypotheses set的VC Dimension是有限的,且有足够多N的资料,同 ...

  8. 台湾大学林轩田机器学习基石课程学习笔记7 -- The VC Dimension

    红色石头的个人网站:redstonewill.com 前几节课着重介绍了机器能够学习的条件并做了详细的推导和解释.机器能够学习必须满足两个条件: 假设空间H的Size M是有限的,即当N足够大的时候, ...

  9. 台湾大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing

    红色石头的个人网站:redstonewill.com 上节课,我们主要介绍了机器学习的可行性.首先,由NFL定理可知,机器学习貌似是不可行的.但是,随后引入了统计学知识,如果样本数据足够大,且hypo ...

最新文章

  1. 制定OKR的两种方式,你知道吗?
  2. R语言Welch方差分析(Welch’s ANOVA)实战:Welch方差分析是典型的单因素方差分析的一种替代方法,当方差相等的假设被违反时我们无法使用单因素方差分析,这时候Welch’s出来救场了
  3. springCloud-4.RestTemplat的使用(两个client之间的调用)
  4. 《Verilog HDL那些事儿》PDF 3.0版本发布
  5. php 无限查找下级业绩_php如何查找会员无限分类的所有上级和所有下级
  6. WebLogic8.1 配置SSL/HTTPS单向认证
  7. OpenGL ES GLKit初探
  8. vivo V15 Pro宣传片放出:前置3200万像素弹出式摄像头
  9. 毕业多年没稳定的收入...大龄转行做自动化测试,现在已经快年薪30W
  10. 为何需要商业智能BI软件
  11. 注册OCX控件并在VS2013的mfc程序中使用及常见问题总结
  12. 3d数字孪生工厂可视化三维建模平台
  13. 神经元模型和BP网络
  14. MDK9X5开发板应用程序演示3:LM75A温度采集显示(增加存储功能)
  15. 基于SSM框架的个人博客系统项目毕业设计(代码及论文)
  16. 苹果开发者设置其他ios账号权限
  17. C.实验7_3_奇数偶数
  18. idea的output窗口丢失问题
  19. 岭回归原理简单分析与理解
  20. Oracle 电子期刊下载

热门文章

  1. Visual C++ 时尚编程百例005(菜单)
  2. 国考临近——送给奔跑在国考路上的人的一些话
  3. Linux下进度条小程序
  4. PLSQL_基础系列11_递归和层次查询CONNECT BY(案例)
  5. 文件内容、关键字匹配,split 和 indexOf 均可实现
  6. 不用注册的麦咖啡永久使用
  7. Java中String字符串toString()、String.valueOf()、String强转、+ 的区别
  8. python实现 多叉树 寻找最短路径
  9. 转 -- 推荐几本云计算的经典书籍
  10. linux 自学系列:用户管理