noviembre 10, 2018 6:00 pm

Jesús

?? Read in English

En la primera parte de esta serie de artículos hablamos sobre el trabajo del equipo RECOD Titans enfocado en la segmentación de lesiones en la piel a partir de imágenes dermatoscópicas. El día de hoy nos centraremos en la clasificación de lesiones.

Clasificación de lesiones

La estrategia de los autores consistió en aglomerar la mayor cantidad de datos y poder de cómputo para poder construir modelos lo suficientemente profundos, dado que en deep learning, particularmente en el caso de las redes neuronales convolucionales, mayor profundidad suele traducirse en mejores resultados. Sin embargo, aunque su meta era lograr el score más alto posible, no querían sacrificar simplicidad y limpieza en la arquitectura de la solución. En pocas palabras, a menos que mayor complejidad trajera consigo mejoras palpables, la opción más simple era la preferida.

El equipo compiló dos conjuntos de datos:

  • deploy, con 9640 imágenes de múltiples fuentes (para mayores detalles de las fuentes utilizadas, consulta la sección II.B Training data del paper)
  • semi, con 7544 imágenes, el cual es un subconjunto de deploy (para mayores detalles de las fuentes utilizadas, consulta la sección II.B Training data del paper)

Dado que ajustar modelos complejos pre-entrenados en ImageNet (transfer learning) es una buena manera de obtener resultados decentes, los autores se concentraron en el poder de dos arquitecturas recientes: ResNet-101 e Inception-v4. Aunque consideraron modelos aún más complejos, como Inception-ResNet, su relativa mejora en el desempeño en ImageNet no valía la pena dada la enorme complejidad en volumen y velocidad de procesamiento.

En un principio, optaron por entrenar modelos específicos para cada clase de lesión en la piel, aunque al final decidieron crear un único modelo capaz de discernir entre las tres clases directamente para ahorrar tiempo y esfuerzo.

Entre las hipótesis que RECOD Titans intentó validar están:

  • Comparar el desempeño del modelo base de referencia VGG-16  con ResNet-101 e Inception-v4.
  • Comparar imágenes de resolución estándar (224×224 tanto para VGG y ResNet) con imágenes con el doble de resolución.
  • Contrastar diferentes estrategias de asignación de pesos por muestras y por clases.
  • Contrastar diferentes regímenes de data augmentation tanto para el conjunto de entrenamiento como para el de pruebas.
  • Medir el impacto de añadir un SVM como última capa de decisión.
  • Intentar utilizar data adicional de los pacientes (edad y sexo).
  • Probar diferentes optimizadores.
  • Probar diferentes técnicas de normalización.
  • Añadir una última etapa de meta-decisión basada en múltiples modelos (ensemble, stacking, etc.)

Entre las ideas que parecían prometedoras pero que resultaron inútiles están:

  • Resolución de imágenes: Intentaron modificar VGG-16 e Inception-v4 para aceptar imágenes más grandes, pero no resultó en ninguna mejora.
  • Intentaron distintas estrategias de asignación de pesos para compensar por el desbalance en los datos. Ninguna funcionó.
  • Validación y detención anticipada.
  • Agregar data extra de los pacientes al modelo tampoco ayudó. Los resultados fueron inconsistentes, mejorando el desempeño en unos casos y empeorándolo en otros.
  • Utilizar información de segmentación recopilada en la primera parte del desafío tampoco proporcionó mejoras sustanciales.

Entre los factores que más ayudaron a alcanzar un buen desempeño en la solución final están:

  • Modelos profundos y mucha data.
  • Data augmentation.
  • Normalización a nivel de imágenes, particularmente en el caso de Inception-v4. Como factor de normalización se utilizó el promedio del valor de los pixeles por imagen.
  • Meta-modelos: Utilizar stacking al fusionar la decisión de varias redes neuronales en un mismo vector que luego es pasado como features de un SVM resultó en el mejor score en el sitio oficial de la competición.

Como modelo final, los autores optaron por un meta-modelo que combinaba las predicciones de siete modelos distintos (3 basados en Inception-v4 entrenados en deploy y 4 basados en ResNet entrenados en semi) en un vector que luego es pasado a un SVM entrenado en el conjunto de validación de deploy,

¿Qué te parece el trabajo del equipo RECOD Titans? En mi opinión, es bastante impresionante.

Te animo a leer el paper completo. No es complejo y hasta esconde cierta jocosidad.

Nos vemos pronto.

Sobre el Autor

Jesús Martínez es el creador de DataSmarts, un lugar para los apasionados por computer vision y machine learning. Cuando no se encuentra bloggeando, jugando con algún algoritmo o trabajando en un proyecto (muy) cool, disfruta escuchar a The Beatles, leer o viajar por carretera.