首页 > 代码库 > 《机器学习基石》---非线性变换

《机器学习基石》---非线性变换

1 非线性变换

所谓非线性变换,就是把原始的特征做非线性变换,得到一个新的特征,使用这个新的特征来做线性的分类,则对应到原始的特征空间中,相当于做了非线性的分类。非线性变换的好处是,算法将有更多的选择,Ein可以做的更低。

 

例如使用二次变换:

技术分享

则Z空间中的一个直线分类边界,对应到原来空间中是一个二次曲线边界。可能是圆,椭圆,双曲线,抛物线,旋转后的椭圆,直线.......。

使用非线性变换进行学习的步骤如下:

技术分享

 

2 非线性变换的代价

Q次非线性变换如下定义:

技术分享 

对应的Z空间的特征维度变为:

技术分享

 

特征维度的增加,一方面带来的是存储和计算的代价:

技术分享

 

更重要的另一个代价则是模型复杂度的代价。假设空间的VC维近似等于参数的个数:

技术分享

而更大的VC维将使得Ein和Eout相差很远这件事的概率增加。这是机器学习中一个重要的trade off:

技术分享

 

 

一种错误的认识是,通过观察数据来让Ein做的小,同时让VC维也小。例如:

技术分享 

 咋看之下,Ein降低了,VC维减小。Ein降低了毋庸置疑,但这里我们没有考虑人在观察数据时已经在一个人脑中的假设空间里做了选择。因此我们的VC维还要加上人脑的VC维。

因此建议是不要通过观察数据来帮机器先做选择,那样会使的我们对机器的期待过高。

 

《机器学习基石》---非线性变换