《论文笔记》Anomaly Detection via Reverse Distillation from One-Class Embedding

该博客介绍了一篇2022年CVPR论文,提出了反转知识蒸馏方法用于异常检测。传统知识蒸馏中,学生网络模仿教师网络,但作者指出这可能限制异常表现的多样性。为解决此问题,他们提出将教师网络作为编码器,学生网络作为解码器,并插入一个one-class bottleneck embedding (OCBE)模块。OCBE包括多尺度特征融合和一类特征提取,旨在去除语义冗余信息。实验表明,这种方法能提高异常检测的性能。损失函数采用像素间的余弦相似性,异常分数通过选取像素级最大值确定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是2022年的CVPR文章,作者提出了一个创新的知识蒸馏方案:反转知识蒸馏
论文地址:https://arxiv.org/pdf/2201.10703v1.pdf

在这里插入图片描述

Motivation

论文针对传统的知识蒸馏的方案提出了一个问题:认为之前的方案容易阻碍异常表现的多样性

  1. 传统的知识蒸馏teacher和student的网络架构很相似或者几乎相同
  2. 而且teacher和student的输入流都是一样的

针对这个我的理解是,因为T和S网络相似,尽管T是预训练好的,有一定的泛化能力,而S只是模仿了T学到了重建正常样本的能力,但是不排除S学的非常好,有了和T很接近的能力,导致在推理阶段输入异常样本,S网络也是有很大的可能重建的和T很接近,那么最后的Loss也会比较小,这样对异常检测不利。
而且还有一点就是作者提到传统知识蒸馏中的student网络都要比teacher小,那么这也带来一个问题,就是小网络的重建性能是需要得到质疑的,如果重建能力不是那么好,不管正常还是异常都会产生问题。

针对上面提出的问题,作者提出了一个反转的知识蒸馏方案,将teacher作为encoder,student作为decoder,并且在teacher和student之间加入了一个one-class bottleneck embedding (OCBE) 模块
在这里插入图片描述


简单记录一下网络用到的方法:

  1. encoder模块使用的是预训练的模型,作者尝试了ResNet、WideResNet作为预训练模型,效果都比较好;
  2. 在OCBE模块中,包含了多尺度特征融合模块MFF一类特征提取模块OCE,使用多尺度融合大多数理由都差不多:低维度的特征包含了很多纹理、边缘等信息,高维度的特征包含了很多语义结构等信息。然后多尺度融合其实也进行了一个压缩特征的作用,去掉冗余的信息(作者提到了信息瓶颈的概念)
    对于OCBE模块的作用,我的理解是,作者认为直接把encoder最后一层的激活信息丢给decoder恢复的话,会有很多语义结构上的冗余信息,一方面会导致decoder恢复起来比较困难,另外一方面使得网络难以恢复最关键的信息。所以作者在使用多尺度的基础上,进行了特征的压缩,既有了丰富的信息,也尽量去掉了冗余信息。
    在这里插入图片描述
    从上图可以看到在MFF模块中,网络使用了3x3卷积进行下采样,然后将特征串联起来,在OCE中使用了残差网络的第4个block。
  3. 对于decoder模块来说,是一个和teacher对称的模块
  4. 损失函数也是比较常规的,用的是像素间的余弦相似性,
    在这里插入图片描述
    在这里插入图片描述
  5. 对于异常分数这里,结合评论区和代码的理解,论文中是对每一个图片都会记录一个像素级异常分数S_AL,对于图像级的分类,从像素级的分数中选取max(S_AL)的分数作为这张图片的得分,最后取阈值score=MAX(正常样本的max(S_AL)),在推理阶段,得分大于score的就是异常样本。

论文中还有一些细节,比如如何设置decoder、MMF、OCE(这里用了resnet结构的第4层bottleneck,stride=2),可以结合代码具体看看

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值