Çevrimiçi aykırı değer tespiti


10

Yüksek verimli görüntüleme hattının bir parçası olarak hatalı görüntüleri ve / veya hatalı bölümleri tespit etmek için otomatik olarak bölünmüş mikroskopi görüntülerini işlemek istiyorum. Her ham görüntü ve segmentasyon için hesaplanabilen ve görüntü kusurlu olduğunda "aşırı" hale gelen bir dizi parametre vardır. Örneğin, görüntüdeki bir kabarcık, algılanan "hücrelerden" birinde muazzam bir boyut veya tüm alan için anormal derecede düşük bir hücre sayımı gibi anormalliklerle sonuçlanacaktır. Bu anormal vakaları tespit etmenin etkili bir yolunu arıyorum. İdeal olarak, aşağıdaki özelliklere (kabaca arzu edilebilirlik sırasına göre) sahip bir yöntemi tercih ederim:

  1. önceden tanımlanmış mutlak eşikler gerektirmez (önceden tanımlanmış yüzdeler uygun olmasına rağmen);

  2. tüm verilerin hafızada olmasını veya hatta tüm verilerin görülmesini gerektirmez; yöntemin uyarlanabilir olması ve daha fazla veri gördüğü için ölçütlerini güncellemesi sorun olmaz; (belli ki, küçük bir olasılıkla, sistem yeterli veri görmeden ve gözden kaçırılmadan önce anormallikler ortaya çıkabilir.)

  3. paralelleştirilebilir: örneğin bir ilk turda, paralel olarak çalışan birçok düğüm ara aday anomalileri üretir ve bunlar ilk tur tamamlandıktan sonra ikinci tur seçimden geçer.

Aradığım anormallikler ince değil. Verilerin bir histogramına bakarsa açıkça görülen türlerdir. Ancak söz konusu verilerin hacmi ve görüntüler üretilirken bu anomali tespitini gerçek zamanlı olarak gerçekleştirmenin nihai hedefi, histogramların bir insan değerlendiricisi tarafından incelenmesini gerektiren herhangi bir çözümü engeller.

Teşekkürler!


Sorununuzun temelde tek değişkenli olduğunu düzeltiyor muyum?
user603

1
Sahip olduğunuz sorunu "görmeme" yardımcı olabilecek bazı veriler gönderin. Histogramı aykırı vurgulayan oldukça tanıdık ve insan değerlendirici tarafından histogramları incelemek yerine istatistiksel yöntemleri kullanarak bu anormal vakaları tespit etmenin etkili bir yolu hakkında size rehberlik edebilirim. Rasgele istatistiklerin tespiti ile ilgili yeni bir tartışmaya bakın .
IrishStat

Bize daha fazla ayrıntı verebilir misiniz? Parametreler sürekli mi yoksa ayrık mı? Arızalı olmayan görüntüler için parametrelerin dağılımı nedir? Gauss? Parametreler bağımsız mı yoksa ilişkili mi? Görüntü başına kabaca kaç parametre çıkarıyorsunuz? Saniyede kaç görüntü işleyebilmeniz gerekiyor (veya görüntü başına hangi gecikme süresi kabul edilebilir)? Belki de arızalı olmayan görüntülerden oluşan büyük bir veri setinde birkaç tipik parametre için bazı histogramlar gösterebilir ve ardından arızalı görüntüler için karşılık gelen histogramı gösterebilirsiniz? Bu iyi bir çözüm bulmanıza yardımcı olabilir.
DW

Yanıtlar:


3

Tek sınıflı bir sınıflandırıcı gibi bir şey düşündünüz mü?

"Eğitim setiniz gibi görüntüler" ile diğer her şeyi birbirinden ayırmaya çalışan bir sınıflandırıcıyı eğitmek için kullanılan, iyi bilinen bir eğitim setine ihtiyacınız olacaktır. David Tax'in muhtemelen konuyla ilgili gerekenden daha fazla bilgiye sahip olduğu bir tez var , ancak başlamak için iyi bir yer olabilir.

Bir eğitim seti gerektirmekten başka, gereksinimlerinizi karşılayacak gibi görünüyor:

  • Parametreler verilerden öğrenilir (burada ad hockery yok)

  • Modeli aldıktan sonra, verileri hafızada tutmanıza gerek yoktur.

  • Benzer şekilde, eğitimli sınıflandırıcı, sahip olduğunuz sayıda düğümde çalıştırılabilir.

Uygulamanıza bağlı olarak, servis verilebilir bir sınıflandırıcıyı bir kez eğitebilir ve farklı türdeki örnekler / boyalar / lekeler / floroforlar / vb. İçin tekrar kullanabilirsiniz. Alternatif olarak, kullanıcıların her çalışmanın ilk partisini manuel olarak derecelendirmelerini sağlayabilirsiniz - bir insanın en az 5-8 örneği / dakikayı iyi bir arayüzle kontrol edebileceğini hayal ediyorum.



1

Birçok olası yaklaşım vardır, ancak daha fazla bilgi olmadan durumunuzda neyin en iyi olabileceğini bilmek zordur.

Her resim için öğesinin bir unsur vektörü aldığınız . Bu durumda, işte birkaç aday çözüm:Rn

  • Önceki tüm görüntülerin özellik vektörlerini sınıflandırmalarıyla birlikte diskte saklayın. Periyodik olarak (örneğin günde bir kez) bu veriler üzerinde bir öğrenme algoritması eğitin ve yeni görüntüleri sınıflandırmak için ortaya çıkan algoritmayı kullanın. Disk alanı ucuz; bu çözüm, çevrimdışı öğrenme algoritmasını çevrimiçi ayarınızda kullanılabilen bir algoritmaya dönüştürmek için pragmatik ve etkili olabilir.

  • Sınıflandırmalarıyla birlikte 1.000 (veya 1.000.000) önceki rastgele bir örneğin örnek vektörlerini saklayın. Bu alt örnek üzerinde periyodik olarak bir öğrenme algoritması eğitin.

    Standart numaralar kullanarak bu alt örneği etkin bir şekilde çevrimiçi olarak güncelleyebileceğinizi unutmayın . Bu sadece önceki tüm görüntülerin tüm özellik vektörlerini saklamanın zor olmasının bir nedeni varsa (bu benim için hayal edilmesi zor görünüyor, ama kim bilir) ilginç.

  • vektörünün her biri için , şimdiye kadar görülen arızalı olmayan görüntülerin çalışma ortalamasını ve standart sapmasını takip edin. Daha sonra, yeni bir görüntü aldığınızda, özelliklerinden herhangi biri söz konusu özelliğin ortalamasının en az standart sapması ise, görüntüyü kusurlu olarak sınıflandırın, aksi takdirde kusurlu olarak sınıflandırın. Seçebilirsiniz dayalı yanlış pozitif ve yanlış negatif arasına istenilen tradeoff ve.c c nnccn

    Başka bir deyişle, araçların -vector değerini ve standart sapmaların -vector değerini ; burada , Özellik vektörünün ortalaması ve bu özelliğin standart sapmasıdır. Yeni bir özellik vektörü aldığınızda ,Herhangi bir için . Değilse, hatalı olmayan olarak sınıflandırırsınız ve ve güncelleştirirsiniz .μ n σ μ i i σ i x | x i - μ i | c σ i i μ σnμnσμiiσix|xiμi|cσiiμσ

    Bu yaklaşım, arızalı olmayan bir görüntüdeki her parametrenin bir Gauss dağılımına sahip olduğunu ve parametrelerin bağımsız olduğunu varsayar. Bu varsayımlar iyimser olabilir. Bu planın, bu varsayımlara olan ihtiyacı ortadan kaldıracak veya performansı artıracak daha karmaşık varyantları vardır; bu size bir fikir vermek için basit bir örnektir.

Genel olarak, çevrimiçi algoritmalara ve akış algoritmalarına bakabilirsiniz.


DW Bir ARIMA filtresi / modeli, terimlerin (N) ve uygulanacak ağırlıkların ampirik olarak tanımlandığı "çalışma ortalaması" nın bir optimizasyonudur. Belli ve açık bir şekilde varsayımsal bir model, "N" 'de "çalışma ortalaması" nda kullanılacak değerlerin sayısını tahmin etmek ve daha sonra ağırlıkların birbirine eşit olduğunu varsayarak cansızlığı birleştirmektir.
IrishStat

@IrishStat, Yorumunuzu anladığımdan emin değilim. Yazımın belirsiz olması durumunda, ARIMA'yı önermiyordum, ancak bu da düşünülebilecek bir şey. Çok daha basit bir şey öneriyordum: şu ana kadar tüm gözlemlerin ortalamasını ve standart sapmayı takip edin. Her yeni gözlem gördüğünüzde, ortalama ve standart sapmayı (şimdiye kadar görülen gözlem sayısını takip ettiğiniz sürece) standart yöntemlerle güncelleyebilirsiniz. Basit olabilir, ama bunun neden gereksiz olacağını anlamıyorum.
DW

0

Sorunuzdan anladığım kadarıyla, bir dizi vektör alırsınız ve şimdiye kadar gördüğünüz tüm vektörler göz önüne alındığında mevcut vektörü bir aykırı olarak işaretlemek istersiniz. (Görüntü parametrelerinin vektörün elemanları olduğunu varsayıyorum.)Rn

Aykırı değerler oldukça açıksa, işe yarayacak basit bir hile aşağıdadır. Vektörlerinizden bir yere duyarlı hash fonksiyonu oluşturun. (Rastgele hiperplantasyon kümesinin hangi tarafının vektör üzerine düştüğü gibi basit bir randomize karma olabilir. karma değeri (hiperplanlar durumunda boole vektörü) ve sözlükteki sayımlar. Ayrıca şimdiye kadar görülen toplam vektör sayısını da kaydedersiniz. Herhangi bir zamanda, karma içinde onunla çarpışan toplam vektör sayısı toplamın önceden tanımlanmış bir yüzdesinden azsa, belirli bir vektörü bir aykırı değer olarak işaretleyebilirsiniz.

Bunu artımlı bir şekilde bir histogram oluşturma olarak görebilirsiniz. Ancak veriler tek değişkenli olmadığından, bu şekilde davranmasını sağlamak için karma hile kullanırız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.