【论文笔记】Uninformed Students: Student–Teacher Anomaly Detection with Discriminative Latent Embeddings

会议:CVPR 2020

链接:[1911.02357] Uninformed Students: Student-Teacher Anomaly Detection with Discriminative Latent Embeddings (arxiv.org)

作者:Paul Bergmann, Michael Fauser, David Sattlegger, Carsten Steger

摘要

学生网络 经过训练,可以对描述性教师网络的输出进行回归。

教师网络 是在自然图像的大型补丁数据集上进行预训练的。通常情况下,预训练的目的是通过大规模的未标注数据来学习特征。


当学生网络的输出与教师网络的输出不同时,就会检测到异常。

当学生网络遇到不在其正常训练数据范围内的情况时,可能会产生异常,因为它无法有效地处理这些新的、异常的情况。

简介

解决的问题:现有方法在处理大型高分辨率图像数据集时所面临的两个主要问题,对特征空间的降维需求以及对训练数据的大量子采样,这限制了它们在这个特定背景下的性能。

提出的解决方案

  1. 通过学生-教师方法来隐式建模训练特征的分布: 为了克服浅层模型的限制,提出了一种方法,即通过学生-教师方法(student–teacher approach)来隐式地建模训练特征的分布。学生-教师方法通常涉及使用一个深度神经网络作为教师,该网络已经在大量数据上进行了预训练,然后将其输出作为目标来训练一个较浅的学生网络。这种方法旨在利用深度神经网络的高容量来更好地捕捉训练数据的分布。

  2. 将异常检测看作特征回归问题: 在这个方法中,将异常检测视为一个特征回归问题。通过使学生网络的输出回归到教师网络的输出,可以在学生网络输出与教师网络输出之间的差异中检测异常。这种方法利用深度学习模型的能力来学习数据的复杂表示,并通过比较学生和教师的输出来寻找潜在的异常情况。

作者的贡献

  1. 作者提出了一种基于学生-教师学习的无监督异常检测的新颖框架。 来自预先训练的教师网络的输出,充当学生群体的替代标签。
  2. 作者引入基于学生的预测方差和回归误差的评分函数,以获得密集的异常图来分割自然图像中的异常区域。 并描述了如何通过调整学生和教师的接受域来扩展论文提出的方法,以在多个尺度上分割异常。
  3. 作者在三个真实世界的计算机视觉数据集上展示了最先进的性能。并将提出的方法与许多直接拟合教师特征分布的浅层机器学习分类器和深度生成模型进行了比较。最后,还将其与最近引入的基于深度学习的无监督异常分割方法进行了比较。

相关工作

教师网络

首先需要训练一个教师网络 T T T,作者首先训练了一个 T ^ \hat T T^,该网络为T的前身。下面为 T ^ \hat T T^网络损失函数的构成。

知识蒸馏
L k ( T ^ ) = ∥ D ( T ^ ( p ) ) − P ( p ) ∥ 2 L _{k}(\hat T) = \left \| D(\hat T(p)) - P(p)\right \| ^{2} Lk(T^)= D(T^(p))P(p) 2
两竖线运算表示向量的欧几里得范数,上式表示两个向量之间的距离或误差的平方。

在这里插入图片描述

度量学习

“Metric Learning”(度量学习)是一种机器学习方法,其目标是学习一个合适的度量(距离或相似性度量),使得在学习过程中相关样本更加接近,而不相关样本更加远离。在图像处理和计算机视觉领域,度量学习通常被用于学习图像之间的相似性,从而改善任务如图像检索、人脸识别和目标跟踪等的性能。

本文提到的是使用三元组学习获得判别性嵌入的度量学习方法:

首先对每一个随机裁剪的图像块 p p p进行数据增广。这个数据增广包括生成一个由三个图像块组成的三元组 ( p , p + , p − ) (p,p^{+},p^{-}) (p,p+,p)

正样本 p + p^{+} p+通过对原始图像块 p p p进行一系列小的随机平移、改变图像亮度和添加高斯噪声获得的。

负样本 p − p^{-} p是通过从随机选择的另一幅图像中进行随机裁剪得到的。

通过这样的数据增广方式,可以增加训练数据的多样性,提高模型对不同变化和噪声的鲁棒性。这对于训练判别性嵌入模型,特别是在三元组学习中,是很常见的做法。

作者在训练中使用了一个损失函数,这个损失函数包括了三元组学习中的硬负样本挖掘,并且还引入了锚定样本的交换,下述为损失的定义:
L m ( T ^ ) = m a x { 0 , δ + δ + − δ − } L_{m}(\hat T) = max\left \{ 0, \delta + \delta ^{+} - \delta ^{-} \right \} Lm(T^)=max{0,δ+δ+δ}
其中,正样本的距离:
δ + = ∥ T ^ ( p ) − T ^ ( p + ) ∥ 2 \delta ^{+} = \left \| \hat T(p) - \hat T(p^{+}) \right \|^{2} δ+= T^(p)T^(p+) 2
负样本的距离:
δ − = m i n { ∥ T ^ ( p ) − T ^ ( p − ) ∥ 2 , ∥ T ^ ( p + ) − T ^ ( p − ) ∥ 2 } \delta ^{-} = min \left \{ \left \| \hat T(p) - \hat T(p^{-}) \right \|^{2}, \left \| \hat T(p^{+}) - \hat T(p^{-}) \right \|^{2} \right \} δ=min{ T^(p)T^(p) 2, T^(p+)T^(p) 2}
δ \delta δ为边界参数,为一个大于0的数,边界参数用于控制正样本和负样本之间的距离,以确保在嵌入学习任务中达到所需的分离度。

  • 如果 δ + − δ − + δ > 0 \delta ^{+}-\delta ^{-}+\delta > 0 δ+δ+δ>0,损失函数的值将为正,这表明正样本之间的距离小于负样本之间的距离加上一个边界参数 δ \delta δ
  • 如果 δ + − δ − + δ ≤ 0 \delta ^{+}-\delta ^{-}+\delta \le 0 δ+δ+δ0 ,损失函数的值将为零,表示正样本之间的距离已经足够小,不需要再继续优化。

要使loss尽可能的小,需要 δ + \delta ^{+} δ+(与正样本之间的距离)尽可能的小(趋于0), δ − \delta ^{-} δ(与负样本之间的距离)尽可能的大,并且 δ + \delta ^{+} δ+ δ − \delta ^{-} δ之差的相反数(与负样本之间的距离要大于与正样本之间的距离)尽可能的与 δ \delta δ接近。这有助于在嵌入空间中形成良好的类别分离,使得相似的样本更接近,不相似的样本更远离。

Descriptor Compactness

​ 通过最小化一个batch内的描述符相似度来增加紧凑度(compactness)同时减少不必要的冗余, c i j c_{ij} cij表示相关矩阵的项:
L c ( T ^ ) = ∑ i ≠ j c i j L_{c}(\hat T) = \sum_{i\ne j}^{} c_{ij} Lc(T^)=i=jcij
最终,关于 T ^ \hat T T^的总loss为
L ( T ^ ) = λ k L k ( T ^ ) + λ m L m ( T ^ ) + λ c L c ( T ^ ) L(\hat T) = \lambda _{k}L _{k}(\hat T)+\lambda _{m}L _{m}(\hat T)+\lambda _{c}L _{c}(\hat T) L(T^)=λkLk(T^)+λmLm(T^)+λcLc(T^)

学生网络

首先,利用教师网络输出数据集 D D D中每个图像的描述符,然后计算描述符中每个组件(如,颜色、纹理等)的均值和标准差,用于数据标准化。

数据标准化: 使用计算得到的均值向量和标准差向量,对整个数据集进行标准化。标准化的过程通常是将每个特征减去均值,然后除以标准差,以确保数据在每个维度上都有零均值和单位方差。

这个标准化过程的目的是使得输入数据在训练过程中具有相似的尺度,从而有助于模型更稳定地学习特征。标准化通常是深度学习中的一项常见预处理步骤,可以提高模型的收敛速度,防止某些维度对模型训练的主导影响

**描述符:**描述符是一个向量,它的每一维度算是patch的一个特征(特点),比如,颜色,纹理等。

然后构建M个 S i S_i Si(学生, i ∈ { 1 , . . . , M } i \in \left \{ 1, ...,M \right \} i{1,...,M})网络,每个S网络输入图 I I I,输出特征描述符。这些网络具有与 T T T相同的网络结构。

感受野受限的网络S: 网络S限制感受野大小为 p ( r , c ) p_{(r,c)} p(r,c)(以行 r r r和列 c c c为中心的局部图像区域)。感受野是指网络在处理输入时能够看到的区域大小。通过限制感受野的大小为 p p p,网络可以在一次前向传播过程中为输入图像 I I I中的每个像素点生成密集预测,而不需要将图像切分为多个块。这有助于减少计算复杂性和提高网络的效率。

在这里,将网络S的感受野大小限制为p,这意味着每个神经元只关注输入图像中的一个相对较小的区域,而不是整个图像。这种限制感受野的设计可能带来以下好处:

  1. 计算效率: 相对较小的感受野可以减少前向传播和反向传播过程中的计算量。这对于在一次前向传播过程中为图像中的每个像素点生成密集预测是很有用的。
  2. 局部特征学习: 限制感受野可以使网络更专注于学习局部特征,而不受到整个图像的干扰。这对于一些密集预测任务,如图像分割或密集分类,可能是有益的。
  3. 参数共享: 具有限制感受野的网络结构可能更容易实现参数共享,因为局部区域的特征通常在整个图像中具有相似性,可以通过共享权重来提高模型的效率。

学生网络的输出被建模为具有常数协方差的高斯分布,表示为:
P r ( y ∣ p ( r , c ) ) = N ( y ∣ μ ( r , c ) S i , s ) Pr(y|p_{(r,c)} ) = \mathcal{N} (y|\mu _{(r,c)}^{S_i},s ) Pr(yp(r,c))=N(yμ(r,c)Si,s)
在这里插入图片描述

这种方法的目标是使学生网络的输出接近于教师网络的目标描述符。

Scoring Functions for Anomaly Detection

回归误差 Regression Error(S与T的L2距离)
在这里插入图片描述

预测不确定性 Predictive Uncertainty (S中的标准差)

在这里插入图片描述

综合上述,得到最终的异常分数

在这里插入图片描述

多尺度异常分割 (Multi-Scale Anomaly Segmentation)

如果异常仅覆盖教师大小为 p 的感受野的一小部分,则提取的特征向量主要描述局部图像区域的无异常特征。因此,学生可以很好的预测描述符,但异常检测的性能会下降。

作者提出的框架允许对学生和教师感受野 p p p的大小进行显式的控制,因此可以通过训练具有不同感受野大小的学生-教师网络来检测不同尺度上的异常。

对于具有不同感受野的 L L L个学生-教师集合对,每个尺度 l l l的归一化异常分数为 $\tilde{e} _{(r,c)}^{(l)} $ 和 $\tilde{v} _{(r,c)}^{(l)} $ ,结果求算数平均:
1 L ∑ l = 1 L ( e ~ ( r , c ) ( l ) + v ~ ( r , c ) ( l ) ) \frac{1}{L} \sum_{l=1}^{L}(\tilde{e} _{(r,c)}^{(l)} + \tilde{v} _{(r,c)}^{(l)} ) L1l=1L(e~(r,c)(l)+v~(r,c)(l))

在这里插入图片描述

多尺度异常检测:感受野大小为 p = 17 的架构能够准确分割胶囊上的小划痕(顶行)。 然而,更大范围的缺陷,例如印记缺失(底行)就会成为问题。 对于越来越大的感受野,较大异常的分割性能会增加,而较小异常的分割性能会降低。 我们的多尺度架构通过组合多个感受野来缓解这个问题。


相关补充

T T T is obtained by first training a network T ^ \hat T T^ to embed patch-sized images p ∈ R p × p × C p\in \mathbb{R} ^{p\times p\times C } pRp×p×C into a metric space of dimension d using only convolution and max-pooling layers.

metric space 为度量空间;

embed … into 将什么嵌入; 将一张图片嵌入到d维向量空间,其实就是将一张图片(大小为 p × p × C p \times p \times C p×p×C)转为一个 d d d 维的向量,用来表示它。

这句话的意思就是,教师网络 T T T 是从 T ^ \hat T T^ 训练而来的,而这个 T ^ \hat T T^ 呢,是将 patch 大小的图像嵌入到一个低维的度量空间中,而这个度量空间的维度 d d d 是通过通过最小化一个batch内的描述符相似度来增加紧凑度(compactness)同时减少不必要的冗余,ci,j表示相关矩阵的项:使用卷积和最大池化层进行训练得到的。

Discriminative Embeddings(判别性嵌入): 指的是在嵌入空间中能够区分不同类别或样本的表示。这种嵌入通常通过训练网络来学习,以使相似的样本在嵌入空间中更接近,而不同类别的样本更远离。

augmented(增广): 指的是对数据进行扩充或变换,以增加数据的多样性。对于图像数据,增广通常包括对图像进行随机变换、旋转、翻转、缩放等操作,从而生成具有差异性的训练样本。

对比学习——锚定样本交换(Anchor Swap)

通过随机交换训练中的锚定样本,引入一些随机性,以提高模型的鲁棒性和泛化能力。这个技术通常用于改进嵌入学习任务,其中目标是学习一个好的嵌入空间,使得相似的样本在空间中更接近。

具体来说,锚定样本交换包括以下步骤:

  1. 选择一个训练样本三元组: 一个训练样本三元组通常包括一个锚定样本(anchor)、一个正样本(positive,与锚定样本相似),和一个负样本(negative,与锚定样本不相似)。
  2. 随机选择一个训练样本的其他类别中的样本: 从训练数据中随机选择一个与当前锚定样本不同类别的样本。这个样本将成为新的锚定样本,原始锚定样本则成为负样本。
  3. 形成新的三元组: 使用新的锚定样本、原始正样本和原始负样本形成一个新的三元组。

这样,通过锚定样本交换,可以使模型在训练过程中更加鲁棒,因为它需要适应于更多的样本变化和随机性。这有助于提高模型的泛化能力,使其在未见过的数据上表现更好。在嵌入学习的上下文中,锚定样本交换常常用于改善学习到的嵌入空间,使得相似的样本更加接近,而不同的样本更远离。

方差、协方差与协方差矩阵

在统计学中,方差是用来度量单个随机变量离散程度,而协方差则一般用来刻画两个随机变量相似程度,其中,方差的计算公式为
σ x 2 = 1 n − 1 ∑ i = 1 n ( x i − x ˉ ) 2 \sigma _{x}^{2}=\frac{1}{n-1}\sum_{i=1}^{n}(x_i-\bar{x} )^2 σx2=n11i=1n(xixˉ)2
协方差的计算公式为:
σ ( x , y ) = 1 n − 1 ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) \sigma (x,y)=\frac{1}{n-1}\sum_{i=1}^{n}(x_i-\bar{x} )(y_{i}-\bar{y}) σ(x,y)=n11i=1n(xixˉ)(yiyˉ)
x ˉ \bar x xˉ, y ˉ \bar y yˉ 分别表示两个随机变量所对应的观测样本均值,据此,方差 σ x 2 \sigma _{x}^{2} σx2可视作随机变量 x x x关于其自身的协方差 σ ( x , x ) \sigma(x,x) σ(x,x).

给定 d d d个随机变量 x k , k = 1 , 2 , . . . , d x_{k}, k=1,2,...,d xk,k=1,2,...,d,则这些随机变量的方差
σ ( x k , x k ) = 1 n − 1 ∑ i = 1 n ( x k i − x ˉ k ) 2 \sigma (x_{k},x_{k})=\frac{1}{n-1}\sum_{i=1}^{n}(x_{ki}-\bar{x}_{k})^2 σ(xk,xk)=n11i=1n(xkixˉk)2
对于这些随机变量,我们还可以根据协方差的定义,求出两两之间的协方差,即
σ ( x m , x k ) = 1 n − 1 ∑ i = 1 n ( x m i − x ˉ m ) ( x k i − x ˉ k ) \sigma (x_m,x_k)=\frac{1}{n-1}\sum_{i=1}^{n}(x_{mi}-\bar{x}_m )(x_{ki}-\bar{x}_k) σ(xm,xk)=n11i=1n(xmixˉm)(xkixˉk)
因此,协方差矩阵
∑ = [ σ ( x 1 , x 1 ) … σ ( x 1 , x d ) ⋮ ⋱ ⋮ σ ( x d , x 1 ) … σ ( x d , x d ) ] ∈ R d × d \sum =\begin{bmatrix} \sigma (x_1, x_1) & \dots & \sigma (x_1, x_d)\\ \vdots & \ddots & \vdots \\ \sigma (x_d, x_1)& \dots & \sigma (x_d, x_d)\end{bmatrix}\in \mathbb{R} ^{d\times d} = σ(x1,x1)σ(xd,x1)σ(x1,xd)σ(xd,xd) Rd×d
其中,对角线上的元素为各随机变量的方差,非对角线上的元素为两两随机变量之间的协方差。

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值