什么是 蒙特卡洛 Dropout(Monte Carlo Dropout)?
蒙特卡洛 Dropout(Monte Carlo Dropout)是在推理时采样 Dropout Mask,对固定已学习权重执行多次前向传播,再汇总预测分布的不确定性估计方法,常缩写为 MC Dropout。
快速了解
| 规范文档 | 官方规范 |
|---|
工作原理
采样 Dropout,同时冻结其他模型状态
Gal 与 Ghahramani在特定深度高斯过程视角下,将 Dropout 训练和随机推理解释为近似贝叶斯推断。推理时应保留训练时的 Dropout 位置与概率,独立采样 Mask,并固定权重。如果框架的全局训练模式还会更新 BatchNorm 统计或启用其他增强,就不能简单调用全模型 train();应只激活随机 Dropout,同时冻结归一化与可变状态。
围绕声明的预测对象汇总样本
回归任务可报告样本均值与跨前向传播方差;需要总预测方差时,还要加入单独建模的观测方差。分类任务应先平均类别概率,再计算熵或其他决策统计;Logits 的变化本身不是经过校准的概率。采样次数应足以让目标统计量稳定,并记录随机种子策略、测量蒙特卡洛误差,而不是假设任意固定次数都足够。
用简单替代方案检验近似价值
在代表性分布偏移下检查准确性、严格适当评分、校准、选择性风险、延迟和不确定性行为。MC Dropout 失效模式研究表明,其近似在部分设定下可能随数据增加呈现病态行为;增加前向次数无法修复错误的近似族。应与确定性基线比较,高风险场景还应比较深度集成或其他 UQ 方法,并让硬校验与 Fallback 独立于 MC Dropout。
主要特点
- 使用独立采样的 Dropout Mask 执行多次推理
- 保持已学习权重和非 Dropout 模型状态不变
- 无需训练完整显式集成即可近似预测分布
- 只表示指定 Mask 与已学习权重能够产生的变化
- 在蒙特卡洛误差、延迟和成本之间存在采样次数权衡
- 必须单独验证校准、偏移行为和决策效用
常见用途
- 为已有 Dropout 模型增加相对轻量的不确定性代理
- 估计回归任务的预测均值与跨采样方差
- 为不确定分类结果提供拒答或复核阈值信号
- 比较模型发布前后的随机前向传播稳定性
- 与确定性和集成基线比较不确定性质量
示例
Loading code...常见问题
蒙特卡洛 Dropout 如何工作?
先使用明确的 Dropout 层训练模型,冻结已学习状态,在推理时独立采样 Dropout Mask,并汇总多次预测。结果分布反映的是这些 Mask 引入的变化,而不是全部模型与数据不确定性。
蒙特卡洛 Dropout 需要多少次前向传播?
没有通用次数。在固定验证集上,随采样次数增加跟踪均值、方差、熵或决策阈值的蒙特卡洛误差与稳定性,选择满足预设容差和延迟预算的最小次数。
MC Dropout 应该把整个模型切换到训练模式吗?
如果训练模式还会更新 BatchNorm 统计或激活其他可变行为,就不应该这样做。应只启用随机 Dropout,同时冻结已学习权重、归一化统计、数据增强和所有无关状态。
蒙特卡洛 Dropout 方差是经过校准的不确定性吗?
不是自动成立。Mask 方差只是某个近似产生的尺度。需要用严格适当评分、可靠性或覆盖率、关键切片和偏移数据验证概率或区间;任何校准映射都应在独立代表性数据上拟合。
蒙特卡洛 Dropout 与深度集成有什么区别?
MC Dropout 复用一套已学习权重并改变 Mask,训练通常更便宜,但推理仍需重复执行;深度集成改变分别训练的成员,可能探索更广的拟合解,但成本更高。相对质量取决于任务与评测协议。