Caso de Uso Deep Learning
Mejorando la predicción médica de casos de neumonía usando Deep Learning
Este artículo supone un caso de aplicación de como aplicar ML a necesidades de uso del mundo de la salud aportando valor en el caso del diagnóstico médico. Utilizando la última tecnología en redes neuronales conseguimos reconocer en una imagen, gracias a un entrenamiento previo, aquello que necesitamos. En este caso de uso identificamos en una radiografía la presencia o no de neumonía. Gracias a la precisión lograda tras los entrenamientos, los resultados superan el 95 por ciento de acierto, consiguiendo identificar infecciones incluso poco evidentes o indetectables para el ojo humano.
Las redes neuronales convolucionales pertenecen al campo de las redes neuronales. Sin embargo, son diferentes al perceptrón multicapa u otras como las redes neuronales recurrentes. Su aplicación se basa en matrices bidimensionales, y son efectivas en aplicaciones de visión artificial, tanto en clasificación como en segmentación.
Desde el punto de vista funcional, las redes neuronales necesitan una gran cantidad de datos para aprender las característica que va a ser predicha: en este caso, la presencia o no de neumonía.
Fig1. Ejemplo de imagen del dataset con neumonía Y ejemplo de dataset normal. La radiografía pulmonar con neumonía muestra manchas opacas en la imagen.
El dataset liberado en 2018 por Kermany et al. Cuenta con un muestreo de 5840 imágenes pertenecientes a radiografías pulmonares etiquetadas como diagnóstico de neumonía y radiografía de rayos X sin neumonía. Estas imágenes han sido seleccionadas bajo control de calidad humana y etiquetadas según diagnóstico de un experto antes de ser validadas para ser entrenadas en el sistema.
1- Preparación del dataset
Estos conjuntos de datos se utilizarán en los diferentes procesos de desarrollo del modelo de red neuronal . En la primera etapa de entrenamiento, le mostramos a la IA más de 5.000 imágenes e indicamos si hay o si no hay neumonía. Durante este proceso la red neuronal irá analizando imagen a imagen y encontrando patrones.
Una vez finalizado el entrenamiento, podemos pasar a la etapa de testeo : aplicamos otro conjunto de datos constituido por unas 624 imágenes y nuestra red neuronal podrá comprobar su progreso identificando la enfermedad en las radiografías. Volverá al paso anterior siempre y cuando no haya superado el porcentaje de acierto que le hemos indicado. Cuando consideremos que ha aprendido con éxito, podremos pasar al último paso: validación .En base a 18 imágenes en las que la mitad serán positivas en neumonía y la mitad negativas, obtenemos una métrica de acierto final.
Fig 2. Fig 2. El dataset se subdivide en conjuntos de Entrenamiento (Train) ,Testeo (Test) y Validation (Validación).
Fig 3. División del dataset en conjuntos de de entrenamiento, test y validación con los procesos utilizados para cada dataset.
Estos conjuntos de datos se utilizarán en los diferentes procesos de desarrollo del modelo de red neuronal . En la primera etapa de entrenamiento, le mostramos a la IA más de 5.000 imágenes e indicamos si hay o si no hay neumonía. Durante este proceso la red neuronal irá analizando imagen a imagen y encontrando patrones.
Una vez finalizado el entrenamiento, podemos pasar a la etapa de testeo : aplicamos otro conjunto de datos constituido por unas 624 imágenes y nuestra red neuronal podrá comprobar su progreso identificando la enfermedad en las radiografías. Volverá al paso anterior siempre y cuando no haya superado el porcentaje de acierto que le hemos indicado. Cuando consideremos que ha aprendido con éxito, podremos pasar al último paso: validación .En base a 18 imágenes en las que la mitad serán positivas en neumonía y la mitad negativas, obtenemos una métrica de acierto final.
2- Arquitectura del modelo
La arquitectura de redes convolucionales consiste en múltiples capas de filtros convolucionales de varias dimensiones. Como redes de clasificación, al principio se encuentra la fase de extracción de características, realizando una reducción de dimensionalidad progresiva con una última capa de perceptrón para mejorar la clasificación. Las capas de convolución tienen como objetivo aprender las características de la imagen, y las capas finales de perceptrón las clasifican según han sido etiquetadas de forma supervisada por un humano .
Esta tecnología analiza meticulosamente las imágenes que le hemos proporcionado, ampliando progresivamente éstas hasta llegar al píxel, o incluso menos, de modo que el margen de error que deja al haber estudiado miles de, en este caso, radiografías, nos deja porcentajes del 98-99 por ciento de acierto.
Fig 4. Esquema de arquitectura de red neuronal convolucional . Las capas convolucionales ayudan con el aprendizaje de características , las capas finales de perceptrón clasifican imagenes con Neumonia.
3- Evaluando la performance del modelo
A la hora de evaluar el rendimiento de la red, nos fijamos en dos funciones que forman un binomio: precisión y pérdida. Para evaluar el correcto entrenamiento debemos observar un comportamiento en el que la precisión sube y la pérdida baja a lo largo del tiempo de entrenamiento.
Fig 5. Funciones de pérdida y de precisión que evalúan los datasets de entrenamiento y validación.
Conclusión
En solo 4h de entrenamiento y unas 6 mil imágenes etiquetadas hemos logrado que nuestra red neuronal identifique con gran precisión la presencia de neumonías en las radiografías estudiadas, lo que agilizaría un diagnóstico de la enfermedad y aseguraría que éste fuera preciso más allá de lo que un ojo humano podría detectar, gracias a su entrenamiento en escalas imperceptibles para nosotros.
Para comprobar su efectividad, hemos realizado un experimento con una imagen concreta. El resultado con un 96 por ciento certidumbre nos indica la presencia de neumonía en este paciente.