机器学习基石 Lecture12: Nonlinear Transformation
Quadratic Hypotheses
目前讲解的都是线性的假设,也就是分界面是一个像线一样的边界。从数学上来看就是都有一个
s
=
w
T
x
s=w^{T}x
s=wTx的分数。但是这种假设是很受限的,尽管理论上它拥有较小的VC维,但是对于某些场景它的分类效果无法达到理想状况:
比如上面右图中的例子,它不是线性可分的,但是可以被一个圆来分隔成两部分。这样的话我们是否需要重新推导出圆的PLA或者逻辑回归等系列算法呢?
实际上,这个作为分隔界面的圆可以一定程度上看作是另一个空间里的一条线。比如把那个圆的方程中每一项都重新用一个z来表示,那么这个圆就是z对应所在空间的一条线。中间经历了一个非线性的空间映射。于是z平面的线性可分就对应着x平面内的圆可分。反过来讲是否一定正确呢?
观察一下在这个新的z空间中的线性假设函数:
这个假设函数使用不同的系数,对应的就是x平面内不同的椭圆曲线。因此在z空间内的线对应的可能是x空间内不同的曲线而不一定是圆。可以选择一种更加一般化的形式,那就是将左右的x的二次组合都作为备选的z,对不同的项的系数进行学习,最终得到一个对于原x空间内是任意圆锥曲线的分隔面(也包括直线):
Nonlinear Transform
有了这种二次型的函数假设之后,就能将原来的x平面的不一定线性可分的问题转化为z平面上的一个线性可分的问题。但有一个中间步骤那就是要得到z平面上所需要的点,也就是将x平面中的点进行非线性映射到z平面中。
所以这个非线性假设的算法流程为:1.将原来的x平面的点通过
Θ
\Theta
Θ映射到z平面上。2.在z平面上使用线性分类算法得到一个好的感知机
w
w
w。3.返回结果
g
(
x
)
=
s
i
g
n
(
w
t
Θ
(
x
)
)
g(x)=sign(w^{t}\Theta(x))
g(x)=sign(wtΘ(x))。
在这个流程中可以有两个选择的部分,第一个是可以对非线性映射
Θ
\Theta
Θ进行选择,第二个是对线性算法
A
A
A进行选择。也就是说之前学过的各种线性算法与不同的非线性映射都能够进行尝试:
而这个非线性映射
Θ
\Theta
Θ,在之前讲手写数字的时候也有提到过。那就是将原始的像素特征映射为像素密度与对称性这两个特征的过程。只不过当时说的时候不是多项式的形式。
Price of Nonlinear Transform
但是这种非线性映射并不是毫无代价的。比如当我们有d维的x空间的特征,而使用最高
Q
Q
Q阶的多项式进行非线性映射,最终得出的z空间特征的维度可能是一个指数级别的值。
这样就需要耗费更多的空间以及计算能力。而在新的z空间里,对应的假设函数的VC维也是一个很大的数字,它等于z变量的维度加一。因此大的Q就意味着比较大的VC维:
比较大的VC维就会导致我们机器学习的基础,VC bound的保证失去效力。回到机器学习的两个问题:1.是否能够保证
E
i
n
E_{in}
Ein与
E
o
u
t
E_{out}
Eout的近似相等?2.是否能够使
E
i
n
E_{in}
Ein足够小?这个Q代表的阶数也就决定了这两个问题之间的交换。
一般我们很难使用人眼去观察选择一个合理的Q给算法。而且即使这么做了,那么最终提供给算法的是人脑加工过的模型,也就是说其中会有人脑的“模型复杂度”在里面,于是算法的VC bound依然可能会没有保证。因此一般情况不会使用人为比较然后选择的方式。
Structured Hypothesis Sets
当我们使用不同的Q时,得出的假设函数
Θ
\Theta
Θ是互相包含的关系:
因此它们的VC维是逐渐增大的:
而且,由于假设函数的空间是包含的关系,比较小的空间内得到的好结果一定会在比较大的时候出现,也就是说他们的
E
i
n
E_{in}
Ein是会不增的。这样的话我们就得到了一组关于模型复杂度与
E
i
n
E_{in}
Ein和
E
o
u
t
E_{out}
Eout之间的关系图:
我们在选择假设函数的时候,一般会从线性模型(Q=1$)开始,慢慢增大复杂度,根据表现选择一个最合适的复杂度的模型。而且很多时候线性模型就已经能够解决问题了。