欠拟合和过拟合简介
机器/深度学习的基本问题是利用模型对图像、语音、数字等数据进行拟合。学习的目的是对未曾在训练集合出现的样本能够正确预测。
在进行如下讲解之前先简单地介绍几个概念:模型对训练集数据的误差称为经验误差,对测试集数据的误差称为泛化误差。模型对训练集以外样本的预测能力就称为模型的泛化能力,追求这种泛化能力始终是机器与深度学习的目标。过拟合(overfitting)和欠拟合(underfitting)是导致模型泛化能力不高的两种常见原因,都是模型学习能力与数据复杂度之间失配的结果。
“欠拟合”的主要体现为:在模型学习能力较弱,而数据复杂度较高的情况出现,此时模型由于学习能力不足,无法学习到数据集中的“一般规律”,因而导致泛化能力弱。
“过拟合”的表现与“欠拟合”的表现恰恰相反,其主要表现为:在模型学习能力过强的情况中出现,此时的模型学习能力太强,以至于将训练集单个样本自身的特点都能捕捉到,并将其认为是“一般规律”,同样这种情况也会导致模型泛化能力下降。
欠拟合与过拟合的表现如下图所示:
过拟合与欠拟合的区别:1)欠拟合在训练集和测试集上的性能都较差,而过拟合往往能较好地学习训练集数据的性质,而在测试集上的性能较差;2)在神经网络训练的过程中,欠拟合主要表现为输出结果的高偏差,而过拟合主要表现为输出结果的高方差。
欠拟合原因与解决方法
欠拟合出现原因
- 数据的特征量过少
- 建立的模型复杂度过低
欠拟合解决方法主要包括如下几点:
- 添加多项式特征,这个方法在机器学习算法中应用较为普遍,例如将线性模型通过添加二次项或者三次项使模型泛化能力更强
- 增加新特征,通过加入进特征组合、高次特征等手段
- 减少正则化参数,正则化的目的是用来防止过拟合的,但是模型出现了欠拟合,则需要减少正则化参数
- ***调整模型的容量(capacity)***,通俗地,模型的容量是指其拟合各种函数的能力
过拟合原因与解决方法
过拟合出现原因
- 样本原因 ,
1)样本噪音干扰过大,样本中的部分噪音被认为是数据的特征从而扰乱了学习的过程;
2)建模样本选取或是操作过程出现偏差,如样本数量太少,选样方法错误,样本标签错误等; - 模型复杂度过高,参数太多
- 权值学习迭代次数足够多(Overtraining)
过拟合解决方案
- 数据扩增,即增加训练数据样本
- 正则化(Regularization)(L1和L2)
- Early stopping:一种迭代次数截断的方法来防止过拟合,即在模型对训练数据集迭代收敛之前停止迭代来防止过拟合
- Dropout