【论文笔记】Multiresolution Knowledge Distillation for Anomaly Detection

这篇论文提出了一种改进的知识蒸馏方法用于无监督异常检测。与传统方法不同,作者不仅在最后一层,还在中间多层进行知识蒸馏,以充分利用不同层次的特征。此外,他们利用损失函数梯度变化进行异常定位。实验在多个数据集上验证了这种方法的有效性,包括MNIST、F-MNIST、CIFAR-10和MVTecAD等。论文还探讨了不同蒸馏层选择、student网络规模以及方向损失的影响。
摘要由CSDN通过智能技术生成

论文地址:https://arxiv.org/abs/2011.11108
官方代码地址:https://github.com/Niousha12/Knowledge_Distillation_AD

论文提出目前无监督的异常检测是现在比较流行的方法,对于异常检测,有两个问题是需要解决的

  1. 样本量小,如何通过现有的技术学到丰富的知识
  2. 训练时使用的是正常样本,那最后如何区分正常和异常的样本

本文作者选择了知识蒸馏的方法,但是不同于前人,作者认为前人使用知识蒸馏,只对最后一层进行蒸馏,而作者却使用了中间多个层进行蒸馏。 另外,使用了Loss的梯度变化进行异常定位。并且在MNIST, F-MNIST, CIFAR-10, MVTecAD, Retinal-OCT等数据集上得到了很好的性能

在这里插入图片描述
具体来讨论一下论文使用的方案:

  1. 论文中teacher使用了VGG16在ImageNet上的pre-trained网络,student选择了VGG16的简化模型,考虑到网络中每一层提取特征都不太一样,浅层更加关注边缘、纹理等细节,深层更加关注语义等信息,所以选用了中间多个层进行知识蒸馏。
  2. 损失函数包括两项:
    (1)欧氏距离损失
    在这里插入图片描述
    (2)方向损失
    在这里插入图片描述
    结合论文可知,欧氏距离相同,但是方向不一定相同,可以仔细看一下论文中的例子。

总之,利用知识蒸馏的方法,对于teacher来说,并不需要能够非常好的识别出正常样本具体长什么样,毕竟是在ImageNet上预训练过的,有一定的泛化能力,而且目标是让student学到正常数据该有的知识,所以teacher也是可以理解为一个参照物。

  1. 对于anomaly localization,异常区域就是Loss的梯度变化比较大的地方,这里也是比较好理解的。因为在测试时,如果输入的是异常数据,那么student和teacher学到的特征就不一样,Loss如果进行反向传播,梯度变化就会比较大。
  2. 作者尝试了一些消融实验
    (1)使用多个中间层相对于只使用最后一层去做蒸馏的性能比较
    (2)关于student网络,是相对于teacher一样大,还是相对小一点的性能好
    (3)关于是否使用方向损失的讨论
    (4)关于异常定位的可解释性算法讨论,
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值