Authors
Dong Gong, Lingqiao Liu, Vuong Le, Budhaditya Saha,Moussa Reda Mansour, Svetha Venkatesh, Anton van den Hengel
Motivation
- 无监督的异常检测是在仅给出正常数据示例的情况下学习正常轮廓,然后将不符合正常轮廓的样本识别为异常,但是这个工作是非常困难的因为缺少人为的监督。
- 当数据点位于高维空间(视频)中时,问题变得更加棘手,因为对高维数据进行建模非常困难。
- 虽然AE的提出用于解决这类问题(在无监督的环境中对高维数据建模),也就是:在正常数据中训练后得到模型,然后将异常数据输入模型,异常数据会出现较大的重建误差而不能重建,正常数据重建误差小可以得到重建数据。但是,有时AE也存在问题(AE can “generalize” so well that it can also reconstruct the abnormal inputs well.)。
Contribution
- 使用了存储模块来扩展深度AE,以内存增强的自动编码器,即MemAE
- 通过attention based memory addressing的存储模块效果优秀
- 使用可微分的硬收缩算子(differentiable hard shrinkage operator)来引起内存寻址权重的稀疏性(sparsity of the memory addressing weights),隐式的促使memory中的要素想要查询的要查询要素的特征空间中接近( implicitly encourage the memory items to be close to the query in the feature space.)
Methods
MemAE 组成部分有三个:编码器(用于编码输入,生成查询),解码器(用于重建reconstruction)和记忆(内存,内存寻址)模块,网络结构如图
给定输入后,编码器首先获得输入的编码。 通过使用编码好的representation作为query,存储模块通过基于注意力的寻址运算符检索存储器中最相关的项目,然后将这些项目传递给解码器以进行重构。 在训练过程中,对编码器和解码器进行优化,以最大程度地减少重构误差。 存储器内容被同时更新以记录编码的正常数据的原型元素。 给定一个测试样本,该模型仅使用记录在存储器中的有限数量的正常模式执行重构。 结果,重建趋于接近正常样本,导致正常样本的重建误差较小,而异常情况的误差较大,这将被用作检测异常的判据。简单地说,一个输入图像并不直接经过encoder-decoder,而是利用encoder得到的潜在空间检索memory中最相关的项,这些项随后被整合并进入decoder。
上图转自https://blog.csdn.net/sinat_37145472/article/details/98869328
Encoder Decoder
编码器的作用是提供latent domain,编码完的特征表示就用来当做查询,在memory中检索相关的item。论文中作者使用encoder当做query generator;decoder用memory当做输入,进行重建样本。
,表示encoder将input
编码到latent domain
,
表示的是decoder将
重建成
;
,其中encoder部分有
,
,;decoder部分有
重建成
。
和
是encoder和decoder的参数。在memAE中,
用于检索相关的memory item,
是检索完的item,在传统中的AE有
,但是这篇文章文章的创新点就在这里。作者使用
,来检测latent domain下的reconstruction quality,
Memory Module with Attention-based Sparse Addressing
memory记作,用于记录正常训练数据中的原型正常模式prototypical normal patterns,它包含了N个C纬度的vector,
,
表示
中第i行,每个
表示memory item,那么寻址过程即为
,
,
表示i of
Attention for Memory Addressing
,
,d是用来计算余弦距离similarity。该操作是将z映射到memory,转换成w。
Hard Shrinkage for Sparse Addressing
一些异常可能仍然有机会通过memory items的复杂组合(也就是稠密的)很好地重建。为了缓解这个问题,作者采用了hard shrinkage operator来提高
的稀疏性。进行了类似Relu的Hard Shrinkage约束,其实就是超过阈值才保留,不超过阈值就是0,
,然而这并不容易进行backward,因此作者结合ReLU进行了修改
,
是ReLU,
是个正数(small positive scalar),
为
,在shrinkage之后,重新还原到与潜在空间(latent representation)相同的维度。
稀疏寻址使得模型用较少但更相关的存储项来学习数据的representation,从而导致在内存中学习更多的信息表示。 w的稀疏性还可以缓解以下问题:可以通过密集的寻址权重很好地重构异常样本。 与其它稀疏表示方法相比,该方法通过一次有效的前向运算而不是迭代更新来获得所需的稀疏w。
Training
重建误差:
,
,
表示训练样本,
表示重建样本。进一步的促进
的稀疏性,又因为
大于0,且1范数和为1
,因此使用最小化entropy来促进。
,综合重建误差和最小化entropy得到最终的loss function
Experiment
下图为memory里学到的东西
下图为测试