尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

证据深度学习实战:给分类模型装上不确定性估计的“自知之明“

证据深度学习实战:给分类模型装上不确定性估计的“自知之明“ 证据深度学习实战给分类模型装上不确定性估计的自知之明【免费下载链接】annotated_deep_learning_paper_implementations‍ 60 Implementations/tutorials of deep learning papers with side-by-side notes ; including transformers (original, xl, switch, feedback, vit, ...), optimizers (adam, adabelief, sophia, ...), gans(cyclegan, stylegan2, ...), reinforcement learning (ppo, dqn), capsnet, distillation, ... 项目地址: https://gitcode.com/gh_mirrors/an/annotated_deep_learning_paper_implementations先看一个让人后背发凉的场景某医疗影像模型对一张病灶切片打出99.7%的高置信度但诊断结果是错的。这不是段子而是传统分类模型最常见的翻车方式——错得越离谱往往越自信。要根治这个痛点业界的主流思路叫不确定性估计uncertainty estimation其中一条优雅的路线就是证据深度学习Evidential Deep Learning。开源项目 annotated_deep_learning_paper_implementations 里给出了这套算法的完整 PyTorch 实现与逐行中文注解代码位于labml_nn/uncertainty/evidence/本文带你从为什么模型会盲目自信一路走到亲手跑通它。为什么 Softmax 的 99.7% 会骗人分类模型不确定性的常见误区传统分类器最后一层是 Softmax它有个天生的毛病无论输入多陌生输出的各类概率之和恒等于 1。换句话说模型必须把信心分完哪怕它根本没见过这个输入。举个直观的例子训练集里只有猫和狗某天来了一张猫头鹰照片。模型没有拒答这个选项只能硬着头皮说猫 60%、狗 40%——运气差一点甚至直接猫 99%。这就是核心误区Softmax 概率是相对热度不是绝对自信。它只告诉你在所有类别里谁更可能却从不说我对这个输入有多陌生。我们平时怎么判断模型靠不靠谱大多是事后看验证集。下面这张训练/验证损失曲线就能说明问题训练损失一路走低、验证损失却抬头的瞬间模型已经开始对没见过的数据心里没底了。可问题在于这种没底只有事后复盘才知道运行时的模型自己从不报告。证据深度学习要解决的正是让模型在推理那一刻主动告诉你这个判断我不敢打包票。让网络输出证据而非概率信念质量与不确定性质量证据深度学习的理论基础是主观逻辑Dempster-Shafer 证据理论核心思想一句话把确定性和不确定性分开记账。对每一个类别模型分配一块信念质量b_k支持它是这个类的程度额外留出一块不确定性质量u支持我不知道它属于哪一类的程度。两者满足u Σ b_k 1。注意u 是给所有类别整体的它就是你想要的那个我不敢说。那么这些质量从哪来答案是证据evidence。项目实现中网络最后一层不再接 Softmax而是接ReLU 或 Softplus把输出压成非负的证据值 e_k ≥ 0再换算成信念质量和不确定性b_k e_k / Su K / S其中 S Σ(e_k 1)K 是类别数打个比方证据就像法庭上的证人证词。某个类别收到的证词越多信念越笃定全场证词都稀稀拉拉时S 很小不确定性 u 自然被顶得高高的。模型不用假装懂它可以直接承认自己没底。用狄利克雷分布把一个概率升级成概率的分布光有证据还不够证据深度学习更巧妙的一步是把模型的输出建模成一个概率分布之上的分布——狄利克雷分布。把证据换算成参数 α_k e_k 1S 就是著名的狄利克雷强度。此时模型输出的不再是一个孤零零的概率向量而是一个分布 D(p | α)从这个分布里可以采样出无数个可能的类别概率。分布越尖α 之间差距悬殊说明模型对某个类高度笃定分布越平α 都很接近且总量小说明模型在瞎猜。预测时取期望概率 p̂_k α_k / S 即可。这一步的收益是除了预测结果你还白得了一个概率分布的形状——形状本身就是不确定性最丰富的载体。两种不知道要分开算偶然不确定性与认知不确定性很多文章把不确定性混为一谈但证据深度学习把不知道拆成了两种处理方式完全不同类型来源加数据能解决吗偶然不确定性Aleatoric数据本身的噪声标签标注错了、图像模糊、类别天然有歧义基本不能这是数据的天花板认知不确定性Epistemic模型没见过世面训练分布没覆盖到该输入所在的区域能补数据、扩覆盖即可显著下降证据深度学习的好处是不需要显式区分机制会自己表达。样本落在训练覆盖良好的区域证据足、S 大、u 小样本落到分布外的无人区证据被压得极低u 飙升。你在风险场景里真正要盯的就是这个 u——u 高就该把判断交给人类复核。三种训练信号逼模型答对时硬气答错时低头模型天生想偷懒你得用损失函数教它诚实。项目labml_nn/uncertainty/evidence/__init__.py里实现了四种关键组件Type II 最大似然损失MaximumLikelihoodLoss把证据代入狄利克雷先验对类别概率积分求边际似然保证分类性能不掉队。贝叶斯风险损失CrossEntropyBayesRisk/SquaredErrorBayesRisk以交叉熵或平方误差为代价函数在所有可能的 p 上求期望风险——既优化准确率又隐含约束了方差。KL 散度正则KLDivergenceLoss这是诚实机制的关键——当样本被分错时把它的证据压向零逼模型承认这题我不会。退火系数KL 正则的权重 λ 从 0 缓慢升到 1避免训练初期模型躺平不学。训练时项目还会通过TrackStatistics持续记录两组指标答对样本的不确定度u.succ和答错样本的不确定度u.fail。一个训练合格的证据深度学习模型曲线会呈现清晰的剪刀差答对的越来越笃定答错的越来越犹豫——这就是模型学会自知之明的直接证据。5 分钟复现在项目中跑通 MNIST 证据深度学习实验打开项目证据深度学习相关文件全部收敛在labml_nn/uncertainty/evidence/__init__.py上述全部损失函数与统计模块experiment.py基于 LeNet 的 MNIST 训练脚本readme.md论文与实现导读。克隆仓库并运行git clone https://gitcode.com/gh_mirrors/an/annotated_deep_learning_paper_implementations cd annotated_deep_learning_paper_implementations python labml_nn/uncertainty/evidence/experiment.py如果你想体会换一种教法的效果只需改experiment.py里的两行配置# 三种损失任选其一 loss_func: squared_error_bayes_risk, # 或 max_likelihood_loss / cross_entropy_bayes_risk # 两种证据生成方式任选其一 outputs_to_evidence: softplus, # 或 relu实验结束后训练日志里会同时出现 accuracy、u.succ、u.fail 等曲线——这比只看准确率有意思得多因为你终于能看到模型什么时候在硬撑。落地检查清单证据深度学习适合谁又不适合谁✅适合分类任务图片分类、文本分类、异常检测、开放集识别都能直接套用✅适合高风险拒识场景医疗辅助诊断、金融风控、自动驾驶感知u 高时自动转人工/告警✅适合样本外检测分布外输入会自然表现为高 u无需额外训练一个判官模型⚠️不适用于纯回归当前实现面向分类回归请另寻证据回归Evidential Regression方案⚠️别把 u 当校准概率u 是不确定性质量不等于经过校准的错误率严谨落地前仍需做校准评估⚠️别省掉 KL 退火跳过退火直接上强正则模型会变得过度保守准确率骤降。写在最后证据深度学习最有魅力的地方是它不改变你的模型骨架——最后一层换个激活函数、换一组损失就能让分类器从永远嘴硬变成有分寸。它把我不知道从一句人话变成了模型可以输出的数值。在 annotated_deep_learning_paper_implementations 里这套思路被拆解得清清楚楚原理注解在__init__.py的文档字符串里可跑的实验就在隔壁。如果你的系统正在为高置信度的错误买单不妨给它装上这份不确定性估计的自知之明。【免费下载链接】annotated_deep_learning_paper_implementations‍ 60 Implementations/tutorials of deep learning papers with side-by-side notes ; including transformers (original, xl, switch, feedback, vit, ...), optimizers (adam, adabelief, sophia, ...), gans(cyclegan, stylegan2, ...), reinforcement learning (ppo, dqn), capsnet, distillation, ... 项目地址: https://gitcode.com/gh_mirrors/an/annotated_deep_learning_paper_implementations创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表