在线离群值检测


10

我想处理自动分段的显微镜图像,以检测故障图像和/或故障分割,作为高通量成像管线的一部分。可以为每个原始图像和分割计算很多参数,当图像有缺陷时,这些参数将变为“极端”。例如,图像中的气泡将导致异常,例如检测到的“单元”之一的尺寸过大,或者整个场的单元计数异常低。我正在寻找一种检测这些异常情况的有效方法。理想情况下,我更喜欢一种具有以下属性的方法(大致按需要排序):

  1. 不需要预定义的绝对阈值(尽管可以使用预定义的百分比);

  2. 不需要将所有数据都存储在内存中,甚至不需要查看所有数据;该方法具有自适应性并可以在看到更多数据时更新其标准就可以了;(显然,以很小的概率,异常可能会在系统看到足够的数据之前发生,并且会丢失等)。

  3. 是可并行化的:例如,在第一轮中,许多并行工作的节点会产生中间候选异常,然后在第一轮完成后进行第二轮选择。

我正在寻找的异常情况并不细微。如果人们看一下数据的直方图,它们就是显而易见的类型。但是,所讨论的数据量以及在生成图像时实时执行此异常检测的最终目标,排除了需要人工评估者检查直方图的任何解决方案。

谢谢!


我是否认为您的问题本质上是单变量的?
user603 2011年

1
发布一些数据,因为这可能有助于我“发现”您遇到的问题。我对突出显示异常值的直方图非常熟悉,我也许可以为您提供一些指导,指导您使用统计方法代替由评估人员检查直方图的有效方法来检测这些异常情况。请参阅有关检测随机性的最新讨论stats.stackexchange.com/questions/12955/… 当然,您正在尝试检测确定性违反随机性的行为。
IrishStat,

您能给我们更多细节吗?参数是连续的还是离散的?对于无缺陷的图像,参数具有什么分布?高斯?参数是独立的还是相关的?每个图像大约提取多少个参数?您需要每秒能够处理多少个图像(或每个图像可接受的延迟时间)?也许您可以在大量的无缺陷图像数据上显示一些典型参数的直方图,然后显示缺陷图像的相应直方图?这可能有助于找到一个好的解决方案。
DW 2012年

Answers:


3

您是否考虑过类似一类分类器?

您将需要一组已知良好的图像训练,用于训练一个分类器,以试图区分“像训练集这样的图像”和其他所有图像。David Tax撰写的一篇论文可能提供了比您实际需要的更多信息,但是可能是一个不错的起点。

除了需要一套培训外,它似乎可以满足您的要求:

  • 从数据中学习参数(此处无广告)

  • 一旦有了模型,就无需将数据保留在内存中。

  • 同样,训练有素的分类器可以在您拥有的尽可能多的节点上运行。

根据您的应用程序,您也许可以训练一次可用的分类器,然后将其重新用于不同类型的样本/染料/污渍/生化团/等。或者,您也许可以让用户手动对每次运行的第一批中的某些进行评分-我想象一个人可以通过良好的界面至少每分钟检查5-8个示例。



1

有很多可能的方法,但是如果没有更多信息,很难知道哪种方法最适合您。

听起来,对于每个图像,您都会收到一个特征向量,该特征向量是的元素。如果是这样,这里有一些候选解决方案:Rn

  • 将所有先前图像的特征向量及其分类存储在磁盘上。定期(例如每天一次)针对此数据训练一种学习算法,并使用所得算法对新图像进行分类。磁盘空间便宜;该解决方案对于将离线学习算法转换为可以在您的在线环境中使用的算法可能是一种实用且有效的解决方案。

  • 存储1,000个(或1,000,000)个先前图像的随机样本的特征向量及其分类。定期在此子样本上训练学习算法。

    请注意,您可以使用标准技巧以在线方式有效地更新此子样本。仅在由于某些原因而难以存储所有先前图像的所有特征向量的情况下,这才很有趣(对我来说,这很难想象,但谁知道)。

  • 对于向量中的每个向量,请跟踪到目前为止所看到的无缺陷图像的移动平均值和标准偏差。然后,当您收到新图像时,如果其任何特征至少超出该特征平均值的标准差,则将其分类为有缺陷,否则将其分类为无缺陷。您可以根据以及误报与误报之间的理想折衷选择。c c nnccn

    换句话说,您保持均值的向量和标准偏差的向量,其中是第个特征向量的均值,而是该特征的标准差。收到新的特征向量,请检查对于任何。如果不是,则将其分类为无缺陷,然后更新和。μ Ñ σ μ σ X | X - μ | Ç σ μ σnμnσμiiσix|xiμi|cσiiμσ

    该方法假定来自无缺陷图像的每个参数都具有高斯分布,并且这些参数是独立的。这些假设可能是乐观的。此方案有许多更复杂的变体,可以消除这些假设或提高性能。这只是一个简单的例子,可以给您一个想法。

通常,您可以查看在线算法和流算法。


DW ARIMA过滤器/模型是对“运行平均值”的优化,其中凭经验确定项数(N)和要应用的特定权重。一个特定的且显然是推定的模型是在“运行平均值”中猜测要使用的值的数量为“ N”,然后通过假设权重彼此相等来复合无穷。
IrishStat '02

@IrishStat,不确定我是否理解您的评论。万一我的写作不清楚,我不是在建议ARIMA,尽管这也是人们可以考虑的。我建议的事情要简单得多:跟踪到目前为止所有观测值的平均值和标准偏差。每次看到新观测值时,都可以使用标准方法来更新平均值和标准偏差(只要您一直跟踪到目前为止已观察到的观测值的数量)。这可能很简单,但是我不明白为什么这会很愚蠢。
DW 2012年

0

Rn

如果离群值很明显,那么下面一个可行的简单技巧。从向量构造局部敏感的哈希函数。(一个简单的随机散列,例如向量可能落在一组随机超平面的哪一侧,可能会起作用。这将产生一个布尔向量作为散列值。)现在,当您接收到向量时,您就可以计算该向量的散列值并存储哈希值(在超平面情况下为布尔向量)和字典中的计数。您还可以存储到目前为止看到的向量总数。如果在哈希中与之冲突的向量总数少于总数的预定义百分比,则可以在任何给定时间将给定向量标记为离群值。

您可以将其视为以增量方式构建直方图。但是由于数据不是单变量的,所以我们使用哈希技巧使它表现得像它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.