前文已经给出了三种可提升模型性能的方法论:残差连接、正则化和深度可分离卷积。本文提出另一种强大的技术是模型集成(model ensembling)。
集成是指将一些列不同模型的预测结果汇集到一起,从而得到更好的预测结果。
集成依赖于这样的假设,即对于独立训练的不同良好模型,他们表现良好的可能是因为不同的原因:每个模型都从略有不同的角度观察数据来做出预测,得到了“真相”的一部分,但不是全部真相。将这些真相汇聚在一起,可以得到对数据更加准确的描述。
以分类问题为例。想要将一组分类器的预测结果汇聚在一起【即分类器集成(ensemble the classifiers)】,最简单的方法就是将它们的预测结果取平均作为预测结果。
如下使用4个不同的模型来计算初始预测:
preds_a = model_a.predict(x_val)
preds_b = model_b.predict(x_val)
preds_c = model_c.predict(x_val)
preds_d = model_d.predict(x_val)
final_preds = 0.25*(preds_a + preds_b + preds_c + preds_d) #最终预测应该比任何一个初始预测都更加准确
只有这组分类器中每一个的性能差不多一样好时,这种方法才奏效。如果其中一个分类器性能比其他的差很多,那么最终预测结果可能不如这一组中最佳分类器那么好。
将分类器集成有一个更好的做法,即加权平均,其权重在验证数据上学习得到。通常来说,更好的分类器被赋予更