半监督异常检测(Anomaly Detection)的研究线

半监督异常检测(Anomaly Detection)的研究线

在假设数据集中大多数实例都是正常的前提下,半监督异常检测方法根据一个给定的正常训练数据集创建一个表示正常行为的模型,然后检测由学习模型生成的测试实例的可能性。

当前异常检检测研究方法分类小结收录与:
目前异常检测(Anomaly Detection)研究方法的分类

论文提到的数据集都在下面的链接中有具体介绍与下载链接
异常检测数据集收集与介绍分析

1,《Future Frame Prediction for Anomaly Detection – A New Baseline》 CVPR 2018

半监督异常检测(Anomaly Detection)的研究线_第1张图片
先看实验效果对比,结合前T帧进行下一帧的预测重建然后与原视频输入帧进行对比两者之间的差值,从而得出异常与否,上图

半监督异常检测(Anomaly Detection)的研究线_第2张图片
原理还是对输入帧进行预测重建,将预测后的帧与原实际帧进行对比,其中由于只用正常数据对生成器进行训练,故对于含有异常数据帧进行输入的时候,不能对异常数据进行完整的预测生成,从而可以实现异常检测。

通过加入光流和强度损失,从而能够做到按照正常的预期去预测下一帧,再将预测的下一帧与实际帧进行对比,得出异常情况。

on three publicly available anomaly detection datasets, including the CUHK Avenue dataset [20], the UCSD Pedestrian dataset [23] and the ShanghaiTech dataset [22].

在上述三个数据集上实现了在当时综合来看最好的精度。

2 、Adversarially Learned One-Class Classifier for Novelty Detection CVPR2018

半监督异常检测(Anomaly Detection)的研究线_第3张图片
还是先看实验效果,本质上还是对原数据进行重构之后在与原输入图形进行对比得出异常。

半监督异常检测(Anomaly Detection)的研究线_第4张图片

正如题目所提到的,对抗性学习的单分类异常检测,故对抗网络模型用的是比较传统的gan网络,在训练的时候,通过对抗训练可以让模型对正常的数据样本达到期望的重建效果,让这个生成模型对正常样本进行很好地生成,当遇见异常场景的时候,就不能很好地生成,从而可以对原输入(groundtrue) 进行对比,从而辨别出异常的场景。
从网络结构中可以看到训练的时候加了一个参数η,目的是为了增加网络的鲁棒性,可以去噪声,从而实现生成的输入实现真的更真,假的更假。

在数据集上的结果 Result on UCSD Ped2,实验当时比较高的检测精度。

3、 Memorizing Normality to Detect Anomaly: Memory-augmented Deep Autoencoder for Unsupervised Anomaly Detection ICCV2019

特殊说明:
题目给的是无监督异常检测,但是在训练的时候,还是使用了只含正常数据的训练数据,故归类于半监督异常检测。

半监督异常检测(Anomaly Detection)的研究线_第5张图片
内存网络是核心,图片介绍意思就是说MemAE会记录正常数据的模式,当出现异常输入的时候,不能很好的从记忆网络中找到存储的模式,从而不能很好地重建,继而实现检测的,目的。

半监督异常检测(Anomaly Detection)的研究线_第6张图片
在训练阶段,会更新内存内容,并鼓励其表示正常数据的原型元素。
在测试阶段,学习到的记忆将被固定下来,并从正常数据的一些选定的记忆记录中获得重建。因此,重建将倾向于接近一个正常的样本。从而可以加大重构的与原始的差值,以实现异常检测。

在视频数据集 UCSD-Ped2 , CUHK Avenue and ShanghaiTech ,在图像数据集, MNIST [19] and CIFAR-10 [18]实现较高的检测精度。

4、Learning Normal Dynamics in Videos with Meta Prototype Network,CVPR2021

21年的这一篇也是记忆网络为主的,与上一篇的大致模式是一样的,一起看一下吧。

半监督异常检测(Anomaly Detection)的研究线_第7张图片
半监督异常检测(Anomaly Detection)的研究线_第8张图片
文章的整体思路还是延续了以内存网络的为主的通过记忆正常数据的特征,利用重构时异常数据不能很好地重构,从而产生输入与输出两者之间的误差作为异常的检测的主要实现方法。
本文的亮点也比较明显,一改之前的内存网络模式,将内存的状态从静态的固定的需要大内存的,演变成实时的动态的小内存的,借助attention机制,能够更好的关注到正常的所需要的数据,在实时动态方面,借助meta-learning,在few-shot模式下,使得模型能够根据新的场景进行网络参数的调整,继而可以实现实时的新场景的异常检测。

半监督异常检测(Anomaly Detection)的研究线_第9张图片
实验的数据集:

  1. The UCSD Ped1 & Ped2 dataset
  2. The CUHK Avenue dataset
  3. The ShanghaiTech dataset
  4. The UCF-Crime dataset

5、Multiresolution Knowledge Distillation for Anomaly Detection、CVPR2021

半监督异常检测(Anomaly Detection)的研究线_第10张图片
21年的这一篇很有意思,通过知识蒸馏,作者使用在ImageNet上预先训练的专家网络的不同层的特征“蒸馏”成一个更简单的克隆网络来解决这两个问题生成一个轻量化的模型,然后再相同的输入情况下,我们使用给定输入数据的专家和克隆网络的中间激活值之间的差异来检测和定位异常

网络结构这么设置的原因也给出了:
作者表明,与单独使用最后一层激活值相比,在蒸馏中考虑多个中间提示可以更好地利用专家的知识和更明显的差异。

小总结:

所以从上面的近几年的一些文章可以看出,半监督的异常检测可谓各有千秋,要学会善于从其他领域,其他学科中获取灵感,寻找新的模块,来更好的利用正常的数据且只利用正常的数据,这也是我们在科研或者工业落地希望实现的。能够在只有正常的数据的情况下,做到对不曾出现的或者极少出现的异常的场景进行检测。

你可能感兴趣的:(异常检测(Anomaly,Detection),深度学习,神经网络,pytorch)