Generative Cooperative Learning for Unsupervised Video Anomaly Detection


一种真正意义上的无监督视频异常检测方法

1 摘要

视频异常检测在弱监督和one-class-classifier(OCC)设置中得到了很好的研究。然而,无监督视频异常检测方法相当稀疏,为了消除获取费力注释的成本,并允许在没有人工干预的情况下部署这样的系统。为此,论文提出了一种新的无监督 生成式合作学习(GCL) 方法用于视频异常检测,该方法利用异常的低频率来构建生成器和鉴别器之间的交叉监督。从本质上说,这两个网络以合作的方式得到训练,从而允许无监督学习。

作者试图以结构化的方式利用两个领域知识:

  • 视频的信息更加丰富,与静态图像相比
  • 如下图所示,(d)无监督训练方式下没有任何数据标注,且存在异常样本,考虑异常样本发生频率为低频,事实上也确实如此。
    在这里插入图片描述
    因此作者提出了一种生成式合作学习GCL方法,输入是无标签视频,输出是帧级别异常评分预测。

2 论文算法概述(GCL)

两个关键部位:生成器+鉴别器。听起来很像GAN(对抗生成网络),也确实是一个GAN风格的训练方式,论文提出的GCL的生成器和鉴别器(为简便,分别记作G:generator/D:discriminator)是以相互协作的方式进行交叉监督训练
在GCL中,每个网络的输出经过一个阈值处理来产生伪标签,G产生的伪标签用来计算D的损失,D产生的伪标签用来计算G的损失。

下图是论文GCL方法的整体架构:包括一个特征提取器、一个生成器网络、一个鉴别器网络和两个伪标签生成器。
在这里插入图片描述
系统交替训练的大致流程:

  • 生成器G是一个AE(能捕捉数据整体的主导情况)。 生成器可以重构输入的批特征,然后利用重建误差,当该误差高于某个我们设置的阈值,则标记为异常,否则正常,相当于创建了伪标签,然后该伪标签可以用于训练鉴别器
    另外,生成器还可以对高置信度异常进行扭曲,进行负学习(KL),如下图示,也就是把误差拉大,同时对正常样本仍然采用最小化误差重构。

在这里插入图片描述

  • 鉴别器是全连接层(FC),不容易被噪声干扰,因此鲁棒性更好。鉴别器给出一个实例异常的概率估计值,利用该概率值可以打伪标签;比如在批特征中有两个特征概率值较高(高于我们设置的某个阈值:有一些阈值工具),则这两个特征标记为异常,相当于创建了伪标签,然后使用这些伪标签改进生成器
    如此,G和D互相协作,共同改进!
    一般,文献使用的都是OCC方法,即只使用正常样本进行自编码器的训练,认为对异常重构误差大而正常样本重构误差小,但作者考虑到了是否OCC方法本身对异常测试输入的很好的重建是很有挑战性的,因为它很可能会得到一个无效的分类器边界,它在封闭正常样本的同时是否也能很好的排除异常,是一个问题。而作者的方法貌似更加贴合事实情况。在实验结果中也证明了,即使论文使用GCL_OCC方法,这种协作训练不断改进的方式是更有效的。
    在这里插入图片描述

3 实现细节

3.1 训练数据组成

在所提出的GCL方法中,论文随机化了输入特征的顺序,从而消除了批内和批间的相关性。

其实这里我的理解是论文采用默认模式的ReaNext3d作为特征提取器,对每个视频(i : 1~n)的每个视频段(j : 1 -> m)进行特征提取,得到一个对应特征向量f(i,j) ,对所有视频片段的这些特征向量进行随机采样,按照batches进行随机划分,再作为后续网络的输入。从而消除了批内和批间的相关性。至于作者为什么要这样做,我觉得可能是因为这样对于模型的泛化性方面更加友好。

3.2 Generator Network

生成器就是通过最小化输入输出之间的特征误差来进行训练的。
在这里插入图片描述
用于指导鉴别器训练的伪标签是通过重构误差大小决定的,具体公式如下:
在这里插入图片描述
论文中是这样计算合适的阈值的:先计算每个batch中所有的重构误差,按照最大误差的某个固定百分比去经验设置一个阈值。

3.3 Discriminator Network

鉴别器D的二进制分类网络使用来自G的伪标签进行训练,通过下式最小化批处理batch上的二进制交叉熵损失:
在这里插入图片描述
用于指导生成器训练的伪标签是通过判别器的输出(输入特征异常的概率估计值大小)来决定的,具体公式如下:
在这里插入图片描述

3.4 Negative Learning of Generator Network

第2章中提到了生成器G存在负学习方式,即对G的训练是使用D的伪标签,采用负学习(NL)目的是为了增加正常输入和异常输入重构之间的区别,在同一批处理中可能会遇到正常和异常样本,论文通过使用伪重构目标强制异常样本重构得很差。
图在第2章图3,最终作者采用All one targets,即对于每个被D伪标记为异常的特征向量,将原始重构目标替换为一个类似的全1维度向量。实验结果显示,“1”作为伪目标产生了更大的辨别重建能力,与一般的仅仅采用重构误差的方式相比,能够更好地区分正常和异常输入。
因此作者将3.2节给出的式(1)生成器的损失函数修改为包含负学习的损失函数:
在这里插入图片描述

也就是说,D标记为异常的特征向量,伪标签为1,那么重构的目标特征替换为与输入维度相同的全1向量,如果伪标签为0,说明D判定为正常,那么重构的目标特征为输入特征。

3.5 Self-Supervised Pre-training

由于异常检测是一个定义不明确的问题,缺乏约束可能会影响收敛,系统可能会陷入局部极小值。为了提高收敛性,我们探索通过预训练G和D来启动训练过程。根据经验观察,使用预训练的G(基于式(1))有利于学习系统的整体稳定性,同时也提高了收敛性和系统的性能。但我们通过实验观察到,简单地利用所有训练数据预训练G可能无法提供有效的启动。利用视频中的事件是按时间顺序发生的,而且异常帧通常比正常帧更有事件,我们利用连续特征向量之间的时间差作为估计量,初始清洗训练数据集,用于G的预训练。

4 总结

论文创新点:

  • 提出了一种真正意义上的无标记训练视频的无监督异常检测算法(GCL),它可以在不提供任何手动注释的情况下部署,并且更加符合实际的监控系统需求。
  • 采用GCL生成式协作学习,G和D交替更新的策略,以及负学习方法,使得模型能够更好的区分正常和异常输入。
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值