文章目录
- 定义
- 两个影响因素
- 常用的解决办法
- 权重衰减
- 丢弃法
定义
欠拟合(underfitting):模型无法得到较低的训练误差(训练误差和泛化误差都很高)
过拟合(overfitting):模型的训练误差远小于其在测试数据集上的误差,即泛化误差
这里我们可简单理解下两种误差,训练误差可以认为是做往年高考试题(训练题)时的错误率,泛化误差则可以通过真正参加高考(测试题)时的答题错误率。
两个影响因素
有诸多因素可导致这两种拟合问题,这里重点讨论模型复杂度和训练数据集的大小两个因素。
- 针对模型复杂度
给定训练数据集,模型复杂度和误差之间的关系通常如图所示 - 基本上,给定训练数据集的情况下,复杂度过低很容易出现欠拟合,复杂度过高,则容易过拟合。
- 训练数据集的大小
对于该因素,一般若训练数据集中样本数过少,特别是比模型参数数量(按元素计)更少时,过拟合更容易发生。
此外,泛化误差不会随训练数据集里样本数量增加而增大。因此,在计算资源允许的范围之内,我们通常希望训练数据集大一些,特别是在模型复杂度较高时
常用的解决办法
权重衰减
虽然增大训练数据集可能会减轻过拟合,但获取额外训练数据往往代价高昂。
常用方法之一是:权重衰减(weight decay)
- 权重衰减等价于范数正则化(regularization)。其通过为模型损失函数添加惩罚项使学出的模型参数值较小。
范数正则化就是在模型原损失函数的基础上添加范数惩罚项,该惩罚项是模型权重参数每个元素的平方和与一个正的常数的乘积。
如:线性回归中的原损失函数为:
=
将权重参数用向量表示,则带有范数惩罚项的新损失函数为:
有了范数惩罚项后,小批量梯度下降过程中,和的迭代方式将更改为:
由此可见,范数正则化令权重和先自乘小于1的数,再减去不含惩罚项的梯度。所以范数正则化又叫权重衰减。权重衰减通过惩罚绝对值较大的模型参数为需要学习的模型增加了限制,这可能会对过拟合有效。
丢弃法
除权重衰减外,深度学习模型也常常使用丢弃法(dropout)来应对过拟合问题。
这里的丢弃法特指其变体之一的倒置丢弃法(inverted dropout)
正常的带有隐藏层的多层感知机如下图所示。
对其隐藏层使用丢弃法之后,一种可能的结果会如下图
丢弃法能够根据设定的丢弃概率(超参数),将隐藏层中的隐藏单元按概率随机地丢弃掉,在反向传播时丢弃掉的隐藏单元相关权重梯度均变为0,且由于丢弃有一定的随机性,输出层的计算就无法过度依赖隐藏层中的任一个隐藏单元,这样训练时就起到正则化的作用,可以用其来应对过拟合。
注意丢弃法只在训练模型时使用,测试模型时,为了拿到确定性的结果,一般不使用丢弃法。