Contexto
Para el segundo artículo del Lixo Journal Club, analizaremos el artículo Deep Bayesian Active Learning with Image Data de Gal et al, que se presentó en 2017 para laInternational Conference on Machine Learning.
En Lixo y para muchas aplicaciones que utilizan aprendizaje automático y redes neuronales, una forma directa de mejorar el rendimiento de un modelo es anotar más datos y añadirlos al conjunto de datos de entrenamiento. Sin embargo, anotar datos es caro, lleva mucho tiempo y requiere conocimientos especializados. El aprendizaje activo para aplicaciones relacionadas con la imagen consiste en utilizar un gran conjunto de imágenes sin anotar para encontrar las imágenes más valiosas que, si se anotan, mejorarán más el rendimiento del modelo.
¿Por qué ha elegido este documento?
Este trabajo está directamente relacionado con numerosos casos de uso industrial: cómo mejorar un modelo existente limitando al mismo tiempo los costes y el tiempo de anotación. Aunque el aprendizaje activo es objeto de investigación desde hace varios años, este trabajo sienta las bases del aprendizaje activo en el caso de las redes neuronales aplicadas a datos de imágenes.
¿Por qué es innovador?
Los autores proponen un nuevo método para cuantificar la incertidumbre de una red neuronal utilizando Drop Out, una técnica comúnmente utilizada para la regularización. El Drop Out consiste en cerrar neuronas aleatoriamente durante el entrenamiento para evitar el sobreajuste.
La idea de Gal et al es utilizar Drop Out para tener varias instancias de la misma red. Durante la inferencia, cerraremos aleatoriamente ciertas neuronas para cada instancia de nuestra red, con semillas diferentes. Así tendremos varias redes que provienen de la misma distribución, sin que sean la misma red. Y una vez que hayamos instanciado estas diferentes redes, la idea es comparar sus salidas. Si para una imagen determinada las redes no coinciden (por ejemplo, para un problema de clasificación, una red predice un gato, otra un perro y otra un coche), entonces podemos considerar que el modelo es incierto sobre la imagen y que la imagen contiene información interesante para entrenar nuestro modelo, por lo que deberíamos añadirla a nuestro conjunto de datos de entrenamiento. Este método se denomina Aprendizaje Activo Bayesiano por Desacuerdo (BALD). Los autores también proponen otros criterios, continuando con el uso de Drop Out para recuperar instancias de la misma distribución de red.
El artículo centra la prueba en datos de imagen, con el conjunto de datos MNSIT e ISIC 2016 Melanoma. Es interesante realizar esta prueba comparativa con conjuntos de datos de imágenes porque los métodos de aprendizaje activo pueden ser sensibles a la distribución de los datos y a la arquitectura del modelo.
El procedimiento de referencia consiste en entrenar un modelo con imágenes elegidas al azar y, a continuación, utilizar BALD (u otro método) para determinar las siguientes 10 imágenes a elegir del conjunto de imágenes, volver a entrenar un modelo con estas imágenes e iterar. Su método muestra un mejor rendimiento con menos imágenes en comparación con la selección aleatoria de imágenes.
¿Cuáles son los límites?
Tarea de clasificación simple
Su punto de referencia se centra en tareas de clasificación sencillas con datos simples. Habría sido interesante disponer de datos más complicados, así como de tareas más complejas, como la detección de objetos, la segmentación de imágenes o la estimación de poses. Además, los autores utilizan una arquitectura VGG16 con algunas capas de abandono al final de la red. Habría sido interesante comprobar si los resultados eran los mismos con otras arquitecturas, como ResNet.
Sólo arquitectura
Los autores utilizan un VGG16 sencillo con capas Drop Out al final de la red. Habría sido interesante ver si los resultados seguían siendo los mismos con otras arquitecturas.
Latencia
Este método requiere varias pasadas de inferencia para estimar la incertidumbre del modelo. Si utilizamos 5 instancias de nuestra red con diferentes semillas Drop Out, multiplicamos por 5 la latencia de una imagen. En Lixo, por ejemplo, no podemos utilizar este método directamente en nuestras máquinas integradas porque funcionan en tiempo real.
No tiene en cuenta las imágenes por lotes
Otro problema potencial de este marco es que evaluamos la relevancia de las imágenes una por una sin ninguna noción de diversidad entre imágenes. En el caso de un conjunto de imágenes con varias imágenes muy similares, este método puede devolver imágenes casi idénticas en la misma iteración. Enfoques más recientes tienen en cuenta esta limitación para evitar seleccionar imágenes similares, por ejemplo Kirsch et al.
Tamaño de lote demasiado pequeño
El artículo utiliza 10 imágenes por lote de aprendizaje activo. En Lixo, utilizamos el aprendizaje activo para seleccionar mejor las imágenes que queremos anotar. Un tamaño de lote pequeño es óptimo para el algoritmo, pero en la práctica es muy difícil y costoso entrenar con anotaciones de imágenes intercaladas. El coste del entrenamiento con un tamaño de lote pequeño es aún mayor si consideramos arquitecturas más complejas que VGG16.
Conclusión
En Lixo, mejoramos constantemente nuestros modelos al tiempo que limitamos el coste y el tiempo dedicados a la anotación. El aprendizaje activo es un marco excelente para abordar este problema, y este artículo sienta las bases del aprendizaje activo en el contexto de las redes neuronales aplicadas a las imágenes. El artículo se centra en una tarea de clasificación sencilla, pero en Lixo hemos confirmado que podemos utilizar las ideas del artículo en casos de uso más específicos y exhaustivos (detección de objetos para la industria de residuos) y limitar el número de imágenes que hay que anotar para mejorar el modelo.
En términos más generales, la clave para mejorar el rendimiento de un modelo en un contexto industrial suele estar en "centrarse en los datos" (trabajar en los datos más que en el propio modelo). El aprendizaje semisupervisado es otro enfoque que complementa el aprendizaje activo para utilizar grandes cantidades de datos no anotados. Este tema puede ser objeto de una futura entrada en el blog.
Más información:
- Aprendizaje activo bayesiano profundo con datos de imágenes, Yarin Gal, Riashat Islam, Zoubin Ghahramani (2017)
- Abandono: una forma sencilla de evitar que las redes neuronales se sobreajusten, Nitish Srivastava, Geoffrey Hinton, Alex Krizhevsky, Ilya Sutskever, Ruslan Salakhutdinov (2014)
- BatchBALD: Adquisición eficiente y diversa de lotes para el aprendizaje activo bayesiano profundo, Andreas Kirsch, Joost van Amersfoort, Yarin Gal (2019).