10 votos

Detección de valores atípicos en línea

Quiero proceso automáticamente segmentación de imágenes de microscopía para detectar defectuoso imágenes y/o defectuosa de la segmentaciones, como parte de un alto rendimiento de imagen de tuberías. Hay una serie de parámetros que pueden ser calculadas para cada imagen raw y segmentación, y que se convierten en "extrema" cuando la imagen es defectuosa. Por ejemplo, una burbuja en la imagen el resultado de anomalías, tales como un tamaño enorme en una de las detectado "células", o un anómalamente bajo recuento de células por todo el campo. Estoy buscando una manera eficaz de detectar estos casos anómalos. Idealmente, yo preferiría un método que tiene las siguientes propiedades (aproximadamente en orden de preferencia):

  1. no requiere predefinidos umbrales absolutos (aunque predefinidos porcentajes están OK);

  2. no necesita tener todos los datos en la memoria, o incluso después de haber visto todos los datos; que sería bien por el método de adaptación y actualización de los criterios que considere más datos; (obviamente, con una pequeña probabilidad, anomalías pueden ocurrir antes de que el sistema se ha visto lo suficiente de datos, y será extrañado, etc.)

  3. es parallelizable: por ejemplo, en una primera ronda, muchos de los nodos de trabajo en paralelo producir intermedio candidato anomalías, que luego se someten a una segunda ronda de selección después de la primera ronda.

Las anomalías estoy buscando no son sutiles. Ellos son el tipo que son claramente evidente si uno mira un histograma de los datos. Pero el volumen de datos en cuestión, y el objetivo final de la realización de este detección de anomalías en tiempo real a medida que las imágenes se generan, se opone a cualquier solución que requieren la inspección de los histogramas por un ser humano evaluador.

Gracias!

3voto

Rob Allen Puntos 486

¿Usted ha considerado algo así como una clase clasificador?

Usted necesita un sistema de formación de imágenes, que se utilizan para entrenar un clasificador que intenta distinguir entre "las imágenes como su conjunto de entrenamiento" y todo lo demás. Hay una tesis por David Impuestos que probablemente tiene más información que la que realmente necesita en el tema, pero podría ser un buen lugar para empezar.

Otros que requieren un conjunto de entrenamiento, parece que podría satisfacer sus requisitos:

  • Los parámetros son extraídas de los datos (no ad-hockery aquí)

  • Una vez tienes el modelo, no hay necesidad de mantener los datos en la memoria.

  • Del mismo modo, el clasificador entrenado podría ser ejecutado en tantos nodos como tienes.

Dependiendo de su aplicación, usted podría ser capaz de entrenar a un reparables por el clasificador de una vez y reutilizar para diferentes tipos de muestras/colorantes/manchas/florophores/etc. Alternativamente, usted podría ser capaz de conseguir que los usuarios manualmente la velocidad de algunos de los primeros lotes de cada carrera, me lo imagino un humano podría comprobar al menos 5-8 ejemplos/minuto con una buena interfaz.

2voto

Amadiere Puntos 5606

Ver http://scholar.google.com/scholar?q=stream+valor atípico+detección de

Un par de métodos establecidos, tales como LOF se han adoptado a un flujo de contexto. Hay también, por supuesto, de que los métodos de actualización de los histogramas en streaming, por lo que la bandera obvio unidimensional de valores atípicos. Que en realidad podría ser suficiente para usted?

1voto

UK Visa Works Puntos 29

Hay muchos enfoques posibles, pero es difícil saber qué puede ser mejor en su situación sin más información.

Como suena, para cada imagen, recibirá una función vectorial, que es un elemento de $\mathbb{R}^n$. Si ese es el caso, aquí hay un puñado de soluciones candidatas:

  • La tienda de la función de los vectores de todas las anteriores imágenes, junto con su clasificación, en el disco. Periódicamente (por ejemplo, una vez al día) y un tren de un algoritmo de aprendizaje en este tipo de datos, y utilizar el algoritmo resultante para clasificar las nuevas imágenes. El espacio en disco es barato, esta solución podría ser un pragmático y eficaz para convertir un fuera de línea algoritmo de aprendizaje en uno que puede ser utilizado en el entorno en línea.

  • La tienda de la función de los vectores de una muestra aleatoria de 1.000 (1.000.000) antes de imágenes, junto con su clasificación. Periódicamente entrenar a un algoritmo de aprendizaje en esta submuestra.

    Tenga en cuenta que usted puede actualizar de forma eficaz esta submuestra en una moda en línea utilizando el estándar de trucos. Esto sólo es interesante si hay alguna razón por la que es duro para almacenar todos los de la función de los vectores de todas las anteriores imágenes (que parece difícil de imaginar, para mí, pero quién sabe).

  • Para cada una de las $n$ vectores, realizar un seguimiento de la ejecución de promedio y desviación estándar de los no defectuosos imágenes vistas hasta ahora. Luego, cuando reciba una nueva imagen, si alguna de sus características es, al menos, $c$ desviaciones estándar más allá de la media para esa función, se clasifican como defectuoso, de lo contrario clasificar como no defectuoso. Usted puede elegir $c$ basado en $n$ y el deseado equilibrio entre el número de falsos positivos y falsos negativos.

    En otras palabras, mantener un $n$-vector $\mu$ de los medios, y un $n$-vector $\sigma$ de desviaciones estándar, donde $\mu_i$ es la media de las $i$th función vectorial y $\sigma_i$ es la desviación estándar de esa característica. Cuando reciba una nueva característica de vectores $x$, compruebe si $|x_i - \mu_i| \ge c \sigma_i$ cualquier $i$. Si no, se clasifican como no defectuosa y actualización de $\mu$$\sigma$.

    Este enfoque asume que cada uno de los parámetros de un no-defectuoso de la imagen tiene una distribución de Gauss, y que los parámetros son independientes. Los supuestos pueden ser optimista. Hay muchos más sofisticadas variantes de este esquema que se elimina la necesidad de estos supuestos o mejorar el rendimiento; esto es sólo un simple ejemplo para dar una idea.

En general, usted puede mirar en línea los algoritmos y los algoritmos de secuencias.

0voto

RoMa Puntos 401

Por lo que entiendo de tu pregunta, recibirá una secuencia de vectores en $R^n$ y que te gustaría bandera de la corriente, el vector como un valor atípico dado que todos los vectores que he visto hasta ahora. (Estoy asumiendo que los parámetros de la imagen son los elementos del vector).

Si los valores atípicos son bastante obvias, un truco sencillo que el trabajo es la siguiente. Construir una localidad sensible de la función hash a partir de sus vectores. (Un simple aleatorio hash como el lado de un conjunto de azar hyperplanes el vector cae sobre fuerza de trabajo. Esto daría lugar a un vector booleano como el valor de hash.) Ahora, como usted recibir vectores, calcular el valor hash del vector y almacenar el valor de hash (el booleano, vectorial en el caso de hyperplanes) y la cuenta en un diccionario. También guarda el número total de vectores visto hasta ahora. En cualquier momento puede marcar un vector dado como un valor atípico si el número total de vectores que chocan con ella en el hash están a menos de que un porcentaje predefinido de la total.

Usted puede ver esto como la construcción de un histograma de manera incremental. Pero como los datos no se univariante utilizamos el hash truco para hacer que se comporte como él.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X