オンライン異常値検出


10

高スループットイメージングパイプラインの一部として、自動セグメント化された顕微鏡画像を処理して、欠陥のある画像や欠陥のあるセグメンテーションを検出したい。生の画像とセグメンテーションごとに計算できる多数のパラメータがあり、画像に欠陥があると「極端」になります。たとえば、画像内のバブルは、検出された「セル」の1つに巨大なサイズなどの異常、またはフィールド全体の異常に低いセル数をもたらします。これらの異常なケースを検出する効率的な方法を探しています。理想的には、次の特性を持つメソッドをお勧めします(ほぼ望ましい順に)。

  1. 事前定義された絶対しきい値は必要ありません(ただし、事前定義されたパーセンテージは問題ありません)。

  2. すべてのデータをメモリに保存したり、すべてのデータを確認したりする必要はありません。メソッドが適応可能で、さらに多くのデータが表示されたら基準を更新しても問題ありません。(明らかに、わずかな確率で、システムが十分なデータを確認する前に異常が発生し、見逃される可能性があります。)

  3. は並列化可能です。たとえば、最初のラウンドでは、並行して動作する多くのノードが中間候補の異常を生成し、最初のラウンドが完了した後、2番目のラウンドの選択を受けます。

私が探している異常は微妙ではありません。これらは、データのヒストグラムを見ると明白にわかる種類です。しかし、問題のデータ量、および画像が生成されているときにリアルタイムでこの異常検出を実行するという最終目標は、人間の評価者によるヒストグラムの検査を必要とするソリューションを排除します。

ありがとう!


あなたの問題は本質的に単変量であることは正しいですか?
user603 2011

1
いくつかのデータを投稿してください。あなたが抱えている問題を「確認」するのに役立ちます。私は異常値を強調するヒストグラムに精通しており、人間の評価者がヒストグラムを検査する代わりに統計的手法を使用してこれらの異常なケースを検出する効率的な方法についていくつかのガイダンスを提供できるかもしれません。ランダム性の検出に関する最近の議論を参照してくださいstats.stackexchange.com/questions/12955/… もちろん、ランダム性の確定的違反を検出しようとしています。
IrishStat

詳細を教えてください。パラメータは連続ですか、それとも離散ですか?欠陥のない画像の場合、パラメーターにはどのような分布がありますか?ガウス?パラメータは独立しているか、相関していますか?画像ごとに、おおよそいくつのパラメータを抽出しますか?1秒あたり何枚の画像を処理できる必要がありますか(または、画像あたりの許容待ち時間はどれくらいですか)?おそらく、欠陥のない画像の大規模なデータセット全体で、いくつかの典型的なパラメーターのいくつかのヒストグラムを表示してから、欠陥のある画像に対応するヒストグラムを表示できますか?これは良い解決策を見つけるのに役立つかもしれません。
DW

回答:


3

1クラス分類器のようなものを検討しましたか?

既知の良好な画像のトレーニングセットが必要です。これは、「トレーニングセットのような画像」と他のものすべてを区別しようとする分類器をトレーニングするために使用されます。ありますデビッド税によって論文おそらく、あなたが実際のトピックに必要以上の情報を持っていますが、開始するには良い場所かもしれません。

トレーニングセットを必要とする以外は、要件を満たしているようです。

  • パラメータはデータから学習されます(ここではアドホックはありません)

  • モデルを取得したら、データをメモリに保持する必要はありません。

  • 同様に、トレーニング済みの分類子は、取得したノードと同じ数のノードで実行できます。

アプリケーションによっては、サービス可能な分類子を1回トレーニングして、それをさまざまな種類の標本/染料/染色/発色団などに再利用できる場合があります。あるいは、ユーザーに各実行の最初のバッチの一部を手動で評価してもらうこともできます-優れたインターフェースを使用して、人間が少なくとも5〜8の例/分を確認できると思います。



1

考えられるアプローチは多数ありますが、情報がないと、状況に応じて何が最適かを知るのは困難です。

Rn

  • 以前のすべての画像の特徴ベクトルとその分類をディスクに保存します。定期的(たとえば、1日1回)に、このデータについて学習アルゴリズムをトレーニングし、結果のアルゴリズムを使用して新しい画像を分類します。ディスク容量は安いです。このソリューションは、オフライン学習アルゴリズムをオンライン設定で使用できるものに変換するのに実用的で効果的な場合があります。

  • 1,000(または1,000,000)前の画像のランダムサンプルの特徴ベクトルを、分類とともに保存します。このサブサンプルで学習アルゴリズムを定期的にトレーニングします。

    標準のトリックを使用して、オンラインでこのサブサンプル効率的に更新できることに注意してください。これは、以前のすべての画像の特徴ベクトルをすべて格納するのが難しい理由がある場合にのみ興味深いです(私には想像しにくいようですが、誰が知っているかです)。

  • nccn

    nμnσμiiσix|xiμi|cσiiμσ

    このアプローチは、欠陥のない画像からの各パラメーターがガウス分布を持ち、パラメーターが独立していることを前提としています。それらの仮定は楽観的かもしれません。このスキームには、これらの仮定の必要性をなくしたり、パフォーマンスを改善したりする、より洗練されたバリエーションがたくさんあります。これはあなたにアイデアを与えるための単なる例です。

一般に、オンラインアルゴリズムとストリーミングアルゴリズムを見ることができます。


DW ARIMAフィルター/モデルは、「移動平均」の最適化であり、項の数(N)と適用される特定の重みが経験的に識別されます。特定の明らかな推定モデルの1つは、「N」で「移動平均」で使用する値の数を推測し、重みが互いに等しいと仮定することにより、不確実性を合成することです。
IrishStat

@IrishStat、私はあなたのコメントを理解しているかどうかわかりません。私の文章が不明確な場合に備えて、私はARIMAを提案していませんでしたが、それも同様に考慮できるものです。私はもっ​​と単純なことを提案していました:これまでのすべての観測の平均と標準偏差を追跡します。新しい観測値が表示されるたびに、標準メソッドを使用して(これまでに観測された観測値の数を追跡している限り)平均偏差と標準偏差を更新できます。単純化しているかもしれませんが、なぜこれが狂ってしまうのかわかりません。
DW

0

Rn

外れ値がかなり明白な場合、機能する単純なトリックは次のとおりです。ベクトルから局所性に敏感なハッシュ関数を作成します。(ベクターがランダムな超平面のセットのどちら側に当たるかのような単純なランダム化されたハッシュが機能する可能性があります。これにより、ハッシュ値としてブールベクトルが生成されます。)これで、ベクターを受け取ったら、ベクターのハッシュ値を計算して保存します。ハッシュ値(超平面の場合はブールベクトル)と辞書内のカウント。これまでに見たベクトルの総数も保存します。ハッシュでベクトルと衝突するベクトルの総数が事前に定義された合計のパーセンテージより少ない場合、いつでも特定のベクトルに異常値としてフラグを立てることができます。

これは、ヒストグラムを段階的に作成するものと考えることができます。しかし、データは一変ではないので、ハッシュトリックを使用して、そのように動作させます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.