模型集合是一种机器学习(ML)方法,在这种方法中,多个单独的模型被策略性地组合在一起,以产生一个单一的、通常是卓越的预测输出。模型集合不依赖于单一模型,而是利用多个模型的集体智慧,旨在提高整体性能、增强稳健性,并降低由于任何一个模型的弱点而导致预测结果不佳的可能性。这种技术是现代人工智能(AI)的基石,被广泛应用于包括计算机视觉(CV)在内的各个领域。模型集合属于更广泛的集合方法范畴。
模型组合的工作原理
模型组合背后的核心理念是,通过组合不同的模型--以不同方式或使用不同算法训练的模型--它们各自的误差可能会相互抵消,从而得到更准确、更可靠的最终预测结果。组合模型输出的常见策略包括
- 平均/投票:对于回归任务,对各个模型的预测结果进行平均。对于分类任务,最终预测结果由多数票(硬投票)或预测概率平均值(软投票)决定。
- 套袋(Bootstrap Aggregating):同一基础模型(例如决策树)的多个实例在训练数据的不同随机子集上进行独立训练。随机森林算法就是一个典型的袋集例子。
- 提升:模型按顺序训练,每个新模型都侧重于纠正前一个模型所犯的错误。例如 AdaBoost、梯度提升和XGBoost。
- 堆叠:将多个不同基础模型(如SVM、神经网络和k-Nearest Neighbors模型)的预测结果作为最终 "元模型"(通常是逻辑回归等较简单的模型)的输入特征,从而学习如何将这些预测结果进行最佳组合。
在深度学习中,集合可能涉及将不同架构的模型(如CNN和视觉转换器 (ViT))、使用不同超参数训练的模型或在不同数据子集上训练的模型结合起来。在不同的时间点保存模型检查点并进行组合(快照组合)等技术也很有效。
模型集合与集合方法
这些术语虽然密切相关,但细微差别略有不同。
- 集合方法:这是指用于创建和组合多个模型的技术或算法(如袋法、提升法、堆叠法)的大类。这是一种方法论。
- 模型集合:通常指使用集合方法组合的特定模型组。它是由此产生的复合模型本身。
从本质上说,你使用集合方法来创建模型集合。
益处和考虑因素
使用模型集合具有显著优势:
- 提高性能:与任何单一的组成模型相比,集合模型往往能获得更高的准确性和更好的泛化效果,在机器学习竞赛中频频获胜。
- 增强鲁棒性:通过平均各个模型的偏差或误差,集合模型对数据中的异常值或噪音的敏感度更低,也更不容易过度拟合。
- 减少错误:结合多种模型有助于降低依赖单一错误模型的风险。
不过,也有一些考虑因素:
- 复杂性增加:培训、管理和部署多个模型本身就比处理单个模型复杂。模型部署变得更加复杂。
- 计算成本更高:训练多个模型需要更多的计算资源CPU/GPU)和时间。由于需要计算和组合所有基础模型的预测结果,推理速度也会变慢。
- 可解释性:尽管可解释的人工智能(XAI)技术正在不断发展,但理解一个集合为什么会做出特定预测可能比解释一个更简单的模型更具挑战性。
Ultralytics HUB等平台可以帮助管理训练和跟踪多个模型的复杂性,从而简化有效组合的创建。