前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第一弹CVPR 2021 | 多分辨率蒸馏的异常检测

第一弹CVPR 2021 | 多分辨率蒸馏的异常检测

作者头像
机器学习炼丹术
发布2022-11-22 15:24:53
3650
发布2022-11-22 15:24:53
举报
文章被收录于专栏:机器学习炼丹术
  • 文章转自微信公众号:机器学习炼丹术
  • 作者:陈亦新(欢迎交流共同进步)
    • 1 概述
    • 2 损失函数

1 概述

  • 2021年CVPR论文
  • 论文链接:https://arxiv.org/pdf/2011.11108.pdf
  • 代码链接:https://github.com/Niousha12/Knowledge_Distillation_AD

当前无监督表示学习Unsupervised representation learning已经成为当前图像异常检测/定位的重要部分,这种学习表示法具有两方面的挑战:

  1. 样本量通常不够大,无法通过传统技术学习到丰富的可泛化表示(a rich generalizable representation);
  2. 虽然训练中只有正常样本,但是需要学习到的特征应该可以区分正常和异常样本(be discriminative of normal and anomalous samples).

研究方法提出,基于以上的情况,作者提出使用在ImageNet上预训练的专家网络VGG16的各个层的特征distillation蒸馏到一个更简单的克隆网络中解决这两个问题。作者使用给定输入数据的专家和克隆网络的中间激活值之间的差异来检测和定位异常。

那么如何在没有异常数据的情况下,来识别到异常样本呢?其实这里用了一个trick。整个训练是一个从source network向cloner network蒸馏的过程。source network是一个imagenet预训练的模型,而cloner network是一个完全随机初始化的模型。现在我们用正常样本进行蒸馏学习,这样cloner network在正常样本上与source network的认知是一致的。那么假设来了一个异常样本,source network因为看到的图像更多,经验更丰富,所以对于异常样本的反应,肯定与cloner network(一个只见过正常样本的模型)的反应不同。因此这个时候,通过观测两者的激活值的不同,就可以确认出异常的区域位置。

2 损失函数

损失函数包含两个部分:

其中第一部分如下:

L_{val}

的目标是最小化source network和cloner network的激活函数值的欧式距离。CP表示critical layer。

相当于每一个关键层都进行蒸馏的学习模仿。(student 模仿 teacher)

第二部分L_{dir} 来增加activation vectors的directional similarity,因为相同欧式距离的两个向量可能会产生不同的行为在后续的神经元影响下。作者还举了一个简单的例子:

总之第二部分损失函数公式为:

这里留一个问题:vec()这个函数是把特征图转化1-D特征的方法。论文中没有具体说明,这个如何实现要从代码中来学习。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-08-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习炼丹术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 概述
  • 2 损失函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档