Coursera机器学习基石笔记week12

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35564813/article/details/84395365

Nonlinear Transformation

Quadratic Hypothesis

已知对于线性模型来说,可以分类线性可分的情况,但是对于线性不可分的情况,我们可以使用非线性模型来进行分类。
在这里插入图片描述
对于图中的h(x),我们可以知道 w 0 = 0.6 , w 1 = 1 , w 2 = 1 w_0=0.6,w_1=-1,w_2=-1 ,但是对应的参数是 1 , x 1 2 , x 2 2 1,x_1^2,x_2^2 。那么如果我们令 z 0 = 1 , z 1 = x 1 2 , z 2 = x 2 2 z_0=1,z_1=x_1^2,z_2=x_2^2 ,那么 h ( x ) = s i g n ( 0.6 + w 1 z 1 + w 2 z 2 ) h(x)=sign(0.6+w_1z_1+w_2z_2) 。这样 x n z n x_n\rightarrow z_n 的转换就使在x空间中无法线性可分转换成了可以在z空间线性可分了。这个转换的过程称作特征转换(Feature Transform).
在这里插入图片描述
已知x域中圆形可分在z域中是线性可分的,那么反过来,如果在z域中线性可分,是否在x域中一定是圆形可分的呢?答案是否定的。由于权重向量w取值不同,x域中的hypothesis可能是圆形、椭圆、双曲线等等多种情况。
在这里插入图片描述
一般来说,x空间中可能含有 Φ 2 ( x ) = ( 1 , x 1 , x 2 , x 1 2 , x 1 x 2 , x 2 2 ) \Phi_2(x)=(1,x_1,x_2,x_1^2,x_1x_2,x_2^2) ,也就说它可能包含圆心不过原点,双曲线,椭圆的情况。那么对于在z空间中的hypothesis来说,可以表示为:
在这里插入图片描述

Nonlinear Transform

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

Price of NonLinear Transform

在这里插入图片描述
由上图可以看出,计算z域特征维度个数的时间复杂度是Q的d次方,随着Q和d的增大,计算量会变得很大。同时,空间复杂度也大。也就是说,这种特征变换的一个代价是计算的时间、空间复杂度都比较大。
在这里插入图片描述
另一方面,z域中特征个数随着Q和d增加变得很大,同时权重w也会增多,即自由度增加,VC Dimension增大。令z域中的特征维度是1+d˘,则在域中,任何d˘+2的输入都不能被shattered;同样,在x域中,任何d˘+2的输入也不能被shattered。d˘+1是VC Dimension的上界,如果d˘+1很大的时候,相应的VC Dimension就会很大。根据之前章节课程的讨论,VC Dimension过大,模型的泛化能力会比较差。
在这里插入图片描述
如上图就是一种trade-off,对于左图来说虽然 E i n E_{in} 不够小,但是泛化能力更强;对于右图来说,虽然 E i n = 0 E_{in}=0 但是泛化能力不强。

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

Structured Hypothesis Sets

在这里插入图片描述
上述hypothesis称作Structured Hypothesis Sets
在这里插入图片描述
从上图中也可以看到,随着变换多项式的阶数增大,虽然EinEin逐渐减小,但是model complexity会逐渐增大,造成EoutEout很大,所以阶数不能太高。

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

总结

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

猜你喜欢

转载自blog.csdn.net/qq_35564813/article/details/84395365