关键问题是:假如模型效果不好,应该如何改善?答案可能有以下几种。
用更复杂 / 更灵活的模型。
用更简单 / 更确定的模型。
采集更多的训练样本。
为每个样本采集更多的特征。
问题的答案往往与直觉相悖。换一种更复杂的模型有时可能产生更差的结果,增加更多的训练样本也未必能改善性能!改善模型能力的高低,是区分机器学习实践者成功与否的标志。
01 / 偏差与方差的均衡
“最优模型”的问题基本可以看成是找出偏差与方差平衡点的问题。
下图显示的是对同一数据集拟合的两种回归模型。
显然,这两个模型拟合得都不是很好,但它们的问题却是不一样的。
左边的模型希望从数据中找到一条直线。但由于数据本质上比直线要复杂,直线永远不可能很好地描述这份数据。这样的模型被认为是对数据欠拟合;也就是说,模型没有足够的灵活性来适应数据的所有特征。另一种说法就是模型具有高偏差。
右边的模型希望用高阶多项式拟合数据。虽然这个模型有足够的灵活性可以近乎完美地适应数据的所有特征,但与其说它是十分准确地描述了训练数据,不如说它是过多地学习了数据的噪音,而不是数据的本质属性。这样的模型被认为是对数据过拟合,也就是模型过于灵活,在适应数据所有特征的同时,也适应了随机误差。另一种说法就是模型具有高方差。
现在再换个角度,如果用两个模型分别预测 y 轴的数据,看看是什么效果。在下图中,浅红色的点是被预测数据集遗漏的点。