Validation

2018-04-22  本文已影响0人  薛东弗斯

Validation

对于PLA, pocket, linear regression, logistic regression,这些gradient descend的方法,我们可以选择迭代的次数,学习率,也可以选择对原来的feature进行多项式的转换映射到高维空间。为了防止overfitting,regularizer可以选择l1-norm,l2-norm, symmetry regularizer,以及penalty的强度

。那么怎样选择最合适的组合才能找到最好的g呢?现在有M个Hypothesis set,以及它们对应的算法。比如线性的Hset,对应有logistic regression,树型的Hset,对应有决策树,rf等等。现在从M个Hset中,选出一个Hset,它对应的g的

最小。但是我们不知道

,那么我们可以选择最好的

吗?这样会overfitting,比如算法会prefer更高次的Hset,或者说

要好,那么我干脆就不regularization好了。这些都是bad generalization。

如果我们可以获得testset,我们通过选择

,即

,然后通过Hoeffding,可以得到

。但是因为无法得到测试数据,或者说这种行为是cheating,因此此路不通。因此产生一种Validation set。从手中的Dataset中选出一部分,不用做Training,而拿来做Validation。假设现在的Dataset是D,size为N,从中选出K个sample作为

,而用剩下来的N-K个sample去给A来Train model。得到的model用

表示。然后用

去validate。为了让

去表达

变得有意义,

必须独立同分布于D,这样根据Hoeffding,就有

,因此当

能够做到最小,选出了最好的

,那么

也就有了上限。根据Learning curve,随着Dataset size的增大,E逐渐减小,然后

是用了N-K大小的数据集找到的最佳模型,那么如果我们用了全部的N去训练,找到的最佳模型

,它在

上的表现会比

更好,因此有不等式

。把它们的Learning curve画出来就是

,其中,in-sample就是通过

选出来的模型,optimal是根据

选出来的模型表现,可以看到error一直很小。另外两个,红色是真的用validation选出来的还不错的

上的表现,差过蓝色的,也就是

的表现。我们知道,如果validation set的size K很小的话,那么几乎用手中所有的数据训练出来的g,它在

的表现,应该和

差不多,但是用这么少的validation set得到的

并不能够代表

。但是,如果当K很大时,代表留下来做validation的size很大,训练的数据集很少,此时对于训练出来的

,那些validation set在它上面的表现

,也就基本上等同于真正的

了,但是此时的

就比

差的远了。一般情况下

LOOCV:

当K取1时,由上文可知,

差的挺远的,这里的上标n代表作为validation set的数据是第n个。而且

要么是0要么是1。怎样才能使

变得和

差不多呢?答案是,求平均。我们有N个数据,每个数据都可以有机会当做validation set的机会,那么就可以求出N个

,因此有

,希望这个error可以和

差不多。以下是证明:

说明了

的期望值是有关联的。但是算LOOCV的error,需要大量的计算,例如有1000个数据,则要训练1000次的模型。而且,用一个数据去做validation,非0即1,曲线比较不稳定。

那么怎样减少计算量呢?

V-fold Cross Validationrandom-partition of D to V equal subset.然后拿V-1份subset去训练,拿剩下的一份去做validation,然后error就可以表示为

,依据这个交叉验证的error去选择m,方法于LOOCV中的选择m的方法一致。V常常选择10。一般上不会去选择LOOCV。同时,如果计算量允许的情况下,cross validation往往prefer过single validation,因为CV有做平均,理论依据如上证明。但是实际上

还是要比

乐观一些,就是说validation上做得很好,最后还是要看测试的结果,才算真正衡量model的表现。

上一篇下一篇

猜你喜欢

热点阅读