什么是 原型部件网络(ProtoPNet)?
原型部件网络(ProtoPNet)是一类可解释图像分类架构,它把输入的潜在局部块与学习到的类别相关原型向量比较,再组合最强的局部块到原型相似度以产生类别 Logit。
快速了解
| 规范文档 | 官方规范 |
|---|
工作原理
把潜在局部块与类别原型匹配
先把图像编码为空间特征图,并把每个位置视为潜在 Patch。对每个学习原型,计算它与所有 Patch 的距离,把距离转换为相似度并保留最强响应。原始 ProtoPNet 论文通过线性分类层组合这些原型激活,把决策表达为带权部件匹配。
训练、聚类、分离并投影
训练在分类损失之外加入聚类与分离目标,让每张训练图像靠近至少一个本类原型,并远离其他类别原型。投影步骤把原型替换为训练图像中的邻近潜在 Patch,随后可重新拟合最后一层。应记录原型类别归属、损失权重、投影数据、最近 Patch、相似度变换与所有负连接。
把解释作为模型输出审计
除任务性能外,还要测量原型覆盖度、唯一性、类别纯度、相对部件掩码的定位、最近邻稳定性,以及遮挡展示 Patch 后的敏感性。检查重复或坍缩原型、背景捷径、投影引起的预测变化,以及高激活是否实际落在高亮区域。视觉样例合理并不证明人类会赋予相同语义,也不证明该 Patch 因果必要。
主要特点
- 把每个原型表示为位于空间潜在特征中的学习向量
- 为每个原型选择输入全部局部块中的最高相似度
- 通过可检查的线性分类层组合原型证据
- 可把原型投影到训练图像中的具体局部块
- 在分类损失之外使用聚类与分离目标
- 需要审计冗余、捷径匹配、定位偏差与解释忠实性
常见用途
- 构建能够展示案例式部件匹配的图像分类器
- 检查类别证据来自前景结构还是背景纹理
- 在压缩可解释模型前发现冗余原型
- 用最近训练局部块样例支持领域专家复核
- 比较原型解释、显著图与概念方法的证据差异
示例
Loading code...常见问题
ProtoPNet 怎样产生预测?
Backbone 先把图像映射为空间潜在 Patch,每个原型在全部位置寻找最高相似度,再由线性层把这些最大相似度组合成类别 Logit。因此解释应同时报告匹配输入区域、原型样例、相似度、连接权重和最终类别证据。
ProtoPNet 的原型投影是什么?
投影会用训练图像中的邻近潜在 Patch 替换学习到的原型向量,通常限制在原型所属类别,从而把原型显示为具体样例。由于参数发生变化,团队还要测量预测变化、最近邻稳定性,以及所选 Patch 是否位于前景并具有一致语义。
ProtoPNet 与 Prototypical Network 相同吗?
不同。Prototypical Network 主要用于少样本学习,按支持集计算类别原型并用距离分类查询样本;ProtoPNet 是具有学习型部件原型、空间最大匹配、原型投影和显式证据层的可解释图像架构。两者使用原型的目标不同。
ProtoPNet 的解释会不会看起来合理却不忠实?
会。高亮区域可能与潜在感受野并不精确对应,原型可能匹配背景纹理,多个原型可能坍缩到同一模式,负权重也会让解释更复杂。必须结合遮挡实验、定位指标、最近邻复核与真实激活检查,而不能只看展示图。
应怎样评估原型质量?
报告不同类别和子群的覆盖度、唯一性、冗余度、最近 Patch 的类别纯度、相对标注部件的定位、跨种子与投影稳定性,以及剪枝后的性能。还要检验遮挡所声称 Patch 后,相关原型激活和类别证据是否比匹配对照下降更多。