研究背景
传统的无监督异常检测(UAD)通常为每个产品类别单独构建模型,这不仅带来巨大的存储开销,还难以适应生产线上多样化的产品检测需求
最近的研究强调了无监督异常检测 (UAD) 的实用设置,该设置为多类图像构建了统一模型。尽管在解决这一具有挑战性的任务方面取得了各种进展,但多类设置下的检测性能仍然远远落后于最先进的类分离模型
创新点
1.纯Transfomer架构,设计简单
2.采用可扩展基础Transfomer、Noisy Bottleneck、Linear Attention 、Loose Reconstruction解决多类检测问题
3.性能提升
核心思路
先前多类无监督异常检测的检测性能低是由于神经网络的泛化能力太强,由于多类UAD设置,图像及其模式的多样性,解码器可以将其重建能力推广到看不见的异常样本,导致使用重建误差进行异常检测失败
- 激活MLP中的内置Dropout来阻止网络同时恢复正常与异常模式
针对identity mapping问题,传统方法将重建改为恢复,即通过在输入图片或编码器特征上添加扰动作为伪异常,在解码器上把带有伪异常的输入恢复成无异常的正常结果(类似于去噪框架)
然而这类方法采用的启发式人工异常生成策略往往缺乏跨领域、跨数据集和跨方法的普适性
本文不使用手工加伪异常,而采用dropout。这里 Dropout 的作用不是防止过拟合,而是充当伪造的特征异常。这样会对正常特征进行扰动,让网络学会把这些“异常化的特征”恢复为正常的,就像 去噪自编码器(denoising auto-encoder) 的思路。这个简单的组件本质上会强制解码器恢复正常特征,而不管测试图像是否包含异常,从而减轻相同的映射
- 利用线性注意力(Softmax注意力的高效计算替代方案)的"副作用"——其能抑制局部区域聚焦,从而阻断相同信息的传递
传统方法使用attention代替卷积,原因是卷积容易造成identity mapping,但是attention一样可能造成identity mapping问题, 因为它们可能过度集中于输入的对应位置来生成输出
本文 利用了一类 无 Softmax 的注意力(Softmax-free Attention) 的“去聚焦能力”(unfocusing ability),即 线性注意力(Linear Attention)
其中φ(·)为激活函数(通常为φ(x) = elu(x) + 1)
由于没有通过Softmax操作进行非线性注意力重加权,线性注意力无法集中在与查询相关的重要区域,然而,这个性质恰恰是重建解码器在我们的语境中所青睐的。
- 通过多层联合分组重建并在优化过程中剔除高重建度区域,以放松重建约束
大多数基于重建的方法通过对应解码器层(图4(a))或最终解码器层(图4(b))来蒸馏特定编码器层(如ResNet三阶段中最后三层)。直观而言,使用更多编码器-解码器特征对(图4(c))能让UAD模型利用不同层的更多信息来识别异常。然而根据知识蒸馏原理,在更多逐层监督下,学生(解码器)会更好地模仿教师(编码器)的行为——这对依赖编码器-解码器差异检测异常的UAD模型是有害的,该现象也表现为恒等映射问题
本文通过将目标层所有特征图整体求和来放松逐层约束(图4(d))。该方案可视为弱化层间对应关系,赋予解码器更大自由度,使其在面对未见输入模式时能表现出与编码器更显著的差异。由于浅层特征包含有助于精确定位的低层视觉特征,我们可进一步将特征划分为低语义组和高语义组(图4(e))
本文进一步放宽逐点重建损失函数的约束方式,即在特征图中舍弃一部分点。具体来说,我们借用了 hard-mining 全局余弦损失 ,该方法在训练过程中会对那些余弦距离较小、已经被很好恢复的特征点 分离梯度(detach gradients),从而不再对其进行反向传播
其中fE和fD分别表示编码器和解码器的特征图
Dcos表示余弦距离,F ( · )表示平坦化操作,fD( h , w)表示( h , w)处的特征点,sg ( · ) 0.1表示将梯度缩小为原来的2的十分之一。Dcos( fD ( h , w )),fE( h , w) ) < k %批内选择余弦距离较小的k %个特征点进行梯度收缩。总损失为所有编码器-解码器特征对的平均Lglobal - hm。
网络架构
- 使用具有12个Transformer层的预训练ViT网络作为编码器,提取具有不同语义尺度的信息特征图
- bottleneck使用简单的MLP(前馈神经网络FFN),用于汇聚编码器中8个中间层的特征表示
- 解码器结构与编码器类似,用了8个Transformer层
在训练阶段,解码器通过最大化特征图间的余弦相似度来学习重建编码器的中间层特征;而在推理阶段,由于解码器从未接触过异常样本,它能够成功重建正常区域的特征图,但对异常区域的重建则会失效