1 简介
拟合:依据自变量,优化自变量观测参数,使因变量无限接近有效的真实数据的过程.
过拟合:观测参数"学习"到了自变量数据集的所有特征,包括有效数据和噪声(异常)数据,该模型在训练数据集的成绩斐然,但是,泛化能力较弱,在测试数据集上表现一般,因为该模型将无效数据的特征也提取出来了;
欠拟合:观测参数不能充分学习自变量数据集的特征,属于"差生",一般很少提到欠拟合,因为只要模型不能很好地预测训练集和测试集,就是欠拟合,训练过程中的每一步都是欠拟合的过程,所以,一般不提欠拟合.
2 产生的原因
2.1 过拟合产生的原因
训练集数据量较少,抽样方法错误,样本标签标注错误,导致训练集数不足以表示分类或识别任务; 训练集数据噪声(无效数据,异常数据)过多,使训练过程中将噪声识别为有效特征,破坏了分类或识别; 假设的模型无法合理存在,或假设成立的条件实际不成立,如逻辑回归需要自变量独立,但是图像分割任务中,有数据交叉,不能实现独立; 自变量观测参数太多,模型过于复杂; 决策树模型如果对叶节点没有合理剪枝,使分类阈值无法满足测试数据,泛化能力变弱; 神经网络,训练集数据可能存在分类决策面(分类标准)不唯一,随优化迭代,神经网络权重可能收敛于过于复杂的决策面;学习能力过于优秀,将噪声特征也学习了,是泛化能力降低;
2.2 欠拟合产生的原因
模型复杂度过低 训练数据集过少
3 解决方案
3.1 过拟合解决方案
正则化 增加数据 Dropout Early Stopping
【正则化】
在损失函数中引入刻画模型复杂程度的指标,假设用训练分类任务的损失函数为,优化时使用的目标函数为:
其中
参数 | 描述 |
---|---|
刻画模型的复杂程度 | |
模型复杂损失在总损失中的比例 | |
神经网络中的所有参数 | |
模型权重 |
常用正则有两种,和,刻画函数分别为:
正则通过限制权重大小,限制模型对训练数据集中的噪声进行拟合.正则使参数变得稀疏,即部分参数比变为0,如Relu即有将参数稀疏的功能,忽略小数据.正则不会是权重参数变稀疏,当权重参数很小时,参数的平方可忽略不计,但不会为0.
【Dropout】
按一定概率(如0.5的概率)将隐藏层的某些节点从网络中剔除,本轮训练不进行更新,待其他轮进行更新.每轮训练都会已一定概率更新权重,而不是更新全部权重,如图3.2所示,标准神经网络每轮训练更新全部权重参数,使用Dropout每轮训练,更新部分参数,另一部分参数不更新,待下次下一轮或下面某一轮更新,这种方法可有效降低过拟合程度.
【Early Stopping】
迭代次数截断的方法防止过拟合,即在模型对训练数据集迭代收敛之前停止迭代.在每个epoch结束时计算模型在验证数据集上的精度,当精度不再提高时,即停止训练.一般做法是,记录正确率,连续比较10次Epoch的正确率,准确率不在提高,则认为达到最佳正确率.
3.2 欠拟合解决方案
增加新特征,加入特征组合,高次特征,增大假设空间; 添加多项式特征,常应用于机器学习中,如将线性模型通过添加二次项或三次项增强模型繁华能力; 减少正则化参数,正则化用于防止过拟合,但模型出现了欠拟合,需要减少正则化参数; 使用非线性模型,如核SVM,决策树等; 调整模型容量,即调整拟合各种函数的能力; 容量低的模型可能很难拟合训练集,使用集成学习,如Bagging,将多个模型融合;
【参考文献】
[1]https://www.cnblogs.com/nxld/p/6058782.html
[2]https://blog.csdn.net/a819825294/article/details/51239686
[3]https://blog.csdn.net/stdcoutzyx/article/details/49022443
[4]http://www.cnblogs.com/tornadomeet/p/3258122.html