PRML读书笔记(三):模型选择

下面我们将以带惩罚项的多项式模型为例讲解模型选择问题:

y(x,m=3)=w0+w1x+w2x2+w3x3Min i=1n[y(xi)t]2+λwTw

首先在给定模型阶数m=3及对模型复杂度的惩罚力度 λ=0.1 之后,我们可以在样本集上对模型进行学习,得到最优的参数向量 w ,这一部分样本集就被称为训练集(training set)。但问题是目前的m和 λ 是随意给予的,肯定不是最优的,那么怎么寻找它们的最优值呢?
其次,我们再设置一个验证集(validation set)。因为目前的最优化方法还没有办法直接计算m和 λ 的最优解,我们只能够经验性的赋予它们某些可选值,然后在这些可选值组合上分别用训练集拟合出最好的模型,然后将模型应用到验证集上,计算预测误差,以选取最好的m与 λ 的组合。看到这里,我们注意到参数列 w 和参数m, λ 是不同的。前者可以直接利用最优化发现寻找最优解,而后者只能多尝试几次,寻找一个相对合适的数值。所以为了区分两种参数,我们把前者称为parameter,将后者称为hyperparameter。
最后,我们发现因为我们反复在同一个验证集上测试来寻找最优的m和 λ ,这有可能使得到的“最优值”只是适合这一验证集的最优值,换言之,对验证集过度学习了。所以我们有必要再设立一个测试集(test set)来最后判断模型的泛化效果。泛化这个词表示模型对从来没见过的新数据的预测能力。同时,这一测试集也可以用来比较不同类型模型的优劣。
在实际应用中,可以使用的样本集是有限的,如果划分成三块的话,有可能就不够用了,所以引入交叉验证的方法来充分使用样本集。做法是这样的,把样本集划分成S等份,将其中一等份作为验证集,其他的作为训练集,拟合模型,计算误差,如此轮替,依次把每一份作为验证集,剩下的作为训练集,最后计算平均误差,看哪一种m与 λ 的组合使平均误差最小。这一做法最极端的方式就是每次只留一个样本点作为验证集,被称为“留一交叉验证”。
交叉验证最大的问题是计算开销太大,S越大,hyperparameter越多,需要耗费的计算时间就越多。我们希望所使用的优化方法可以在一轮训练中对比多个hyperparameter以加快模型选择。
另外,如果在模型中使用越多的变量,那么模型的拟合效果往往也越好,但这样的模型或者过拟合,或者太复杂以至无法解释。所以我们要谨慎考虑向模型中添加新变量,只有在新变量可以有效提高模型拟合效果时,才会添加这个新变量。而评价这个有效性的标准称为赤池信息准则(AIC),公式如下:
Max lnP(D|wML)M

这里M代表模型中变量的数量, P(D|wML) 代表在样本集上用(对数)极大似然估计得到的最高似然值,反映了对样本集的拟合程度高低,新添加的变量要使这一似然值提高的速度快于变量数量提高的速度,这样添加变量才有意义,否则就要减少变量。

你可能感兴趣的:(机器学习,PRML,模型选择)