非线性转换
二次假设
前面说的分类都是线性可分的情况,即直观上看就是用直线就能把点分到对的阵营。
数学上找这条线的时候,算一个分数:
如果不是线性可分的情况,怎么做分类呢?
理论上,我们讲过dvc保证机器学习可行。
只是,有可能找的直线,Ein比较大。
那么,我们就想,能不能不找直线呢?
对于上面的数据,我们直觉用个圆,好像做得就挺好的,所有点都分到对的阵营。
这个圆的方程是:
即圆心在(0,0),半径为的圆
我们发现,的点是o(+1);
的点是x(-1)。
这和(Hsuan-Tien Lin)第二讲说perceptron几乎一样,区别就是这里是圆,第二讲的是直线。
如果我们也取正负号:
来看看,用圆做分类和用直线做分类之间的关系。
把上面的模型写成这个样子:
为了和直线的区分开,我们把这里的变量都叫z,系数叫
如上图,在x空间找了两个点X1(x1,x2)和X2(x1’,x2’),映射到z空间就是下图所示Z1(z1,z2)和Z2(z1’,z2’)
把x空间所有点都映射到z空间后,发现,原来线性不可分的点,线性可分了,于是就能找到一条直线把它们分开。而这条直线在x空间,其实就是那个圆。
把x空间到z空间的映射,叫做线性转换,表示成:
那你会问,z空间的又能不能映射到x空间呢?也是可以的:
所以,二者可以相互转换
上面的二次曲线都是中心或圆心在原点的,能不能推广到更多的二次曲线呢?
既然是所有的二次曲线,就把所有多项式组合都写出来:
这样,系数就变为:
所以对于前面的圆就是:{0.6,0,0,-1,0,-1}
如果现在要实现一个椭圆:
系数是什么呢?
所以={33,-20,-4,3,2,3}
非线性转换
所以非线性转换的步骤:所以,如果要在x空间找到好的二次曲线,就要在z空间找到好的感知机。前面那么多讲都在说x空间找好的感知机,要用到(xn,yn),所以z空间找到好的感知机,就要用到
(1)把x空间经过转换到z空间:把(xn,yn)经过
变成
(2)在z空间找到好的感知机:用
(3)输出结果
第三步,看似要用逆转回去,其实不是。实际做的就是给结果就行。比如上图中左下角的点A,在z空间是点B。只要z空间告诉说它是o(+1)还是x(-1)就可以了。z空间说它是+1,x空间就把这个点描成o(+1)。
从上面看出线性转换有两个关键:和算法Α。
算法Α能从之前的找,用PLA,线性回归之类的。呢?
我们想想做的是什么。在x空间时,有两个特征x1和x2,因为数据线性不可分,我们映射到了z空间,变成了五个特征
。希望能够找到一条二次曲线很好的分开点。
回顾第三讲,我们说过数字辨识,如果手写1,机器学习的时候考虑对称性和密度,就是特征转换,即从原始的特征抽象出{对称性,密度}。如果把数字变成256维度的向量,也是特征转换。所以就是特征转换。
Model Complexity Price
前面的x空间是个二维空间,即特征就两个。如果现在是d维空间,要映射到space空间,找Q次曲线怎么做呢?
这是特征,那么需要多少系数呢?
表示在z空间的维度
重复组合,从d个中取≤Q个,一共有多少种?
(百度百科:重复组合。从n种不同元素中取出m的元素(方法是从n个元素中每次取出一个后,放回,再取另外一个,直到取出m个元素),每一种元素不超过m个,且每一种类的个数要大于等于m,并成一组,叫做n个不同元素的一个m-可重组合。n个不同元素的m-可重组合数为C(n+m-1,m),m可以是任意的正整数。)^^推导过程可以去搜搜。
上面为什么上标不是Q+d-1?是因为有一个必取项“1”,使得有d+1维,则上标为d+1+Q-1。
在andrew的week4非线性分类也说到,多项式的各种组合,真的非常多。
在第七讲说到, dvc是可以自由变化的特征系数w的个数。现在在z空间,dvc=+1=
。
我们的特征转换的次数不同,效果显然也不同。
所以,我们要做一种平衡:
可是,我们好像也不需要那么多的系数,就像前面的二次曲线特征有,但是我们求的那个圆
,也只有两个特征啊。
这是因为你已经看过了结果,开始给出下面的图时,谁都不知道哪个曲线做得好。
那你又会说,那就不看结果,也可以是,表现也不错或者
。这样都不行,虽然不看结果,但是你说这个z好,那个z好,是你看了数据,经过你的思考推论出来的。这样,如果算代价的话,也要把人脑思考的代价算上。而对于特征转换
是没有看过数据的。
Structured Hypothesis Sets
我们举3个特征的例子,x1,x2,x3
Φ0(x)={1}
Φ1(x)={1,x1,x2,x3}={Φ0(x)={1},一次项}
Φ2(x)={1,x1,x2,x3,x1x2,x1x3,x2x3,x1^2,x2^2,x3^2}={Φ1(x),二次项}
Φ3(x)={1,x1,x2,x3,x1x2,x1x3,x2x3,x1^2,x2^2,x3^2,x1x2x3,x1^3,x2^3,x3^3}={Φ2(x),三次项}
观察上面ΦQ包括ΦQ-1的转换。
看个例子:
如果二次项的系数为0,即时,
随着h越来越多,可以shatter的点就会越来越多,dvc越来越大,特征越来越多,模型越来越复杂,Ein越来越小。
又见到了这幅熟悉的图。所以在初学者看,特征越过越好,dvc越大越好。实际上这样很危险,因为Ein的确变小了,但是Eout却很大,而且模型很复杂。
所以,开始都是从hΦ1(x)开始,如果Ein表现挺好的,就可以交差了。如果表现不好,就增加特征的次数,Ein稍微表现好了就停。
linear model first:simple: efficient, safe, and workable!