模型选择、过拟合和欠拟合
训练误差和泛化误差
- 训练误差(training error)
- 模型在训练数据集上表现出的误差
- 泛化误差(generalization error)
- 模型在任意一个测试数据样本上表现出的误差的期望
- 常常通过测试数据集上的误差来近似
-
模型选择
验证数据集
测试集只能在所有超参数和模型参数选定后使用一次
- 不可以使用测试数据选择模型,如调参。
可以预留一部分在训练数据集和测试数据集以外的数据来进行模型选择。
当训练数据不够用时,预留大量的验证数据显得太奢侈
在K折交叉验证中,我们把原始训练数据集分割成K个不重合的子数据集,然后我们做K次模型训练和验证。
模型无法得到较低的训练误差,我们将这一现象称作欠拟合(underfitting)
模型的训练误差远小于它在测试数据集上的误差,我们称该现象为过拟合(overfitting)
模型复杂度
训练数据集大小
一般来说,如果训练数据集中样本数过少,特别是比模型参数数量(按元素计)更少时,过拟合更容易发生。
- 此外,泛化误差不会随训练数据集里样本数量增加而增大。
因此,在计算资源允许的范围之内,我们通常希望训练数据集大一些,特别是在模型复杂度较高时,例如层数较多的深度学习模型。
权重衰减
方法
权重衰减等价于 L2 范数正则化(regularization)。
正则化通过为模型损失函数添加惩罚项使学出的模型参数值较小,是应对过拟合的常用手段。
L2 范数正则化(regularization)
L2范数惩罚项指的是模型权重参数每个元素的平方和与一个正的常数的乘积。
- 以线性回归中的线性回归损失函数为例
- 带有L2范数惩罚项的新损失函数为
- 其中超参数λ>0。
- 当权重参数均为0时,惩罚项最小。
- 当λ较大时,惩罚项在损失函数中的比重较大,这通常会使学到的权重参数的元素较接近0。
- 当λ设为0时,惩罚项完全不起作用。
- 其中超参数λ>0。
权重w1和w2的迭代方式更改为

当对隐藏层使用丢弃法时,该层的隐藏单元将有一定概率被丢弃掉。
- 设丢弃概率为p,那么有p的概率hi会被清零,有1−p的概率hi会除以1−p做拉伸。
- 丢弃概率是丢弃法的超参数。
- 使用丢弃法时我们计算新的隐藏单元hi′
hi′=ξi1−phi
由于E(ξi)=1−p,因此
E(hi′)=E(ξi)1−phi=hi
即丢弃法不改变其输入的期望值。
- 由于在训练中隐藏层神经元的丢弃是随机的,即h1,…,h5都有可能被清零,输出层的计算无法过度依赖h1,…,h5中的任一个,从而在训练模型时起到正则化的作用,并可以用来应对过拟合。
- 在测试模型时,我们为了拿到更加确定性的结果,一般不使用丢弃法

