上节课,我们学习了三种线性模型可以用来解决binary classification和multiclass classification问题。这节课我们将开始学习使用non-linear的模型来解决分类问题。
一、Quadratic Hypothesis
- 首先看一下linear hypothesis的局限性:
- 当数据D是线性可分的,因为VC bound。理论上可以得到一条线保证有效分类,但实际上在一些线性不可分的例子中,我们没办法找到一条线来保证Ein很小;
- 那怎么来解决这样的问题呢?
- 上面的例子是一个Circular Separable的分类问题,通过找到一个圆圈我们可以有效地进行分类;
- 有没有办法把circular separable和linear separable联系起来呢?
- 上面通过使用空间转化,把X-space中的non-linear转化成Z-space中的linear问题,即x12→z1x_1^2→z_1x12→z1、x22→z2x_2^2→z_2x22→z2,同时1→z01→z_01→z0,这样X-space中二次的非线性就转化成Z-space的一次线性问题了。
- 我们把这种转化称作feature transform特征转换,我们用ϕ\phiϕ函数来表示。
那么如果在Z-space中的一个linear hypothesis转换为X-space中,一定是circular么?
- Z-space中的w^\hat{w}w^向量取不同的值,转化为X-space之后也会呈现不同的曲线,可能是圆形、椭圆、双曲线等二次图形;
- 那么还有可能是更一般的图形吗?
- 为了扩展到更一般的情况,这时候我们就需要这个ϕ2(x)\phi_2(x)ϕ2(x)包含x的所有次项的组合,相对应的Z-space的hypothesisw^\hat{w}w^向量也会包含所有这些常数项、一次项和二次项的权重。
二、Nonlinear Transform
上一部分我们定义了什么了二次hypothesis,那么这部分将介绍如何设计一个好的二次hypothesis来达到良好的分类效果。
- 首先,通过映射关系,把x-space中的最高阶二次的多项式转换为z-space中的一次向量,也就是从quardratic hypothesis转换成了perceptrons问题;其次,就可以在z域中利用线性分类模型进行分类训练;最后,把训练好的线性模型,将z替换为x的多项式就可以了;
- 整个过程就是通过映射关系,换个空间去做线性分类,重点包括两个:
- 特征转换
- 训练想线性模型
- 由此我们也可以进一步推论三次甚至更高次的分类应用中。
三、Price of Nonlinear Transform
接下来我们来看一下在Q次转换中的应用是否也能容易地应用以上的结论。
-
若x特征维度是d维的,也就是包含d个特征,同时多项式转换的阶数是Q的话,那么转换之后的Z-space的特征维度将会是:
-
CQ+dQ=O(Qd)C_{Q+d}^Q=O(Q^d)CQ+dQ=O(Qd)
-
随着Q和d的增大,计算量是非常大的,同时空间复杂度也大。也就是说,这种特征变换的一个代价是计算的时间、空间复杂度都比较大。
-
另一方面,z域中特征个数随着Q和d增加变得很大,同时权重w的维度也会增大,即自由度增加,VC Dimension增大;
-
根据之前章节课程的讨论,VC Dimension过大,模型的泛化能力会比较差。
-
上图中,左边是用直线进行线性分类,有部分点分类错误;右边是用四次曲线进行非线性分类,所有点都分类正确,那么哪一个分类效果好呢?
-
单从平面上这些训练数据来看,四次曲线的分类效果更好,但是四次曲线模型很容易带来过拟合的问题,即Ein和Eout差太多,虽然它的Ein比较小;
-
从泛化能力上来说,还是左边的分类器更好一些,虽然Ein会比较大一些;
-
看来在选择Q时,存在Ein(g)≈Eout(g)和Ein(g)足够小,这两组效果的trade-off,那么到底应该如何来选择Q值呢?通过观察之后判断么?
-
首先,在高维数据空间中,这太TM难了,四维以上不太可能;
-
其次,如上图的分析,通过观察我们可以把VC dimension dvcd_{vc}dvc降到1,但这付出地代价是使用了human learning来代替machine learning,如果忽略了引入人的主观学习判断,容易高估机器学习的能力;
-
因此ϕ\phiϕ的选择不应该加入人为的主观判断。
四、Structured Hypothesis Sets
-
当我们把ϕQ(x)\phi_Q(x)ϕQ(x)随着Q从小到大一路写下来的话,就会发现,ϕQ−1(x)\phi_{Q-1}(x)ϕQ−1(x)是包含在ϕQ(x)\phi_Q(x)ϕQ(x)里面的;
-
因此推广到所对应的Hypothesis set,我们得到HQ−1H_{Q-1}HQ−1也是被HQH_{Q}HQ所包含的;
-
我们把这样结构称作Structured Hypothesis Sets。
-
进一步,我们发现随着Q的增加,dVC(HQ)d_{VC}(H_Q)dVC(HQ)也会随着变大,同时Ein(gQ)E_{in}(g_Q)Ein(gQ)会随着变小;
-
其物理意义和之前讲到的随着dVCd_{VC}dVC的增加,Ein和Eout的关系是一致的,因此并不是Q取得越大越好。
-
显然,一开始就选用很大的Q值来进行算法设计是愚蠢的!
-
聪明的做法应该是一开始Q=1,如果不理想再慢慢增加,直到达到满足要求的学习效果,这样也不至于浪费太多的计算资源;
-
也就是说,尽量选择低阶的hypothes,这样才能得到较强的泛化能力。
五、总结
这节课主要介绍了非线性分类模型,通过非线性变换,将非线性模型映射到另一个空间,转换为线性模型,再来进行线性分类。本节课完整介绍了非线性变换的整体流程,以及非线性变换可能会带来的一些问题:时间复杂度和空间复杂度的增加。最后介绍了在要付出代价的情况下,使用非线性变换的最安全的做法,尽可能使用简单的模型,而不是模型越复杂越好。