Asymmetric Student-Teacher Networks for Industrial Anomaly Detection

用于工业异常检测的不对称学生-教师网络

时间:2022.10.14
期刊:WACV

之前师生网络结构的不足

  • 具有类似体系结构的学生网络,当输入不属于训练分布的数据时,它会推断出与教师类似的输出,给出低异常分数。
  • 也就是说师生网络结构相似时,在训练数据分布外的数据,学生网络会预测出错,即很大概率把异常数据预测为无缺陷的数据。
  • 解决:提出不对称的师生网络架构

前置知识:

  • 规范化流:一类生成模型,通过使用规范化流,可以将复杂的数据分布映射到一个已知的简单分布上,这样就可以实现从简单分布中采样来生成符合原始数据分布的样本。归一化流由多个后续仿射耦合块组成。
  • Real NVP使用了一系列的仿射耦合层(affine coupling layer),每一层都将输入数据分成两个部分:一个部分直接输出,另一个部分通过仿射变换来作为下一层的输入。
    这样的设计使得模型能够保持输入数据的维度不变,并且允许在训练过程中计算概率密度函数的导数。

我们基于Real NVP[15]训练归一化流,以将训练分布转换为正态分布N(0;I)。

摘要

文章贡献:

  • 我们的方法通过高度不对称的网络作为学生-教师对来避免从教师到学生的非期望的泛化。

  • 我们通过引入作为教师的双射规范化流来改进学生-教师网络

  • 通过利用师生距离,我们的AST优于教师的密度估计能力。

工业缺陷检测,一般使用异常检测的方法,它的可用数据集(带有缺陷的数据集)很少或不完整。

这项工作发现了AD的学生-教师方法中以前未知的问题,并提出了一种解决方案,即训练两个神经网络,为无缺陷的训练示例产生相同的输出。

师生网络的核心假设是,对于异常情况,两个网络的输出之间的距离更大,因为它们在训练中不存在。

然而,以前的方法存在学生和教师架构的相似性,因此对于异常情况,距离非常小,

因此,我们提出了非对称师生网络(AST)。

作为教师,我们训练一个用于密度估计的归一化流,作为学生,我们训练一个传统的前馈网络,以触发较大距离的异常:与正常数据相比,归一化流的双向性强制教师输出异常的差异。

在训练分布之外,由于其根本不同的架构,学生无法模仿这种差异。

我们的AST网络通过归一化流来补偿错误估计的可能性,该归一化流在以前的工作中被替换用于异常检测。

介绍

首先,教师在一个前置任务上接受训练,以学习语义嵌入。在第二步中,对学生进行训练,使其与老师的输出相匹配。

这样做的动机是,学生只能在正常数据上匹配教师的输出,因为学生只接受正常数据的训练。

学生和老师的输出之间的距离被用作测试时异常的指标。

假设与无缺陷的例子相比,有缺陷的例子的该距离更大。

之前存在的问题:具有类似体系结构的学生网络,当输入不属于训练分布的数据时,它会推断出与教师类似的输出,给出低异常分数。

内射性是指神经网络中节点与其他节点以及自身之间的连接关系,它在处理序列数据和记忆相关任务中起到重要作用。

通常,由于常见神经网络的内射性缺失,不能保证分布外的输入将导致两个输出的足够大的变化。

与规范化流相比,传统网络不能保证为分布外输入提供分布外输出。

这些问题促使我们使用不对称的师生对(AST):双射归一化流充当教师,而传统的序列模型充当学生

通过这种方式,教师保证对异常引起的输入变化敏感。此外,使用不同的体系结构,从而使用不同的可学习函数集,加强了分布外样本的远距离输出的影响。

**作为教师的前置任务,我们通过最大似然训练将图像特征和/或深度图的分布优化为正态分布,**这相当于密度估计。这种优化本身在之前的工作中被用于异常检测,利用可能性作为异常分数:正常的低可能性应该是异常的指标。然而,Le和Dinh已经表明,即使是完美的密度估计也不能保证异常检测。

我们表明,与教师获得的可能性相比,我们的师生距离是异常检测的更好度量。

使用归一化流本身进行异常检测的优点是,可以补偿可能的可能性估计错误:如果将正常的低可能性错误地分配给正常数据,则学生可以预测该输出,因此仍然会产生较小的异常分数。如果将正常的高可能性错误地分配给异常数据,则学生无法预测该输出,再次导致高异常分数。

通过这种方式,我们将师生网络和密度估计的好处与归一化流相结合。我们通过位置编码和使用3D图像掩蔽前景来进一步增强检测。

模型架构

总体介绍:

训练两个模型,一个学生模型fs和一个教师模型ft。

训练过程分为两个阶段:

首先,优化教师模型,通过归一化流将训练分布双射地转换为正态分布N(0;I)。

其次,通过最小化训练样本x∈ X的fs(x)和ft(x)之间的距离,优化学生以匹配教师输出。在测试时应用该距离进行异常评分,。

我们对输入图的空间维度使用正弦位置编码[50]作为归一化流ft的条件。这样,特征的出现与其位置有关,以检测异常。

教师网络

对于教师的规范化流架构,我们使用4个耦合块

输入:x是wXh的n维特征的特征映射,(先固定排列,再偶信道分割),在这些耦合块中,在随机选择保持固定的排列之后,输入x的通道沿着通道被均匀地分成部分x1和x2。这些部分中的每一个都与作为静态条件的位置编码c相连接。

其中,日是元素乘积,[...,...]表示串联,一个耦合块的输出是沿信道的Y1和Y2的级联。

X1和x2通过子网络SI和TI,来计算对应的,仿射变换和移位参数。
每对内部子网络si和ti被设计为具有一个隐藏层的一个浅卷积网络ri,该隐藏层的输出被划分为尺度分量和移位分量。

训练过程使用了伽马技巧等方法,通过优化均值来最小化负对数似然函数值。

学生网络

一个具有残差块的简单全卷积网络。

每个残差块由3×3卷积层的两个序列、批量归一化[25]和泄漏ReLU激活组成。我们添加卷积作为第一层和最后一层,以增加和减少特征维度。

与老师类似,学生将图像特征作为输入。

此外,位置编码c被级联。

输出维度与教师匹配,以实现逐像素的距离计算。

在给定训练集x的情况下,在输出的像素位置(i;j)处,我们最小化训练样本x∈ X上学生输出fs(x)和教师输出ft(x)之间的欧式距离的平方(放大差异)。

实验

  • MVTec AD[6]和MVTec 3D-AD
    对于这两个数据集,训练集只包含无缺陷数据,测试集包含无缺陷和有缺陷的示例。
    除了图像级标签外,数据集还提供了关于缺陷区域的像素级注释,我们使用这些注释来评估缺陷的分割。
    MVT2D,是一个高分辨率的2D RGB图像数据集,包含10个对象和5个纹理类别。测试集中总共有73种缺陷类型,例如,以各种尺寸和形状的位移、裂纹或划痕的形式出现。
    MVTec 3D-AD,我们称之为MVT3D,是一个非常新的3D数据集,包含10个类别的2D RGB图像和3D扫描。这些类别包括可变形和不可变形的物体,部分具有自然变化(例如桃和胡萝卜)。除了MVT2D中的缺陷类型之外,还存在只能从深度图中识别的缺陷,例如凹陷。
    我们使用在ImageNet[13]上预训练的EfficientNet-B5[47]的第36层输出作为特征提取器。该特征提取器在学生和教师网络的训练期间不被训练。
  • 教师网络
    对于教师的规范化流架构,我们使用4个耦合块,这些耦合块以具有32个通道的位置编码为条件。

每对内部子网络si和ti被设计为具有一个隐藏层的一个浅卷积网络ri,该隐藏层的输出被划分为尺度分量和移位分量。

在ri中,我们使用ReLU激活。

  • 学生网络

对于学生网络,我们使用n=4个残差卷积块。

同样,我们从老师那里接管了时期的数量和优化器参数。

与异常检测一样,我们通过计算接收器工作特性下的面积(AUROC)来评估我们的方法在图像级别上的性能。

为了在像素级测量异常的分割,我们在给定数据集中的地面实况掩码的情况下计算像素级的AUROC。
表2显示了我们的方法的AUROC和之前检测15类MVT2D异常的工作,以及纹理、对象和所有类的平均值。

  • 实验结论
    我们在所有类别的平均检测AUROC上都设置了一个新的最先进的性能,将其略微提高到99.2%。
    在这些对象中,除了PatchCore[36]之外,我们以0.9%的相对较大的优势超过了以前的工作。
    特别是与两种学生-教师方法[7,51]相比,分别显著提高了6%和3.6%。
    此外,与当前最先进的密度估计器[22,39]的可能性相比,我们的师生距离显示出更好的异常指标,后者与我们的老师一样,是基于归一化流的。

结论

贡献:

1.不对称师生网络

2.引入规范化流改善网络

3.利用师生距离而不是密度估计,来优化模型

相关推荐
余生H9 分钟前
transformer.js(三):底层架构及性能优化指南
javascript·深度学习·架构·transformer
果冻人工智能27 分钟前
2025 年将颠覆商业的 8 大 AI 应用场景
人工智能·ai员工
代码不行的搬运工29 分钟前
神经网络12-Time-Series Transformer (TST)模型
人工智能·神经网络·transformer
石小石Orz31 分钟前
Three.js + AI:AI 算法生成 3D 萤火虫飞舞效果~
javascript·人工智能·算法
罗小罗同学37 分钟前
医工交叉入门书籍分享:Transformer模型在机器学习领域的应用|个人观点·24-11-22
深度学习·机器学习·transformer
孤独且没人爱的纸鹤40 分钟前
【深度学习】:从人工神经网络的基础原理到循环神经网络的先进技术,跨越智能算法的关键发展阶段及其未来趋势,探索技术进步与应用挑战
人工智能·python·深度学习·机器学习·ai
阿_旭43 分钟前
TensorFlow构建CNN卷积神经网络模型的基本步骤:数据处理、模型构建、模型训练
人工智能·深度学习·cnn·tensorflow
羊小猪~~43 分钟前
tensorflow案例7--数据增强与测试集, 训练集, 验证集的构建
人工智能·python·深度学习·机器学习·cnn·tensorflow·neo4j
极客代码1 小时前
【Python TensorFlow】进阶指南(续篇三)
开发语言·人工智能·python·深度学习·tensorflow
zhangfeng11331 小时前
pytorch 的交叉熵函数,多分类,二分类
人工智能·pytorch·分类