首页 > 代码库 > 机器学习基石(12)--Nonlinear Transformation

机器学习基石(12)--Nonlinear Transformation

本节课重要讲述非线性的问题怎么样才能变成线性的分类问题。

到目前为止,我们会用模型进行线性的分类(左图),但是遇到右图的样子的时候,还是不能用一条线将它们分开。

技术分享

但是右图视觉上,明显是可以用一个圆来进行分类的,假设一个半径为0.6的圆:

技术分享

将上面的方程式进行展开和赋值,通过转换,再一次把圆形的方程式换成了一个线性的方程式,只不过多了一个新的变量z:

技术分享

虽然(x,y)不是线性可分的,但是(z,y)却是线性可分的。z和y组成了一个完全不同于x和y构成的空间,在z-y空间中,是线性可分的。(把每一个x-y空间中的点,转换到z-y中间中去,在这个例子中,x中的每一个点通过取平方转换到了z的空间)这个转换的过程叫做feature transform Φ。

技术分享

那么如果能在z空间线性可分,反过来能不能在x空间圆形可分呢?

技术分享

先将公式转换,再代入例子验证:

技术分享

z空间的点返回x空间的时候,不一定是一个正圆,有可能是椭圆等等。但是,如果能在z空间线性可分,那么在x空间就会有一个特殊形态的二次曲线(quadratic curve)。

如果拓展到所有形态的二次曲线:

技术分享

下图就是所有可能的quadratic hypotheses的形式:

技术分享

于是证明了z空间的线可以对应到x空间内所有形态的二次曲线,当然也包括直线。

那么什么样才是一个好的二次曲线呢?

下面是x空间和z空间的对应关系:

技术分享

x空间线性不可分的情况,通过以下步骤可以转换成z空间线性可分并且可以用我们熟悉的模型进行分类。

技术分享

1. 将x空间内的点通过feature transform Φ转换到z空间中去;

2. 通过已知的模型提出一个表现好的hypothesis g把z空间的点进行分类;

3. 将z空间的分类返回到x空间的分类。

上面讲的只是二项曲线的转换Φ2,如果我们继续把维度提高到Q,我们的转换ΦQ又有什么不同呢?

技术分享

技术分享

通过排列组合,我们有Qd的努力才能解开Q次方的转换。不管是计算量还是储存量都要花额外的力气。另外,模型的复杂度VC Dimension也在提升:

技术分享

当Q升高的时候,我们又要面临一个trade off了。

技术分享

当Q不同的时候,不同维度的hypothesis set是一个包含的关系:

技术分享

而随着hypothesis set变高的时候,Ein也在不断的变小。

技术分享

同时解释了下图:

技术分享

因为我们在意的是Eout不是Ein,高复杂度的hypothesis set不一定就是好的。

机器学习基石(12)--Nonlinear Transformation