15.1 Validation - Model Selection Problem
我们为了解决过拟合的问题,我们提出了regularization。
我们不只关注Ein,而是在Ein上面加上一个regularizer,一起做minimize。
这样可以有效的减小model complexity
我们面临着很多的选择,之间的组合会产生组合爆炸的。
输入:各种g和演算法。
输出:最好的那个模型,能让Eout变小。
表示选择了最好的那个模型。
显然,不能使用视觉的方法。
如果只考虑Ein的话,认为Ein越小越好,是不对的。
因为高维的hypothesis肯定要比低维的好; =0(忽视regularizer项)一定要比
!=0要好
而且,我们知道Hypothesis的大小决定了模型的复杂度。
然后我们想,干脆直接用一些测试数据上跑一遍模型,哪个模型好久选哪个。
根据公式可以保障。
但是提前用测试资料来验证自己的模型。属于提前偷看试卷,然后再答题。属于自欺欺人的一种做法,因此不适宜。
入手的数据要分成训练集和测试集。能够使表现介于Ein 和 Etest。
15.2 Validation - Validation
随机地从样本种抽出K个样本,那么validation set种的分布也是P(x, y)
原来的有两个角色,一个是算Ein,另一个是丢到演算法里得到g。这两种角色会相互“污染”。
而通过将数据分成两个角色,可以避免“污染”。
很直观,将两种角色分开了。
因为我们将数据分成了两个部分,因此,当我们找到最好的g时,
最后再用全部的数据再训练一下。
上面的- 表示用的训练集(数据量少)。
表示只考虑Ein,
表示cheating,
表示用训练集,
表示用训练集,但是最后再用全部的数据再训练一次。
为什么?因为用的数据少了。
15.3 Validation - Leave-one-out cross validation
我们上一节既要k大,又要k小。我们就先假设k=1
因为k=1,表示只留下了一笔资料,因此我们用(n)表示第n笔资料。
表示在第n笔资料上的错误。
我们能不能用来告诉我们Eout有多好呢?一笔可能不够,我们就一笔一笔的算,然后取平均值。
当我们用线性的模型,和用常数的模型。
原本是用validation error,现在就可以用错误来表示。
表示期望。
注意结论:能够用来衡量
横轴表示多项式的维数,纵轴表示错误。
结论是表现(更平滑,且避免了Overfitting)的比
要好。
15.4 Validation - V-Fold cross validation
现在来讨论的可能的错误是什么。
Eout每一轮都要用到N-1,计算量太大。除非有些特殊的场合,例如linear regression有closed-form形式,能很快算出来。
其次,的曲线跳动很大。我们想要的是稳定的曲线。
我们想通过分组,分成4组。这样就不用做1000次的力气。
V-Fold 可以使曲线比较平滑一些。