介绍
过拟合与欠拟合是DL中永恒的问题,其本质上是模型容量
与数据复杂度
之间进行匹配的结果。
数据复杂度很好理解,就是我们想要学习的数据中特征的复杂程度,预测股市或者房价模型的数据肯定比预测
y
=
a
x
+
b
y=ax+b
y=ax+b模型的数据复杂。
一般来说,越复杂的数据就需要越复杂的模型进行拟合。
模型容量描述的就是模型的复杂程度,一般可以用模型的参数数量、参数值范围和网络的深度等角度来衡量。
过拟合本质上就是模型过于复杂从而导致的强学习能力,不仅学习到样本数据中的特征,也学习到噪音的特征,甚至于,记住了所有的样本。
- | 简单数据 | 复杂数据 |
---|---|---|
简单模型 | - | 欠拟合 |
复杂模型 | 过拟合 | - |
控制手段
(目前了解的,后续再补充)
-
权重衰退
- 思想是在损失计算时,加入权重范数 ∣ ∣ w ∣ ∣ 2 < θ ||w||^2 < θ ∣∣w∣∣2<θ的限制
- 限制的是模型的
参数范围
- 为方便计算,采用惩罚(penalty)的方式,
- l o s s = l o s s + λ 2 ∣ ∣ w ∣ ∣ 2 loss=loss +\frac{λ}{2}||w||^2 loss=loss+2λ∣∣w∣∣2, 通过设置λ柔性限制
- 梯度更新时,
- 使 w t + 1 = ( 1 − η λ ) w t − η ∂ l ∂ w w_{t+1}=(1-ηλ)w_t-η\frac{∂l}{∂w} wt+1=(1−ηλ)wt−η∂w∂l,
- 每次更新缩减权重,衰退,控制参数范围
-
DropOut
- 思想很简单,每次训练时只选取隐藏层的部分节点参与模型训练
- 限制的是模型的
参数数量
- 一般可配合交叉验证方法
-
其他
- 数据预处理、数据增强之类的