过拟合问题
1.问题描述
过拟合(over fitting),是指机器学习模型或深度学习模型在训练样本上表现得过于优秀,而在验证数据集以及测试数据集上表现不佳,模型的泛化能力弱。根本原因是特征维度(或参数)过多,样本过少,导致拟合的函数完美地经过训练集,但对于新数据的预测结果则较差。
在训练中表现为:训练集的loss较小,acc较高,而测试集上的acc却较低。
2.出现原因
- 训练样本中的噪音数据干扰太大,大到模型过分记住了噪音数据的特征而忽略了真实数据间的输入输出关系。
- 训练样本数量太少,无法反映真实的数据分布。
- 参数太多,模型复杂度过高。
3.避免方法
- 获取更多的数据:从数据源头获得更多数据,或利用数据增强(Data Augmentation)的手段。
- 数据预处理:数据清洗、减少特征维度、类别平衡。
- 正则化(L1,L2):权重衰减,限制权重过大、网络层数过多,避免模型过于复杂。
- 多种模型结合:集成学习的思想。
- Dropout随机失活:随机从网络中去掉一部分隐藏神经元。
- 限制训练时间、次数,及早停止。
- 增加噪声(?目前不是很理解)
欠拟合问题
1.问题描述
欠拟合(under fitting),也可称为高偏差,是指模型在训练集、验证集以及测试集上均表现不佳的情况。
在训练中表现为:训练集的loss较大,acc较低,测试集的acc也较低。
2.出现原因
- 神经网络的拟合能力不足
- 网络配置的问题
3.避免方法
- 增加模型的迭代次数,用更多的数据来喂养模型,使其具有更好的拟合能力。
- 增加网络的深度与广度,增大其容量,使其用更好的空间表示能力。
由于硬件设备的快速更新和理论知识是逐渐完善,欠拟合现象一般不容易出现,即使出现也可以通过增加模型难道或者神经网络层数来解决问题。相比较与欠拟合,过拟合是深度学习中比较容易出现且较难解决的问题。