欠拟合和过拟合
欠拟合是指模型在训练集、验证集和测试集上表现不佳;
过拟合是指模型在训练集上表现良好,但在验证和测试阶段却不尽如人意,即模型的泛化能力较差。
欠拟合和过拟合一直是机器学习训练中的难题。在训练模型时,往往需要对两者进行平衡,使模型不仅在训练集上表现良好,而且在验证集和测试集上也表现良好。具有出色的预测能力。下面总结了解决欠拟合和过拟合的一般方法,并说明了一般的处理方向。具体应用必须结合实际的任务、数据和算法模型。
修复欠拟合的方法(高偏差)
- 模型复杂度
• 使相同的算法复杂化。例如,回归模型增加了更多的高阶项,增加了决策树的深度,增加了神经网络的隐藏层和隐藏单元的数量等。
• 放弃旧算法并使用更复杂的算法或模型。比如用神经网络代替线性回归,用随机森林代替决策树等。
- 添加更多功能以使输入数据更具表现力
• 特征挖掘很重要,尤其是表达能力强的特征,往往可以承受大量表达能力弱的特征
• 特征的数量往往不是重点,质量才是重点,总之,实力最重要
• 挖掘出强特征的能力还取决于对数据本身和具体应用场景的深刻理解,往往依赖于经验
- 调整参数和超参数
• 超参数包括:
- 神经网络中:学习率、学习衰减率、隐藏层数、隐藏层的单元数、Adam优化算法中的β1和β2参数、batch_size数值等
- 其他算法中:随机森林的树数量,k-means中的cluster数,正则化参数λ等
- 增加训练数据通常没有用
• 欠拟合是模型的学习能力不足,无论添加多少数据,都无法很好地学习
- 较低的正则化约束
• 正则化约束是为了防止模型过拟合。如果模型完全没有过拟合而是欠拟合,考虑是减小正则化参数λ还是直接去掉正则化项
解决过拟合(高方差)的方法
- 增加训练数据的数量
• 过拟合最常见的现象是数据量太小,模型太复杂
• 过度拟合是由模型学习数据的一些噪声特征引起的。增加训练数据量可以减少噪声的影响,让模型更多地了解数据的一般特征。
• 有时可能难以增加数据量,收集和处理数据需要一定的时间和精力
• 使用现有数据进行扩充也可能是一个好主意。例如在图像识别中,如果没有足够的图像训练,可以对现有图像进行旋转、拉伸、镜像、对称等,这样数据量就可以扩大数倍,而无需额外补充数据。
• 注意确保训练数据的分布和测试数据的分布必须一致。如果两者的分布完全不同,那么模型预测真的是在弹钢琴。
- 使用正则化约束
• 在代价函数后面添加正则化项,可以避免训练出来的参数过大从而使模型过拟合。使用正则化缓解过拟合的手段广泛应用,不论是在线性回归还是在神经网络的梯度下降计算过程中,都应用到了正则化的方法。常用的正则化有l1正则和l2正则,具体使用哪个视具体情况而定,一般l2正则应用比较多
- 减少特征数量
• 欠拟合需要增加特征数量,过拟合自然会减少特征数量。去除那些不常见的特征可以提高模型的泛化能力
- 调整参数和超参数
• 无论如何,调音是必须的
- 降低模型复杂性
• 欠拟合增加了模型的复杂性,所以过拟合正好相反
- 使用Dropout
• 该方法仅适用于神经网络,即按一定比例去除隐藏层的神经单元,以简化神经网络的结构
- 提早结束训练
• 即early stopping,在模型迭代训练时候记录训练精度(或损失)和验证精度(或损失),倘若模型训练的效果不再提高,比如训练误差一直在降低但是验证误差却不再降低甚至上升,这时候便可以结束模型训练了
文章出处登录后可见!