首页 > 代码库 > 机器学习基石(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