从线性到非线性

在以前接触过的学习算法中(PLA,LinearRegression,LogisticRegression)它们所做的工作都是对资料做线性的判断。单拿二元分类来说他们无法分割非线性的资料。

机器学习之非线性分割(机器学习基石)

如上图所示如果注意到坐标的话这个二元分类的模型表达式如下(假设圆的半径的平方为0.6):

机器学习之非线性分割(机器学习基石)

如果面上的点到圆心的距离平方和>0.6的话就判定为x,如果面上的点到圆心的距离平方和<0.6的话就判定为o。可见这笔资料不是线性可分是圆形可分(非线性资料)。

从非线性到线性

我们将上面的式子做以下的转换:

机器学习之非线性分割(机器学习基石)

在转换之后上式就变成了一个线性的模型,这样我们好像是在做将X空间中的点转化到Z空间一样,也就是说每一个X空间里的点都会在Z空间找到对应的点。而这个表达式在X空间是非线性的但是在Z空间是线性的,因此我们将这个模型转换(特征转换)为了一个线性的模型。直观的表述如下图所示:

机器学习之非线性分割(机器学习基石)

转化不可逆

在特征转化的过程中将X空间里的一个圆转换为Z空间的一个直线,那么Z空间的直线就一定是一个圆么?不是

机器学习之非线性分割(机器学习基石)

如上图(所展示的是一个二维的二次方程),Z空间的权重W的系数多变,一条Z空间的直线有可能是圆,而第三种情况则代表一个椭圆,第四种代表一个双曲线,第五种代表一个常数。

更为复杂的转化

在上面的例子中我们知道了X空间的一些特殊二次曲线在Z空间的表示方式但是要使得任何二次函数都能够转换成Z空间的直线就需要更为复杂的转换。

首先我们要列出一个最普适的二次曲线的方程重点突出的是它的一次项、二次项、常数项都要考虑到:

机器学习之非线性分割(机器学习基石)

上图的就是一个案例,在X空间的一个二次模型经过特征转换到Z空间成为一个线性模型。如我们要转换一个倾斜的椭圆,首先将它的各个项按照一定的规则(比如说从低次项到高次项)排列下来,然后算出各个项所对应的系数,再将这些系数会作为我们Z空间的权重值我们就完成了这次转换。当然一些特殊的曲线会是我们普适的曲线的特殊情况令某些项为0就可以得到。

做到最好

在进行特征转换之后我们可以使用Z空间的资料进行模型的选择与资料的分类,这样的话我们就能在Z空间中分类完成的之后的资料中找到X空间所对应的映射。至于分类我们依然是在VC的保证下使用各种分类算法进行。

而特征转换从理论上可以转换任何次方的方程,这样我们就可以通过特征转换找到非常复杂的边界,所以特征转换也成为机器学习中的“源力”。






相关文章: