过拟合:数据简单,模型复杂度高,模型记住了一些训练集不必要的细节。
欠拟合:数据复杂,模型复杂度低,表达能力不足,没有充分记住数据的细节。
数据的简单和复杂,和数据样本的数量,特征的个数有关。
模型的复杂度,一般指模型参数的数量,参数变化的范围。
K折交叉验证
原始训练数据被分成K个不重叠的子集。 然后执行K次模型训练和验证,每次在K−1个子集上进行训练, 并在剩余的一个子集(在该轮中没有用于训练的子集)上进行验证。 最后,通过对K次实验的结果取平均来估计训练和验证误差
通过限制参数值的变化范围来减小模型的复杂度
正则化是处理过拟合的常用方法:在训练集的损失函数中加入惩罚项,以降低学习到的模型的复杂度。
丢弃法
在训练过程中,他们建议在计算后续层之前向网络的每一层注入噪声。 因为当训练一个有多层的深层网络时,注入噪声只会在输入-输出映射上增强平滑性。
暂退法在前向传播过程中,计算每一内部层的同时注入噪声


p概率将输入值x变为0,1-p概率变的更大。我们从表面上看好像是在训练过程中丢弃(drop out)一些神经元。
在推理过程中不使用dropout,所以要modle.eval()。
dropout可以看作是一个正则项,只在训练过程中使用,他们只对参数的更新造成影响。
- 暂退法在前向传播过程中,计算每一内部层的同时丢弃一些神经元。
- 暂退法可以避免过拟合,它通常与控制权重向量的维数和大小结合使用的。
- 暂退法将活性值h替换为具有期望值h的随机变量。
- 暂退法仅在训练期间使用。
- dropout往往作用与全连接层,bn作用于卷积层。
