为什么会产生过拟合,有哪些方法可以预防或克服过拟合?
原因
一些假设条件(如样本独立同分布)可能是不成立的;训练样本过少不能对整个空间进行分布估计
判断依据
一般而言训练误差很低,但是测试误差较高,过拟合的概率较大,如果训练误差和测试误差都很高,一般是欠拟合。
解决方法
(1)数据集角度
- 增加样本量,数据集扩增
- 原有数据加随机噪声
- 重采样
(2)特征角度
- 特征选择
- 特征降维
(3)模型角度
- 降低模型复杂度
- 正则化 ,正则化正是通过在损失函数上添加额外的参数稀疏性惩罚项(正则项),来限制网络的稀疏性,以此约束网络的实际容量,从而防止模型出现过拟合。L1正则化是将权值的绝对值之和加入损失函数,使得权值中0值比重增大,因此得到的权值较为稀疏。L2正则化是将权重的平方之和加入损失函数,使得权值分布更加平均,所以权值较为平滑。
- Dropout舍弃,在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃,使得每次训练的网络结构多样。
(4)训练角度
早停止,如在训练中多次迭代后发现模型性能没有显著提高就停止训练
交叉验证