欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen

概要

上节讲到了逻辑回归问题用于二分类,而且将二分类问题拓展到了多分类的问题。但是这些假设空间都是线性的,本节将线性的空间映射到非线性上。

二次式假设空间

在线性的假设空间中,复杂度是受到控制的。但是如果数据是线性不可分的呢?
如下图:
林轩田之机器学习课程笔记( how can machines learn之nonlinear transformation)(32之12)
如何来进行分类呢?
我们可以采用一个圆圈作为边界进行分类:
林轩田之机器学习课程笔记( how can machines learn之nonlinear transformation)(32之12)
那么我们也可以将x21x22看做一个整体:

h(x)=sign(0.61+(1)x21+(1)x22)

如下图所示:
林轩田之机器学习课程笔记( how can machines learn之nonlinear transformation)(32之12)
所以这里就像是将原来的点映射到另外的一个空间中,然后采用线性分类器进行分类。
那么如果数据可以在投影后的空间中线性可分,那么是不是一定可以找到相对应该的曲线在原始的空间中进行切分呢?
林轩田之机器学习课程笔记( how can machines learn之nonlinear transformation)(32之12)
那么我们进行替换就得如上面的式子。当W取不同的值,就会在原始空间中得到不同的曲线。
比如:圆圈、椭圆、双曲线等,任意的二次曲线,如果投影到二次式有如下的项:
林轩田之机器学习课程笔记( how can machines learn之nonlinear transformation)(32之12)

相当于将原来的二维空间投影到了一个六维空间中。
同时呢,投影后的六维空间是包含原先的二维空间的,这样就导致了假设空间的变大,我们就可以找到假设使得Ein变得更小。这就是为什么要做变换。
或者可以理解为,同样是在原来的空间中寻找假设空间,原来的方式是寻找直线,现在的方式寻找二次的曲线。二次的曲线是覆盖直线的,所以假设空间增大。

非线性转换

那么如何在映射后的空间中找到假设呢?
1)首先将数据映射到高维空间
2)在高维空间中进行线性分类
3)将高维空间的分类器映射到低维空间。
林轩田之机器学习课程笔记( how can machines learn之nonlinear transformation)(32之12)
这里只需要确定如何进行映射方法,以及线性的分类器的选择。
这样就相当于产出了二次的PLA,二次的逻辑回归等等。

做非线性的变换其实就是进行了特征的组合,这里要说一下特征的组合:
比如图形图像处理的CNN,而在实际工作中,会经常使用特征组合,一般情况采用GBDT或者FM,FFM进行特征的组合。
可以参考sklearn的链接:
http://scikit-learn.org/stable/auto_examples/ensemble/plot_feature_transformation.html#example-ensemble-plot-feature-transformation-py
或者参考一个实际的kaggle案例:
https://github.com/guestwalk/kaggle-2014-criteo

特征映射会增加我们的维度,导致自由度增强,资料量不变的情况下,根据vc维的结论,会导致Eout增大。这样就会使得EinEout差异变大了。

非线性转换的代价

虽然我们经过了非线性转换之后,假设空间增大了,但是也要付出相应的代价,如下图,经过q次式:
林轩田之机器学习课程笔记( how can machines learn之nonlinear transformation)(32之12)
我们差不多要将二维到O(qd)维度。
在计算或者存储上都要花费跟多的代价,同时vc维差不多也是O(qd),模型的复杂度增加。就会会导致Eout增大。这样就会使得EinEout差异变大了。
如下图,分别是1次式和4次式:
林轩田之机器学习课程笔记( how can machines learn之nonlinear transformation)(32之12)
所以我们应该怎么选择映射使得Ein变小的同时,Eout
也相差不大呢?通过图形化的操作是不可能的,就像下面的
林轩田之机器学习课程笔记( how can machines learn之nonlinear transformation)(32之12)

这里顺便说一下:这里就是相当于在SVM里面的超参数,进行kernel映射的时候,应该是选择二次式还是高斯还是其他的方式进行映射,一般是采用网格搜索或者验证曲线进行判断
验证曲线筛选超参数,学习曲线判断当前模型状态。
http://scikit-learn.org/stable/modules/learning_curve.html

当映射的维度增大,同时如果要使得Eout减小也可以通过数据量的增大。

结构化的假设空间集合

我们知道在多项式的转换过程中:
林轩田之机器学习课程笔记( how can machines learn之nonlinear transformation)(32之12)
假设空间是不断扩大的,高维度依次包含低维度,所以我们的Ein会不断的减小,vc维不断增大。
林轩田之机器学习课程笔记( how can machines learn之nonlinear transformation)(32之12)
根据vc维的理论:EoutEin+......
可以参考http://blog.csdn.net/cqy_chen/article/details/78888890
这样就会导致Eout增大,如下图:
林轩田之机器学习课程笔记( how can machines learn之nonlinear transformation)(32之12)
这里顺便引入下节课,这就是所谓的过拟合。
所以在使用机器学习的时候,从简单的模型开始使用,不要从复杂的模型开始

欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen

相关文章:

  • 2021-10-19
  • 2021-11-30
  • 2021-04-22
  • 2021-06-24
  • 2021-07-19
  • 2021-12-17
  • 2021-10-25
  • 2021-09-04
猜你喜欢
  • 2021-05-24
  • 2021-09-19
  • 2021-06-11
  • 2021-05-25
  • 2021-11-20
  • 2021-09-11
  • 2021-09-14
相关资源
相似解决方案