机器学习的一个重要目标是提高模型的泛化能力,即在之前未观测到的输入上的推理能力。我们在进行机器学习模型训练时,按照7:1:2比例将输入数据划分为训练集、验证集和测试集,假设不同数据集是相互独立的,且是同分布的。训练集,用于训练普参,在超参固定时,寻找最优普参,使得模型最优。验证集,用于寻找最优超参,使得模型最优。测试集,用于测试模型的泛化能力,该阶段既不调整普参,也不调整超参。在训练集上的误差称之为训练误差,在测试集上的误差称之为测试误差,通常而言,我们使用测试误差来评估模型的泛化误差,所以,我们使用训练误差来训练模型,但是我们更关注测试误差。
一、泛化问题
进行模型训练时,容易发生欠拟合和过拟合问题。
含义:欠拟合是指模型没有学习到数据特征,不能很好地拟合数据,预测结果不准,属于营养不足。过拟合是指模型不仅学习到了数据特征,还学习到了噪声特征,预测结果有偏差,属于营养过剩。
原因:模型的容量是指拟合各种函数的能力。容量低的模型可能很难拟合训练集,不能解决复杂的任务,容易发生欠拟合问题。容量高的模型能够解决复杂的任务,但是其容量高于任务时,可能会发生过拟合问题。当模型的容量适合于执行任务的复杂度和所提供数据的数量时,模型效果最佳。
判断:两个因素会决定机器学习模型的效果:一是减小训练误差;二是缩小训练误差和测试误差的差距。当训练误差较高时,容易发生欠拟合问题。当训练误差和测试误差较大时,容易发生过拟合问题。
举例:下图展示了欠拟合、拟合、过拟合三种场景,左图中使用一个线性函数拟合数据,会导致欠拟合。中图中使用二次函数拟合数据,泛化能力很好。右图中使用一个9阶多项式拟合数据,会导致过拟合。
如果觉得《机器学习基础2:泛化能力》对你有帮助,请点赞、收藏,并留下你的观点哦!