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

 

例如使用二次变换:

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

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

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

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

 

2 非线性变换的代价

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

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

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

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

 

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

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

 

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

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

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

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

 

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

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

 咋看之下,Ein降低了,VC维减小。Ein确实很低,但是VC维真的很低了吗?答案是否定的。产生这样错误认识的原因是我们没有很好的理解之前推导VCbound时“假设空间”这一概念。事实上,由于有人的观察帮忙,假设空间已经不再是我们让算法做选择的那个函数集,而是人在做选择时人脑中的假设空间。因此这里的VC维其实并不单单是我们让算法做选择的那个函数集VC维。

 

 

3 结构化假设空间

从0次到Q次的非线性变换,它们对应的假设空间范围是逐渐变大的,并且后一个包含了前一个:

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

 

VC逐渐变大,Ein逐渐变小:

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

因此一个实用的建议是,先尝试线性模型,如果Ein不够好再把模型复杂度慢慢往上加。一定不要一开始就用很复杂的非线性变换:

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