模型组合
利用模型集合提高模型的准确性和鲁棒性。探索袋化、提升、堆叠等技术和实际应用。
模型集合是一种机器学习(ML)技术,它将两个或更多单个模型的预测结果结合在一起,产生一个单一的、通常更优越的最终预测结果。其核心原理是基于 "群众智慧 "的理念:通过汇总多个不同模型的 "意见",模型集合可以弥补任何单个模型的个别错误或偏差,从而提高准确性、改善鲁棒性并降低过拟合风险。这种方法是高性能 ML 的基石,经常被用来赢得数据科学竞赛。
模型组合的工作原理
模型组合的有效性取决于其组成模型的多样性。如果所有模型都犯同样的错误,那么将它们组合在一起就不会有任何好处。因此,可以通过在不同的训练数据子集上训练模型、使用不同的算法或以不同的参数初始化模型来鼓励多样性。
创建和组合合奏曲的常用技巧包括
- 套袋(Bootstrap Aggregating):包括在训练数据的不同随机子集上训练同一模型的多个实例。最终预测结果通常是所有模型预测结果的平均值或多数票。随机森林(Random Forest)就是基于袋集的集合的典型例子。
- 提升:模型按顺序进行训练,每个新模型都侧重于纠正前一个模型所犯的错误。这样就形成了一个功能强大、高度准确的复合模型。流行的提升算法包括AdaBoost和梯度提升,实现方法有XGBoost和LightGBM。
- 堆叠:这种方法包括训练多个不同的模型(如神经网络、支持向量机和 决策树),然后使用另一个模型(称为元学习器)来组合它们的预测结果并生成最终输出。
相关概念
将模型集合与相关术语区分开来是很有用的:
- 集合方法:这是机器学习中使用的更广泛的理论技术类别(如bagging和boosting)。模型集合 "是应用集合方法创建的具体成果--训练有素的模型的特定集合。
- 专家混合模型(MoE):与将所有模型的输出结果合并在一起的典型集合不同,混合专家模型使用一个门控网络,为给定输入动态选择最合适的 "专家 "模型。混合专家模型只选择一位专家,而集合模型则会咨询所有专家。
实际应用
模型集合被广泛应用于各个领域,以实现最先进的性能。
- 计算机视觉中的物体检测:在自动驾驶汽车等安全关键型系统或安全监控等高价值任务中,集合可提高可靠性。例如,集合可以结合不同的物体检测模型,如不同版本的 Ultralytics YOLO(如YOLOv8和YOLOv10),或使用不同数据增强策略训练的模型。YOLOv5 模型组装指南》展示了如何提高检测准确性。甚至像测试时间增强 (TTA)这样的技术也可以被视为一种集合形式,因为它们可以对图像的多个增强版本进行平均预测。
- 医学诊断:集合在医学图像分析中至关重要,例如从 X 光片、核磁共振成像或病理切片中诊断疾病。一种CNN可能擅长检测某些异常,而另一种CNN则更擅长检测不同的异常。通过组合它们的预测结果,诊断工具可以获得更高的准确性和可靠性,这对于肿瘤检测等应用至关重要。
集合模型虽然功能强大,但却增加了模型训练和部署的复杂性和计算需求。管理多个模型需要更多的资源、精心的工程设计和强大的MLOps实践。然而,在关键应用中,显著的性能提升往往能证明这些成本的合理性。Ultralytics HUB等平台可以简化使用PyTorch或TensorFlow 等框架构建的多个模型的管理。