Deep Ensembles是一种机器学习技术,其中多个神经网络独立地在同一任务上训练,并通过平均等方式组合它们的预测以产生最终输出。这种方法利用了集成学习的原理,在统计学和机器学习中,集成学习使用多种学习算法以获得比任何单一算法单独所能获得的更好的预测性能。与统计力学中通常是无限的统计集成不同,机器学习集成由一组具体的有限替代模型组成,但通常允许这些替代模型之间存在更灵活的结构。Deep Ensembles已成为深度学习中提高预测准确性和不确定性估计校准的标准方法,在实践中往往超越更复杂的贝叶斯方法。
其核心思想是,通过使用不同的随机初始化和数据打乱方式训练多个模型,集成捕获了一组多样化的假设。当取平均时,这些假设往往会抵消个体误差,从而产生更稳健和准确的预测。该技术在安全关键的应用中尤其有价值,例如自动驾驶、医学诊断和金融预测,在这些领域中,可靠的不确定性量化至关重要。Deep Ensembles也广泛用于强化学习、自然语言处理和计算机视觉,通常作为更复杂不确定性方法的基线。
历史背景
集成学习的概念源于经典机器学习,其中像bagging(引导聚合)和boosting等方法在20世纪90年代被开发出来。Bagging由Leo Breiman于1996年提出,通过从训练数据中生成随机样本并对每个样本拟合相同的模型来创建多样性,形成同质的并行集成。Boosting大约在同一时间发展起来,它顺序地在先前模型的加权误差上训练基础模型,产生一个加性模型。这些技术主要应用于决策树,导致了随机森林和梯度提升树,这些方法至今仍然流行。
Deep Ensembles随着2010年代深度学习的兴起而出现。一个关键的里程碑是2017年DeepMind的Balaji Lakshminarayanan、Alexander Pritzel和Charles Blundell发表的论文《使用Deep Ensembles进行简单且可扩展的预测不确定性估计》。这项工作表明,使用适当的评分规则(如负对数似然)训练神经网络集成,可以产生校准良好的不确定性估计,其性能可与贝叶斯神经网络相媲美或超过,但实现起来要简单得多。此后,Deep Ensembles已在业界广泛采用,包括大型语言模型和其他生成式AI系统。
Deep Ensembles的工作原理
在典型的Deep Ensemble中,多个神经网络在同一数据集上独立训练。每个网络具有相同的架构,但使用不同的随机权重初始化,并使用不同的数据顺序(例如,不同的mini-batch打乱方式)进行训练。这种随机性确保模型收敛到不同的局部最优解,从而提供多样性。在推理期间,所有模型的预测被平均,对于分类任务取输出概率的平均值,对于回归任务取预测值的平均值。
不确定性估计是一个关键优势。集成预测的方差可以分解为aleatoric分量(数据中的固有噪声)和epistemic分量(模型不确定性)。通过训练每个模型输出均值和方差(对于回归)或使用softmax概率的分布(对于分类),集成可以提供置信度度量。对于分类,softmax输出的平均值给出校准的概率,而模型之间的分歧指示epistemic不确定性。
训练集成比训练单个模型需要更多的计算,因为每个成员必须单独训练。然而,可以通过在多个GPU上并行化训练或使用快照集成等技术来缓解计算成本,其中单次训练运行在不同epoch捕获多个模型。尽管有额外成本,但准确性和不确定性的改进通常证明这种开销是合理的,尤其是在错误代价高昂的应用中。
理论基础
集成理论为组合模型为何有效提供了依据。经验上,当模型之间存在显著多样性时,集成往往产生更好的结果。因此,许多方法寻求促进多样性,例如通过使用数据的随机子集或特征。几何框架提供了一个正式的视角:每个模型对整个数据集的输出可以被视为多维空间中的一个点,目标被视为理想点。欧几里得距离衡量单个模型的性能(到理想点的距离)以及模型之间的不相似性(点之间的距离)。在此框架内,可以证明对所有基础模型的输出取平均会导致等于或优于单个模型平均的结果。此外,通过最优加权,加权平均可以胜过任何单个模型。
另一个理论结果是“集成构建中的收益递减定律”,它表明组件分类器存在一个理想数量。拥有多于或少于这个数量的组件可能会降低准确性,并且使用与类别标签数量相同的独立组件数量可获得最高准确性。这一发现对设计Deep Ensembles有影响,尽管在实践中,5到10个模型的集成是常见的,并且通常足够了。
与其他不确定性方法的比较
Deep Ensembles经常与贝叶斯神经网络(BNN)进行比较,后者在权重上放置分布以捕获不确定性。BNN在理论上优雅,但计算昂贵且难以扩展。Deep Ensembles提供了一种更简单的替代方案,在实践中通常产生校准更好的不确定性估计。它们也与蒙特卡洛dropout相比,后者在推理时使用dropout来近似贝叶斯推断。虽然MC dropout更便宜,但它倾向于低估不确定性。Deep Ensembles也与Machine learning和Deep learning中的模型平均等技术相关,但它们特别强调不确定性量化。
在Large language model的背景下,Deep Ensembles已被用于通过训练多个模型并聚合其输出来提高事实准确性并减少幻觉。然而,训练多个大型模型的计算成本是 prohibitive 的,因此研究人员经常在解码级别使用类似集成的方法,例如采样多个输出并选择最一致的一个。
应用与用例
Deep Ensembles广泛用于不确定性重要的领域。在自动驾驶中,像Waymo和Tesla这样的公司使用集成来改进感知和决策,确保系统在行动前有信心。在医学成像中,集成有助于以更高的可靠性检测异常,如MIT CSAIL和Stanford AI Lab等机构的研究所见。在强化学习中,集成用于估计价值函数和策略,提高样本效率和稳健性。
在工业界,OpenAI和Google DeepMind已探索用于模型评估和安全的集成方法。例如,集成可用于检测分布外输入,这对于在现实世界中部署模型至关重要。金融机构使用集成进行风险评估和欺诈检测,其中误报代价高昂。此外,集成是Generative AI系统中的关键组件,它们有助于稳定训练并提高输出质量。
实际考虑与局限性
实现Deep Ensembles需要仔细关注几个因素。集成大小的选择至关重要;模型太少可能无法提供足够的多样性,而太多则增加计算成本而没有显著收益。训练过程必须确保多样性,这通常通过随机初始化和数据打乱实现,但也可以通过使用不同的架构或数据子集来增强。聚合方法很重要:简单平均是常见的,但如果模型具有不同的优势,加权平均或堆叠可以产生更好的结果。
一个局限性是内存和计算开销,对于大型模型可能相当大。为了解决这个问题,模型剪枝和蒸馏等技术可以将集成压缩为单个模型,尽管这可能牺牲一些不确定性质量。另一个挑战是Deep Ensembles不能捕获所有形式的不确定性;它们主要对epistemic不确定性有效,而aleatoric不确定性必须单独建模。尽管有这些局限性,Deep Ensembles仍然是许多应用中稳健且实用的选择。
未来方向
研究继续改进Deep Ensembles的效率和有效性。一个方向是开发“具有共享表示的Deep Ensembles”,其中模型共享较低层以减少计算成本,同时在较高层保持多样性。另一个是使用超网络来高效生成集成成员。在大型模型时代,人们对“集成蒸馏”感兴趣,其中训练单个模型来模仿集成的预测分布,在推理时提供不确定性估计,而无需集成的成本。
随着AI系统越来越集成到关键决策中,对可靠不确定性量化的需求日益增长。Deep Ensembles凭借其简单性和强大的经验性能,很可能仍然是基石技术。它们也与其他方法结合使用,例如Batch Normalization和Dropout,以进一步提高稳健性。开源社区,包括PyTorch和TensorFlow等框架,提供了实现集成的工具,使该技术可供广泛的从业者使用。
另见
- Machine learning
- Deep learning
- Neural network
- Uncertainty Quantification(如果可用)
- Bagging(如果可用)
- boosting(如果可用)
- model-averaging(如果可用)
- bayesian-neural-network(如果可用)
- Monte Carlo Dropout(如果可用)
参考文献
- Lakshminarayanan, B., Pritzel, A., & Blundell, C. (2017). Simple and Scalable Predictive Uncertainty Estimation using Deep Ensembles. NeurIPS.
- Breiman, L. (1996). Bagging predictors. Machine Learning.
- Freund, Y., & Schapire, R. (1997). A decision-theoretic generalization of on-line learning and an application to boosting. JCSS.
- Zhou, Z.-H. (2012). Ensemble Methods: Foundations and Algorithms. Chapman & Hall/CRC.