¿Cuáles son los mejores métodos de detección de anomalías para imágenes?

Definición de anomalías

Las anomalías son muestras raras que generalmente se ven como muestras no anómalas. Se pueden distinguir a veces fácilmente con solo mirar muestras a simple vista. Por ejemplo, imágenes de rayos X cancerosas e imágenes de rayos X no cancerosas. Este es un verdadero problema de detección de anomalías. Encontrará muchas piezas de literatura sobre detección de anomalías en las que las anomalías se definen libremente. Por ejemplo, encontrar imágenes de ‘entrenamiento’ en un grupo de imágenes de ‘perro’. Sí, este es un problema de detección atípico que se puede usar para limpiar un gran conjunto de datos, pero no es una verdadera detección de anomalías requerida para aplicaciones de la vida real (por ejemplo, en ciencias médicas o incluso para detectar baches de un conjunto de imágenes de carreteras).

Detección de anomalías:

  • Una clase SVM

Una cosa natural para la detección de anomalías es una clase SVM. Utilizando solo datos de una sola clase o sin anomalías, construya un límite de probabilidad de todas las muestras buenas. Durante la prueba, verifique si las muestras están dentro del límite; de lo contrario, es probable que sean anómalos. Pero para imágenes de mayor resolución, es difícil construir esta representación y no puede diferenciar entre muestras con anomalías y sin anomalías.

  • Autoencoders

Los autoencoders (AE) son una buena herramienta de creación de representación para imágenes. Se puede aprender una representación no anómala entrenando AE para reconstruir solo imágenes no corrompidas y durante la prueba se espera un mayor error de reconstrucción para imágenes anómalas no vistas. Pero el problema con AE es que solo aprende a comprimir y descomprimir cosas, y es capaz de reconstruir imágenes con bajos errores residuales. Por lo tanto, los AE no son buenos indicadores para la detección de anomalías.

  • Autoencoders de incrustación

Al pintar AE, puede enmascarar una parte de una imagen y pedirle al AE que extrapole y complete la máscara durante la reconstrucción. Ahora imagine que ha entrenado un AE de pintura solo en imágenes no anómalas y, en el momento de la prueba, si la parte enmascarada se asienta exactamente en los píxeles anómalos, entonces la reconstrucción sería más parecida al entrenamiento o a las muestras no anómalas. Esto daría como resultado un error de reconstrucción residual mayor y, por lo tanto, puede usarse como un detector de anomalías. Si piensa detenidamente, estas porciones enmascaradas actúan como detectores de anomalías locales independientes, lo que implica que también puede localizar dónde están las anomalías en la imagen. El siguiente es un ejemplo que muestra la detección de caras anómalas o extremas de un grupo de caras no anómalas o naturales. Puede encontrar los detalles en el documento “Detección de rostros anómalos con autoencoders” que no miran a escondidas “[1].

Nuevamente, no son perfectos, pero son mucho más fáciles de usar y construir en comparación con otros métodos como las Redes Adversarias Generativas.

Figura: Las dos filas superiores son caras de anomalía y la fila inferior no es anomalía. Las imágenes en negro en el segundo conjunto y el tercer conjunto son la diferencia residual entre el codificador automático y los codificadores automáticos incrustados. Puede ver que si el enmascaramiento se encuentra en la porción anómala, entonces hay un error residual alto.

¡Gracias por leer!

Referencias

[1] Bhattad, Anand, Jason Rock y David Forsyth. “Detectando rostros anómalos con codificadores automáticos sin mirar”. preimpresión de arXiv arXiv: 1802.05798 (2018).

Descargo de responsabilidad: soy uno de los autores del artículo anterior.

En términos de rendimiento en los puntos de referencia, hay una avalancha de documentos para examinar con diversos niveles de dificultad para implementar, diversos niveles de credibilidad y otros asuntos. Encontrar la compensación adecuada para su tarea no es una solución única para todos, así que le daré una respuesta general. Como estoy seguro de que sabe que el estado del arte para la mayoría de los problemas de visión involucra a las CNN, y como puede saber, la conexión entre las CNN y el concepto de “incertidumbre” es menos clara que para otros métodos de aprendizaje automático con una conexión más cercana a Bayes teorema. Sin embargo, el concepto de anomalía tiene que ver con la incertidumbre (por ejemplo, el proceso de pensamiento “este perro se ve excepcionalmente feroz, ¿tal vez es un lobo?”), Entonces, ¿cómo podemos beneficiarnos del poder de las CNN sin dejar de tener una idea de incertidumbre basada en principios?

Bayesian SegNet pregunta “¿qué pasa si pensamos en la incertidumbre como una variación entre lo que dicen las diferentes” versiones “de nuestro modelo bajo distintas aplicaciones de abandono?”, Y resulta que es una pregunta prometedora. Los autores del artículo y yo estamos de acuerdo en que los resultados cualitativos de este tratamiento de la incertidumbre se ven mucho mejor que el tratamiento más convencional de la incertidumbre como pérdida de softmax.

Sin embargo, no toda la incertidumbre puede atribuirse a anomalías (también tenemos objetos pequeños, límites entre objetos, regiones desordenadas, etc.), por lo que usar ideas similares a Bayesian SegNet sería solo una parte valiosa de un proceso de decisión más amplio. “La probabilidad de ser un ejemplo anómalo de la clase k” es un concepto humano de todos modos, por lo que tal vez algún modelo gráfico razonable sea la elección correcta para “un proceso de decisión más amplio”. Al menos hasta que un gran conjunto de datos de anomalías, que, hasta donde sé, no exista actualmente, haga que un enfoque supervisado de extremo a extremo comience a parecer más prometedor.

Los autoencoders funcionan para eso.

Dado que descomponen las imágenes y las reconstruyen, puede entrenarlas con imágenes defectuosas para analizar las que funcionan.

Es decir, puede explicar los errores, básicamente. Si sabes, tu salida deseada.

O supongo que elimina los errores.

no solo “detecta” los errores.

O quiero decir, podrías registrar los errores una vez detectados, supongo, pero ya sabes …

More Interesting

¿Por qué el aprendizaje en estructuras de datos complejas (gráficos, árboles, etc.) está tan poco representado en el aprendizaje automático?

¿OCR es una amenaza para CAPTCHA?

¿Qué significan las redes bayesianas en Machine Learning?

¿Cuántas imágenes necesito para entrenar una red neuronal convolucional?

¿Las redes neuronales convolucionales construyen simetrías locales o globales?

¿Qué computadora necesito para trabajar en aprendizaje profundo y redes neuronales?

¿Qué compañías con sede en Dallas están desarrollando y / o invirtiendo en tecnologías de Inteligencia Artificial / Aprendizaje Automático?

¿Cuál es tu algoritmo de aprendizaje automático favorito?

Me encanta codificar. '¿Hay alguna comunidad en la que pueda participar en pequeños proyectos para poder conectarme a ellos de forma remota y aprender?

¿Cómo podemos usar la red neuronal para la clasificación de texto?

Aprendizaje profundo: ¿Una versión suave de unidades lineales rectificadas funciona mejor o peor que una no lineal?

¿Qué es un modelo oculto de Markov - Red neuronal artificial (HMM-ANN)?

¿Por qué los modelos de aprendizaje automático no funcionan bien cuando se usan en la predicción del mercado de valores en vivo, pero, por otro lado, funcionan muy bien sin conexión?

¿Por qué la distribución previa no tiene mucho impacto en la distribución posterior cuando tenemos muchos datos?

¿Qué es exactamente el sobreajuste? ¿Por que sucede? ¿Cómo afecta a mi modelo?