Machine Learning al servicio de la salud

Machine Learning al servicio de la salud
¿Cuántos años tarda una persona en convertirse en médico? ¿Nueve, diez? ¿Quizás más?

¿Nunca fantasearon con la idea de que existan "píldoras de conocimiento" que -con solo tomarla- enriquezcan inmediatamente el cerebro con petabytes de datos y las habilidades necesarias para curar y salvar vidas? Claro que se trata de ciencia ficción… al menos por ahora.

Lo que no es ciencia ficción, sino más bien ciencia e ingeniería reales, es nuestra capacidad para comprimir decenas de miles de horas de trabajo duro por parte de los mejores oncólogos alrededor del mundo en una herramienta de diagnóstico de melanoma accesible para todas las personas. Imagina que tu lunar de aspecto sospechoso sea examinado por cientos de médicos a la vez y que cada uno entregue su propio diagnóstico basado en su experiencia y los casos que ha tenido anteriormente. Ahora imagina que todo ese poder cognitivo esté empaquetado y a disposición en el mismo celular con el que se llama a Uber o se pide una pizza. Eso es exactamente lo que DataArt ha logrado este año.

Utilizando el último avance en tecnología de Machine Learning (ML), Andrey Sorokin, experto en ML de DataArt, participó en el desafío ISIC 2018 y creó MLSkinCare, una herramienta prototipo orientada a la detección de melanoma en etapa temprana usando nada más que un teléfono inteligente.

Desafío ISIC

La historia comenzó con el Desafío de Colaboración Internacional de Imágenes de la Piel (ISIC, por sus siglas en inglés) de 2018, patrocinado por la Sociedad Internacional de Imágenes Digitales de la Piel. Su objetivo era mejorar los métodos de diagnóstico del melanoma utilizando la colección más grande disponible públicamente de imágenes dermatoscópicas de lesiones cutáneas.

Un total de 13.000 imágenes de clínicas líderes en todo el mundo conformaron la base de este desafío. Su calidad garantizada y las marcas de los expertos en cáncer de piel fueron un conjunto de datos sin igual para probar el modelo ML.

El cáncer de piel es una enfermedad potencialmente mortal que puede comenzar con un pequeño lunar o nevo en la piel. Cada año, se diagnostican 5000.000 nuevos casos únicamente en los Estados Unidos y se lo considera una de las principales amenazas para la salud del mundo. El melanoma es el más mortal de todos los cánceres de piel que existen, si bien cuando se detecta a tiempo, la supervivencia supera el 95%.

La inspección visual de las lesiones de la piel mediante una dermatoscopía es uno de los métodos de detección precoz más común. Las imágenes de alta calidad recopiladas con teléfonos inteligentes con accesorios de dermatoscopio, brindan la oportunidad de que los algoritmos de evaluación automatizados ayuden a los dermatólogos. Pero este método también puede ser un sistema de alerta temprana para no expertos y tener un gran impacto en el mercado de los consumidores.

El desafío se dividió en tres tareas separadas:

  • Tarea 1: Segmentación de la lesión
  • Tarea 2: Detección de atributos de la lesión
  • Tarea 3: Clasificación de la enfermedad

El énfasis estuvo en lograr una alta precisión multiclase de la clasificación de las lesiones cutáneas. Esto significa que el modelo ML debía estar capacitado para predecir el tipo específico de cáncer de piel, así como también para detectar los atributos de las lesiones cutáneas.

Análisis y diagnóstico de la lesión con Mask-RCNN

Para cumplir con este desafío, nuestro experto Andrey Sorokin, decidió aplicar el algoritmo de reconocimiento de objetos Mask-RCNN. Desarrollado por Facebook AI Research, este algoritmo fue una herramienta de detección de objetos de última generación en 2017-2018.

Mask R-CNN stemma aparece en escena

R-CNN fue desarrollado en 2013 e hizo posible detectar tanto el tipo de objeto como su posición.

Fast R-CNN se desarrolló en abril de 2015. Emplea varias innovaciones para mejorar la capacitación y la velocidad de prueba, al tiempo que aumenta la precisión de detección.

Faster R-CNN, desarrollada en junio de 2015, dio un gran paso hacia la detección de objetos en tiempo real y la propuesta de la región. También sirve como un módulo central para Mask R-CNN.

Mask R-CNN es una extensión de Faster R-CNN, con un módulo adicional para generar máscaras de segmentación de alta calidad para cada imagen.

Internamente, Mask R-CNN es una combinación de 2 tipos de redes neuronales: Faster-RCNN y Fully Convolutional Network (FCN).

El primero permite detectar la posición y el tipo del objeto en la imagen.

Este último permite una máscara píxel por píxel del objeto.

Mask-RCNN muestra las imágenes de esta forma: cada objeto detectado tiene un tipo correspondiente, un cuadro delimitador y una máscara de píxeles.

En los últimos 4 años, los modelos ML de redes neuronales profundas han logrado grandes avances en el campo de la visión por ordenador. Ahora nos estamos acercando increíblemente a la visión de propósito general en tiempo real, accesible para todos los usuarios de teléfonos inteligentes.

Con el fin de hacer uso de los últimos desarrollos en ML y visión por ordenador, Andrey entrenó a Mask-RCNN en el conjunto de datos de ISIC y logró los siguientes resultados:

Tarea 1: Segmentación de la lesión

Predecir los límites de segmentación de la lesión dentro de las imágenes dermatoscópicas.

Arriba: lesiones de piel reales – Abajo: límites de segmentación de la lesión

Para la primera tarea, Mask-RCNN mostró una precisión razonable. Según el índice de Jaccard, el 79% de los límites de la región de la lesión de la piel se predijeron correctamente.

¿Es eso lo suficientemente bueno?

Para el desafío ISIC, el umbral de detección del límite de la lesión se estableció en 65%.

Por lo tanto, Mask-RCNN fue bastante eficaz en esta tarea.

Tarea 2: Detección de atributos de la lesión

Predecir las ubicaciones de los atributos dermatoscópicos (establecer patrones de lesiones visuales de la piel clínicamente significativos) dentro de las imágenes dermatoscópicas.

Se debían identificar los siguientes atributos dermatoscópicos:

  • red de pigmento
  • red negativa
  • rayas
  • quistes tipo milia
  • glóbulos (incluyendo puntos)

Ejemplos de atributos de la lesión

Para la segunda tarea, Mask-RCNN mostró un éxito limitado: el puntaje promedio fue de alrededor del 41%. La detección de atributos demostró ser una tarea difícil debido a las superposiciones complejas entre diferentes clases y un conjunto de datos algo limitado para este tipo de detección de objetos.

Tarea 3: Clasificación de la enfermedad

Clasificación de enfermedades dentro de las imágenes dermatoscópicas.

Las posibles categorías de enfermedades eran:

  • Melanoma
  • Nevo melanocítico
  • Carcinoma de células basales
  • Queratosis actínica / enfermedad de Bowen (carcinoma intraepitelial)
  • Queratosis benigna (lentigo solar, queratosis seborreica, queratosis similar al liquen plano)
  • Dermatofibroma
  • Lesión vascular

Los resultados resultaron ser muy positivos para esta interesante tarea. En promedio, el 74% de los tipos de cáncer de piel se detectaron correctamente.

La mejor precisión se logró con el nevo melanocítico: 92%.

La menor precisión se logró con la queratosis actínica: 46%.

Todos los experimentos se realizaron en una sola Nvidia GeForce 1080 con 8 Gb de RAM.

Mask-RCNN mostró algunos resultados generales prometedores durante el desafío.

Ser mobile

Para utilizar el modelo entrenado en un teléfono inteligente, debió congelarse con todos los pesos entrenados en forma de un gráfico computacional y colocarse dentro de una aplicación de Android.

El pipeline se vería aproximadamente de la siguiente manera:

A fines de 2018, Mask-RCNN aún no era totalmente compatible con Tensorflow Lite, por lo que Tenseflow lib a gran escala se compiló y se utilizó en una plataforma Android. La aplicación de Android, además de un gráfico computacional, tenía archivos java para la configuración y el modelo de Mask-RCNN.

La solución móvil general se veía así:

Con Huawei P20 Pro, la imagen tardó unos 30 segundos en pasar por el gráfico computacional. Este fue un rendimiento bastante sólido para un modelo tan avanzado como Mask-RCNN. Y todavía hay espacio masivo para la optimización. La conversión del modelo con Tensorflow Lite y la optimización específica de Android puede generar un rendimiento de diagnóstico de lesiones en tiempo real.

Aquí está una pequeña demostración de la aplicación de trabajo:

Solución en la nube

Como parte del proyecto de I+D de MLSkincare, el gráfico computacional también se implementó en GCP con un rendimiento mucho mejor.

¿Podemos ir un poco más rápido?

Teniendo en cuenta las últimas actualizaciones de Tensorflow Lite y Core ML, ha sido posible optimizar el modelo Mask-RCNN para las plataformas Android e iOS, lo que debería dar mejores resultados.

Un océano de oportunidades

A veces, cuando profundizo en los matices de ML y AI, me siento como un niño pequeño parado en la orilla de un océano de datos. La humanidad está recopilando enormes cantidades de datos cada segundo. Las fotos, los videos y los mensajes de texto sobre cada faceta de la vida humana se fusionan en flujos masivos de datos que abarcan misterios inimaginables y soluciones a los problemas más graves de la humanidad. A veces me siento completamente abrumado e incluso asustado por el futuro al que estamos yendo. Pero, a su vez, mi mente está hipnotizada por este océano de datos. Y estoy listo para saltar al agua y nadar tan lejos como pueda.

El aprendizaje automático y la visión por ordenador combinados con un conjunto de datos médicos de alta calidad, forman un verdadero océano de oportunidades para el descubrimiento. Éstas incluyen el cáncer de piel y los diagnósticos de retinopatía diabética, así como el tratamiento del cáncer de páncreas. El modelado de plegamiento de proteínas puede ayudarnos a superar el síndrome de Alzheimer y Parkinson. Esos son solo algunos de los preciosos tesoros que nos esperan en el horizonte.

Y a medida que los vientos de ML se vuelven más y más fuertes, pareciera que hemos emprendido el rumbo correcto.

Links útiles