机器学习基石HOW部分(4)

机器学习基石HOW部分(4)


标签:机器学习基石

第十二章

nonlinear via nonlinear feature transform ϕ plus linear with price of model complexity

前面的分析都是基于“线性假设“,它的优点是实际中简单有效,而且理论上有VC 维的保证;然而,面对线性不可分的数据时(实际中也有许多这样的例子),线性方法不那么有效。
比如下面的例子:
nonliear

我们可以看出,二次曲线(比如圆)可以解决这个问题。
接下来就分析如何通过二次曲线假设解决线性方法无法处理的问题,进而推广到多次假设。

假设分类器是一个圆心在原点的正圆,圆内的点被分为+1,圆外的被分为-1,于是有:

hSEP(x)=sign(x21x22+0.6)

把圆圈分类器的方程改写一下:
h(x)=(0.6.01+(1).x21+(1).x22)

=sign(w˜0+w˜1z1+w˜2z2)=sign(w˜Tz)

可以这样理解,原来的x 变量都映射到了z-空间,这样,在x-空间中线性不可分的数据,在z-空间中变得线性可分;然后,我们在新的z-空间中进行线性假设。
z空间
这个转换的过程成为nonlinear feature transform,用符号 ϕ 表示, ϕ 把两个互相独立的空间给联系了起来:
(1,x21,x22)=ϕ(x)=(z0,z1,z2)=z

X空间下的每个点,都对应Z空间下的某个点,同样的,X空间下的二次曲线方程,都对应Z空间下的某个一次直线方程。
h(x)=sign(w˜0+w˜1x21+w˜2x22)=sign(w˜Tϕ(x))=h˜(z)

w˜ X空间下的曲线形态
(0.6,−1,−1)circle(圈圈在内部,叉叉在外部)
(−0.6,+1,+1)circle(圈圈在外部,叉叉在内部)
(0.6,−1,−2)椭圆(ellipse)
(0.6,−1,+2)双曲线(hyperbola)
(0.6,+1,+2)所有点都判断为圈圈

上面的例子,它们的中心都必须在原点。
如果想要得到跟一般的二次曲线,如圆心不在原点的圆、斜的椭圆、抛物线等,则需要更一般的二次假设。

ϕ(x)=(1,x1,x2,x21,x1x2,x22)

这样一来,这个完整版的Z空间的直线,就可以代表X空间下的所有二次曲线了。

非线性转换(nonlinear transform)

进行非线性转换的步骤(这里的非线性转换其实也是特征转换(feature transform),在特征工程里很常见。):
步骤

非线性变换的代价

所谓”有得必有失“,将特征转换到高次空间,我们需要付出学习代价(更高的模型复杂度)。
x-空间的数据转换到z-空间之后,新的假设中的参数数量也比传统线性假设多了许多
Q-th Order Polynomial Transform
d维向量x经过Q次多项式变换:

ϕ(x)=(1,

x1,x2,...,xd,

x21,x1x2,...,x2d,

...,

xQ1,xQ11x2,...,xQd)

根据之前分析过的,vc 维约等于自由变量(参数)的数量,所以新假设的 dvc 急速变大,也就是模型复杂大大增加(复杂度由O(d)变为O( Qd ))。

泛化问题
上图是分别使用原始数据进行训练以及进行4次非线性变换后的数据进行训练的结果对比。从视觉上看,虽然右图(经过4次非线性变换的模型)能够把圈圈叉叉完全分开,但显然这种模型过于复杂了。

回顾机器学习前几讲的内容,我们可以有效学习的条件是:(1) Ein(g) 约等于 Eout(g) ;(2) Ein(g) 足够小。

当模型很简单时( dvc 很小),我们更容易满足(1)而不容易满足(2);反之,模型很复杂时( dvc 很大),更容易满足(2)而不容易满足(1)。

那么如何选择合适的复杂度呢?像上面一样用眼睛看?暂且不讨论10维的数据有没有办法用眼睛看,就拿前面2维的例子来说,用眼睛看来选择模型是件很危险的事情。
因为你是在“看过”数据之后,由你大脑选择的一个模型,这里要考虑到你大脑“选择模型”产生的一个复杂度,因为如果重新选取一部分数据,你有可能就不再挑选这个模型了,事实上你的大脑不知不觉地参与到了模型参数估计上。因此要切记,在 ϕ 的选择之前,不可以偷偷去看数据。

假设集(Structured Hypothesis Sets)

前面我们分析的非线性转换都是多项式转换(polynomial transform)。
我们用符号 ϕQ 来表示Q次多项式变换:

ϕ0(x)=(1),ϕ1(x)=(ϕ0(x),x1,x2,xd)

ϕ2(x)=(ϕ1x,x21,x1x2,,x2d)


ϕQ(x)=(ϕQ1(x),xQ1,xQ11x2,...,xQd)

可以发现 ϕi(x) 中包含了 ϕi1(x) ,因此他们对应的Hypothesis Set也有如下关系:

Hϕ0Hϕ1Hϕ2HϕQ

我们将二次假设记为 H2 ,k次假设记为 Hk 。显然,高次假设的模型复杂度更高。
H0H1H2HQ

假设集
也就是说,高次假设对数据拟合得更充分, Ein 更小;然而,由于付出的模型复杂度代价逐渐增加, Eout 并不是一直随着 Ein 减小。

拟合
通常在进行高次非线性变换的时候,应该特别小心,因为 dvc 上升很快,极容易造成overfitting。比较安全的做法是,先尝试不做非线性变换,即使用 Hϕ1 ,如果效果足够好了,就不需要进行非线性变换,否则,转而进行更高次的假设,一旦获得满意的Ein 就停止学习(不再进行更高次的学习)。

总结为一句话:linear/simpler model first !

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值