引入用于使用对抗自编码器来检测第一图像数据集当中的一个或多个异常图像的方法、计算机程序以及计算设备。
背景技术:
在
在
技术实现要素:
所给出的用于检测第一图像数据集当中的一个或多个异常图像的方法使用对抗自编码器,所述对抗自编码器是在第一训练中利用图像训练数据集被训练的,而优化对抗自编码器使得图像训练数据集的图像的潜在表示的分布接近预定先验分布,并且最小化图像训练数据集的重构图像的重构误差。在对对抗自编码器的第一训练之后,在潜在表示中检测异常,并且在第二训练中利用图像训练数据集但是把检测到的异常考虑在内来训练对抗自编码器,由经训练的对抗自编码器取决于图像的重构误差和预定先验分布下的概率密度中的至少一个来检测第一图像数据集当中的一个或多个异常图像。
所给出的方法通过从至少部分未标注的图像训练数据集中学习来解决视觉异常检测的问题,所述至少部分未标注的图像训练数据集可能包含未知数量的异常,即“受污染”训练集。所述方法可以可靠地标识图像中未包含在训练集中的异常。所述方法还可以应用在主动半监督设定中,其中算法将未标注的数据集取作其输入,并且查询用户来为一小部分数据点供给标注。另外的优势是所述方法不局限于仅输出异常分数,而是可以标识很可能是异常的训练示例,使得可以由领域专家来核查系统的功能。
所述方法引入用于异常检测的另外的标准,其通过将重构和潜在信息组合来减少错误肯定和错误否定的数量。通过在训练期间更改训练集,所述方法对于受污染数据集变得特别鲁棒。此外,交互式半监督方案可以最佳地利用来自领域专家的非常稀疏的反馈,所述领域专家可以提供少量标注。
不要求训练数据中所包含的所有可能异常的代表性集。异常将自身表现为与正常类有显著偏差就足够,但是可能存在很多多样形式的异常。
所述方法比严格要求所有训练数据都来自正常类的其他方法具有更一般的适用性。如果违反该条件,这类方法会迅速损失性能。例如,在利用受污染数据的设定中使用正常自编码器的方法也学习很好地重构异常,并且因此关于重构误差的阈值不提供用于检测异常的鲁棒标准。相反,所给出的方法在其中不需要针对训练数据的标注的设置中是适用的,并且小部分的训练数据可能是异常的。
如果有领域专家可用于标注小部分的训练数据,那么所给出的方法可以处理训练数据并特别搜索那些示例,如果标注是已知的,这将提供最大的性能增益。
通过使用对抗自编码器,所述方法获得对潜在空间中的期望分布的控制,并且可以将潜在空间中的密度估计用作用于异常检测的附加标准。这导致比单独使用自编码器的重构误差更好的标准。对抗自编码器还充当所学习的数据分布的生成模型,并且可以用于从正常或标识的反常类中生成样本以验证所学习的模型是有意义的。
如果关于异常的性质的先验信息(例如,典型观察到的不同异常的预期数量)是已知的,这可以用于对抗自编码器中以成形潜在空间中的期望分布。
所给出的方法在训练期间自动地检测很可能是异常的训练示例,使得性能对于改变的异常率是鲁棒的。
在优选实施例中,通过使用一类支持向量机或局部离群因子算法来完成潜在表示中异常的检测。所给出的方法可以与处置检测到的异常的各种方法一起使用。针对该异常处置的优选实施例包括以下中的至少一个:(a)从用于第二训练的训练集中排除在潜在表示中检测到的异常,(b)在至少一次后续训练中,使用用于调谐对抗自编码器的加权损失函数,而在潜在表示中检测到的异常在该至少一次后续训练中接收减小的权重,(c)对于至少一次后续训练,将在潜在表示中检测到的异常集中每个异常的重构目标修改为其自身的噪声损坏版本,以及(d)在至少一次后续训练中,将在潜在表示中检测到的异常集中每个异常的重构目标修改为潜在空间中标识为没有异常的靠近或最靠近的图像。分离地或者组合使用这些功能提供对对抗自编码器的鲁棒和有效的训练。
在优选实施例中,所述方法输出针对第一图像数据集中的图像的异常分数,所述异常分数是基于重构误差和预定先验分布下的概率密度中的至少一个计算的。这提供对异常的差异化和精确的反馈。
在优选实施例中,所述方法用于视觉品质检查、医学图像分析、视觉监视或自动化驾驶中。
附图说明
图1示意性地示出了以二维高斯作为先验分布的示例性对抗自编码器框架。
图2示意性地示出了用于利用使用受污染训练数据的无监督训练来检测异常图像的方法的示例性实施例。
图3示意性地示出了用于利用使用受污染训练数据的半监督训练来检测异常图像的方法的示例性实施例。
具体实施方式
存在用于标识给定图像集中的异常或离群部的各种机器学习方法。然而假定来自正常类的图像共享很多相似的特征,离群部通过与正常类的显著偏差来表征。此外,假定训练数据完全由正常图像构成,或者仅小部分的图像是异常。视觉异常检测的典型应用是用于视觉品质检查、医学图像分析或用于监视任务。
用于异常检测的方案可以被分类为有监督、半监督或无监督:
有监督:训练集中的每个图像包含标注,所述标注指示其属于正常类还是异常。这也把假定所有可用训练数据都为正常的情况归入在内。
半监督:大部分图像是未标注的,但是对于一些图像,它们是异常还是属于正常类是已知的。
无监督:没有标注是已知的;图像是否是异常需要通过比较大多数类和最终离群部的特性来学习。
可以在仅在一个固定的数据集上标识异常的方法和从训练集学习并归纳到以前未见的图像的那些方法之间做出进一步区别。
用于视觉异常检测的一个方案是自编码器的使用,所述自编码器是由编码和解码级组成的具有多个隐藏层的神经网络。编码器被训练成将输入图像映射到较低维度的潜在表示,解码器从所述较低维度的潜在表示学习重构原始图像。目的是最小化自编码器的重构误差。通过具有较低维度的潜在表示,引入了瓶颈,所述瓶颈要求编码器聚焦于图像的特性特征,并且防止学习诸如恒等函数之类的平凡解。通过重构误差(通常是所有像素上的均方误差)来测量自编码器的品质。由于自编码器的目标输出是输入图像,因此自编码器训练是无监督的。
自编码器可以用于在图像和其他数据上进行异常检测。想法是仅在正常数据上训练的自编码器学习正常类的模型,即,其可以以非常小的训练误差重构正常图像,但是关于异常数据的重构误差将更高。然后,基于自编码器的异常检测将对重构误差施加阈值并将超过阈值的所有图像考虑成异常。这已成功应用于视觉和听觉品质检查问题。
用于异常检测的自编码器方案中的一个假定是所有训练示例都来自正常类,这使得那些方案落入如上文限定的有监督学习的类别,即使自编码器训练本身是无监督的。在更现实和更具有挑战性的情景中,训练集可能包含异常,但是哪些图像是异常的以及哪些不是在事先是未知的。这种“受污染训练数据”的情况很可能在现实世界的情景中发生,其中使所有训练点都由人类标注可能过于繁重或者甚至是不可能的,或者其中可能存在注释误差。对于所考虑的“受污染训练数据”集,可以假定训练数据中异常的部分是低的(在<5%的范围)并且正常类具有相对小的变异性,但是异常可能具有非常多样的形式。在该情景中,用于异常检测的自编码器的性能在小百分比的异常的情况下已经降级。
现在,提出使用自编码器的扩展——用于异常检测的对抗自编码器。在图1中示出了示意性框架。对抗自编码器由编码器12、解码器14和鉴别器网络16组成。图像训练集的图像11被输入到编码器12,所述编码器12将输入编码成潜在表示13。解码器14将潜在表示解码成重构图像15。训练对抗自编码器的编码器12和解码器14以最小化训练集中的图像的重构误差。
对抗自编码器引起潜在低维空间上的先验分布。该先验分布可以被预定并且可以被输入到对抗自编码器中。各种概率密度函数可以用作先验分布。在针对异常检测的优选实施例中,使用多元高斯(例如标准高斯),使得正常图像的潜在表示聚集在原点周围。可替换地,可以使用具有一个或多个专用拒绝类(用于异常)的高斯分布的混合,尤其是在已知不同异常类的数量时。在图1中,二维高斯17被输入到对抗自编码器的鉴别器网络16中。对抗自编码器通过训练鉴别器网络16而强制使图像训练集的输入图像的潜在表示的分布服从规定的先验,所述鉴别器网络16从期望先验分布来学习区分针对图像的表示。
该过程不要求关于每个图像的内容的任何标注(即,其是否是异常)。通过训练自编码器,每个图像的潜在表示被学习,并且对抗自编码器的对抗部分确保潜在表示的分布服从给定的先验分布。总体训练目标是优化对抗自编码器,使得潜在表示变得与先验不可区分,而在同时最小化解码器部分中的重构误差。
一旦对抗自编码器被训练,其可以用于计算所呈现图像是否是异常的两个不同标识符。第一,高重构误差(超过某个阈值)是针对异常的标志。第二,对于潜在空间的给定先验分布下的小概率密度也是图像可能是离群部的标识符。在检测异常中,两种测量的组合比它们中的任何单独一个更鲁棒。
在一个优选实施例中,选择先验分布使得大部分概率质量位于分布的中心(例如,标准多元高斯情况下的原点)周围,因此可以预期异常的密度是低的。可以预期在潜在空间中具有邻近表示的图像在解码之后导致相似图像。这意味着即使来自不同类的图像被映射到邻近的潜在表示,对于它们中的一个,重构误差也将显著更高。
图2示意性地示出了用于利用基于受污染训练数据的无监督训练、使用对抗自编码器来检测异常图像的方法的示例性实施例。在该实施例中,假定在整个训练过程期间没有针对图像的标注可用,但是存在异常率α的粗略估计。在该情况下,可以例如利用无监督一类支持向量机算法来执行潜在空间中的异常检测。在该方案中,可以由决策边界将内核变换的正常数据从原点分离,而内核变换的异常位于边界的更靠近于原点的另一侧。它要求指定异常率α,然后该异常率α被译成用于一类支持向量机的正则化参数β=1/(α×训练示例的数量),所述一类支持向量机控制预期有多少数据点位于决策边界之外。然后处理标识为潜在性异常的数据点以修改训练数据集。然后在修改后的数据集上继续对对抗自编码器的训练。
在该实施例中,限定第二异常率v,其是假定的异常率α的部分。然后该第二异常率v用于在训练期间迭代地检测异常。
图2中示出的无监督训练过程如下工作。在步骤21中,图像训练集被加载并在步骤22中用于在一定数量的迭代内训练对抗自编码器。一般而言,该数量不应该太大,以避免在包括异常的所有数据上进行穷尽训练。这产出针对每个图像的最初潜在表示。在步骤23中,检测当前潜在空间中的潜在性异常。为此,利用从更新步骤异常率v计算的正则化参数β来训练一类支持向量机。在步骤24中,核查检测到的异常是否达到异常率α或靠近于α的用户限定率。如果没有,所述方法以步骤25继续,把检测到的或可能的异常考虑在内。
功能251/252、253/254、255/256和257/258可以用作用于处置异常的替换,但所描述方案的组合也是可能的。实现或者激活所示出功能中的至少一个。在步骤251中,核查是否应该从训练集中排除潜在性异常直到数据集的下一次重置发生(步骤21)。如果是,这在步骤252中施行。在步骤253中,核查是否应该将加权损失函数用于调谐自编码器并且潜在性异常对于接下来的训练步骤是否接收减小的权重。如果是,这在步骤252中施行。在步骤255中,核查是否应该将检测到的异常的重构目标修改为其自身的噪声损坏版本,使得自编码器不再尝试完美地重构这类图像。如果是,这在步骤256中施行。在步骤257中,核查是否应该将检测到的异常的重构目标改变成(潜在空间中)被标识为属于正常类的下一最靠近图像。这还具有使自编码器的训练聚焦于很可能是正常的那些示例的效果。如果是,这在步骤258中施行。
在这样处置检测到的异常之后,在一定数量的迭代内再次训练对抗自编码器。训练迭代的数量取决于任务。一般而言,它不应该太大,以避免在包括异常的所有数据上进行穷尽训练。重复步骤22到25直到检测到的异常的部分达到百分之α或者靠近于α的用户限定率,并且这在步骤24中确定。在该情况下,所述方法前进到步骤26,其中核查对对抗自编码器的训练是否已经足够收敛。如果是这样的话,训练以步骤27结束并且对抗自编码器可以用于检测图像集中的异常。如果训练尚未足够收敛,那么以步骤21继续对对抗自编码器的训练,加载或重置图片训练集。然而,仍然使用当前的权重。
图3示意性地示出了用于利用使用受污染训练数据的半监督训练来检测异常图像的方法的示例性实施例。
取代于如上文所描述的完全无监督方案,用于检测图像中异常的该方法还可以并入用户的稀疏的交互式反馈,其中向他呈现潜在性异常并且他决定它们是否属于正常类。
在下文中描述了图3中示出的该半监督方案,聚焦于与图2中示出的无监督方案的差异。
步骤31和32分别对应于上文描述的步骤21和22。在步骤33a中,如步骤23中那样,利用从更新步骤异常率v计算的正则化参数β来训练一类支持向量机,但是排除以前标注(尤其通过用户反馈)为正常或异常的所有图像。步骤34对应于上文描述的步骤24。在步骤35a中,处置自动检测到的和用户检测到的异常。对应于上文描述的功能251到258来使用功能351到358。在步骤35a之后,所述方法再次以步骤32继续,而在训练中包括所有用户标识的正常实例以供训练。重复步骤32到35直到检测到的异常的部分达到百分之α并且这在步骤34中确定。在该情况下,所述方法前进到步骤36,其中核查对对抗自编码器的训练是否已经足够收敛。如果是这样的话,训练以步骤37结束并且对抗自编码器可以用于检测图像集中的异常。如果训练尚未足够收敛,那么以步骤31继续对对抗自编码器的训练,加载或重置图片训练集。然而,仍然使用当前的权重。
用户必须标注的图像的数量可以实现为用户可以选择的参数,例如,附加于选择他多么频繁地被问及新标识的异常。此外,可以实现用户可以选择如何处置检测到的潜在性异常,即应该使用步骤35a中的哪个功能。
一类支持向量机提供实例到决策边界有多靠近的测量。对于异常检测最具信息性的示例是靠近于边界的那些,并且应当优先呈现给用户来标注。可以通过潜在性异常到决策边界的距离来对它们排序,并且用户可以选择呈现给他的潜在性异常必须位于最靠近于边界的示例的前x-%内。
异常检测阈值可以基于重构误差来选择,并且可以取决于在训练期间获得的重构误差的分布。确定该阈值的若干替换是可能的,例如:
1.在训练期间观察到的最大重构误差(如果训练集只包含正常数据,那么这是有意义的)。
2.重构误差的百分率,例如95%的百分率,使得所有训练图像的仅5%超过该重构误差。
3.取决于预期异常率α的自适应阈值,诸如(1-α)%的百分率。
在对抗自编码器被训练之后,其可以用于标识新数据集中的异常。由对抗自编码器的编码器和解码器来处理新图像,并且优选使用重构误差和潜在表示(尤其在2d空间中)的密度的组合来将新图像分类成正常或异常。
在无监督的情况下,通过学习二维空间中的边界来针对异常数据区分正常通常已经是可能的,在所述二位空间中一个轴示出重构误差,并且第二轴示出潜在表示的密度。如果来自用户反馈的标注是已知的,这些可用于例如通过在计算分类器的误差中与未标注点相比增加它们的权重来改进两个类之间的分离。
所给出方法具有用在多个实际相关领域中的潜力。
在视觉品质检查中,收集由机器生产的零件的照片,并且执行潜在有故障零件的自动化标识。在所有生产的零件中的大多数是运转正常的假定下,这变成典型的异常检测任务,并且历史产出率(来自顾客反馈或领域专家)可以提供对预期异常率的良好估计。由于生成标注昂贵且耗时,无监督方案对于工业大规模生产,而且对于精密机械(例如,3d打印)的制造特别令人关注。
在视觉监视中,可以记录并比较来自视频流的帧。不寻常的记录对应于异常,所述异常可能要求人类监督者的注意或者激活某种警报。这对监视相机具有明显的应用,但是原理上也可以用于检测有故障的传感器。
在医学图像分析中,异常检测帮助标识医学图像中不寻常的结构,这可以为医学状况提供证据(在绝大多数患者健康的假定下)。应用是在医学成像的所有领域中,包括放射学、超声、pet扫描或显微分析。
在针对大型图像数据库的数据集清理中,异常检测可以标识离群部,所述离群部应该被仔细核查并潜在地被重新标注。这对于在大数据上工作的所有方法(例如,大规模机器学习或计算机视觉)是有用的预处理步骤,具有消除异常数据防止学习错误概念的益处。
在自主驾驶中,视觉异常检测可以标识超出训练数据的范围的场景,在所述训练数据上训练自动驾驶仪。在这类情形中,将控制交回人类驾驶员以避免安全问题可能是明智的。
所述方法还可以用于像图像的数据的分析。虽然一些传感器不产生图像,但是它们的记录可以表示成图像,例如傅里叶变换之后的光谱图。如果将对抗自编码器应用于二维光谱图,这允许使用所给出方法来标识来自其他感测域的异常记录,例如异常声音或雷达记录。