Son muchas las aplicaciones de la inteligencia artificial en el mundo de la salud. A través del análisis de imágenes se pueden diagnosticar muchas enfermedades como el cáncer o el Alzheimer, ahora también podemos diagnosticar si un paciente presenta una neumonía por covid, una neumonía no covid o si no presenta estas patologías.
Todos sabemos la congestión sanitaria que existe actualmente, por lo que toda ayuda que podamos ofrecer desde la tecnología para agilizar los triages y descargar así al personal médico ¡bienvenido sea!
En este caso veremos como se puede desarrollar y desplegar un modelo de DL (Deep Learning) en azure y dejarlo listo para su uso.
Para ello usaremos una CNN (red neuronal convolucional) que son especialistas en el reconocimiento de imágenes pasándoles filtros que reconocen los detalles que necesitamos (potenciar los bordes, el contraste, los pixels vecinos etc)
El entrenamiento de la red lo podemos hacer en Azure aprovechando los Hyperdrive experiments, que nos permiten realizar las ejecuciones que queramos para encontrar el mejor modelo con la mayor tasa de aciertos (accuracy), precisión y recall (menor numero de falsos negativos y positivos).
Para ello haremos uso de los hiperparametros, que nos servirán para tunear el modelo indicando el número de capas de la red neuronal, neuronas, numero de epochs (iteraciones), como aprende (learning rate y momentum) e incluso si queremos probar varias redes ya pre entrenadas (transfer learning) como es la ResNet50.
En la siguiente imagen podéis ver las distintas ejecuciones en Azure, cuando finalizan nos quedaremos con la mejor, y será esta la que despleguemos.
Afinando más el modelo se puede conseguir un accuracy del 93% con 50 epochs y esta topología:
En la imagen de abajo podéis comprobar como el modelo clasifica imágenes que no han sido utilizadas en el entrenamiento:
Las que contienen el texto verde son las correctamente clasificadas, en rojo las incorrectas
Para desplegar el modelo, realizaremos los siguientes pasos:
- Registrarlo
- Crear la instancia donde se desplegará (AKS para entornos productivos – Azure Kubernetes Service o ACI para desarrollo – Azure Compute instance)
- Realizar el despliegue
- Probar el endpoint
El detalle de toda la implementación lo podéis encontrar en:
https://medium.com/@eva.emandres/deep-learning-covid19-diagnosis-by-xray-images-acd494bab2ed
Acordaos de borrar el servicio cuando ya no lo uséis para evitar costes innecesarios 😉
¡Espero os sea de utilidad!