INTRODUCCIÓN
La tuberculosis es una enfermedad que afecta a gran parte del mundo, y con mayor grado de incidencias en países emergentes 1. La tuberculosis es una enfermedad infecciosa difícilmente de detectar, se debe realizar varias pruebas para obtener un diagnóstico certero. Las radiografías del tórax es una de las herramientas principales para la detección de la tuberculosis, la cual debe ir acompañada por exámenes biológicos hasta genéticos antes de que se pueda hacer un diagnóstico real; de este modo poder determinar el tratamiento correspondiente al paciente para su recuperación 2. La Organización Mundial de la Salud (OMS) recomiendan a las entidades de salud de todos los países a realizar diagnósticos tempranos y oportunos para tratar a los pacientes, para tal fin aconsejan la utilización de las radiografías del tórax como una herramienta fundamental en la detección de la tuberculosis en una primera instancia, de este modo se puede tratar oportunamente al paciente 3. No obstante, el personal médico de países en desarrollo, en los centros de salud en las áreas rurales no cuentan con el personal especializado o no tienen la experiencia necesaria para interpretar los patrones característicos de enfermedades pulmonares en una imagen de radiografía del tórax, esto puede conllevar a un diagnóstico erróneo y por consecuencia a un tratamiento tardío o equivocado en perjuicio en la salud del paciente 4.
Los algoritmos de Deep Learning en especial los desarrollados a base de redes neuronales convolucionales son los más idóneos para la detección de enfermedades a través de imágenes microscópicas, radiográficas, tomográficas, entre otros 5,7. Las redes neuronales convolucionales ha demostrado un enorme potencial en la telemedicina, en la última década recién se ha podido aprovechar y desarrollar redes neuronales complejas, debido a que no se contaba con la capacidad computacional para poder desplegar algoritmos con costo computacional muy alto; y que la tecnología de hardware de décadas pasadas no podía afrontar. Esto se debe a que los algoritmos de Deep Learning necesitan ser entrenados con grandes cantidades de datos, en la telemedicina se utiliza generalmente imágenes, cada imagen cuenta con miles de pixeles y la distribución de estos pixeles denotan un patrón propio de una determinada clase, cada pixel toma un valor que se procesará a través de matrices o se convierten en vectores para poder llevar a cabo los cálculos computacionales según la arquitectura de los algoritmos 8.
La detección de la tuberculosis asistida por sistemas informáticos como CAD4TB, semanticMD y Qure.ai son algunos de los ejemplos de software de detección asistida por computadora (CAD) que están disponibles en el mercado. Si bien obtienen resultados positivos, estos no superan a un profesional médico experto, esto debido a que no cuentan con algoritmos complejos de Deep Learning para obtener mejores resultados 9.
En ese sentido, en el presente artículo se plantea desarrollar tres algoritmos de Deep Learning que puedan superar las expectativas de los expertos, para ellos se empleará algoritmos pre-entrenados y se importará los pesos de ImageNet 10 para lograr un mejor desempeño. Los resultados serán evaluados a través de métricas que determinarán si los algoritmos propuestos tienen resultados óptimos.
MATERIALES Y MÉTODOS
Dataset
En el presente estudio se trabajó con dos conjuntos de datos publicados en la comunidad de ciencias de datos KAGGLE por Rahman et al. 11 y Jaeger et al. 12, al combinar los dos conjuntos de datos dan un total de 7662 imágenes de radiografías del tórax de pacientes anonimizados, el objetivo de unificar los dos datasets es de tener una mayor variabilidad en los datos, al momento de entrenar los algoritmos puedan generalizar adecuadamente ante diferentes fuentes de imágenes en la etapa de validación y test. Se realizó un análisis de cada imagen para descartar las que contaban con ruido; es decir, no correspondía a una de las clases, eran ilegibles, tenían textos o cuadros blancos o negros sobrepuestos, mal posicionamiento entre otros aspectos que hacían que estas imágenes no cumplieran las características de cada clase del dataset. Después de la depuración de los datos inválidos que podrían generar ruido al momento de entrenar los algoritmos, quedó un dataset de un total de 5748 imágenes, 2905 imágenes de pacientes sanos y 2843 imágenes de pacientes con tuberculosis. El dataset se dividió en dos conjuntos, el conjunto de entrenamiento con el 80% y el conjunto de test con el 20% del total. Del total de los datos del entrenamiento se divido nuevamente en datos para entrenar y datos para la validación, en este caso del total de los datos de entrenamiento un 20% se destinará para la validación cruzada en la etapa de entrenamiento. Se puede ver una muestra en la Figura 1.
Arquitectura y algoritmos
Se emplearon tres algoritmos de Deep Learning para el estudio, InceptionV3 13, MobileNet 14 y VGG19 15. Para hacer uso de los algoritmos propuestos se utilizó la librería de Tensorflow y Keras. Para recortar los tiempos de entrenamiento de los algoritmos y una mejor eficacia de los mismo se utilizó la técnica de Transfer Learning con ImageNet. El hecho de usar la misma arquitectura con los mismos parámetros que el modelo pre-entrenado, otorgará a los algoritmos la capacidad de reconocer bastantes clases desde el comienzo, lo que además se traducirá en un tiempo de entrenamiento muy reducido. Para tener la capacidad de computo necesaria para ejecutar los algoritmos InceptionV3, MobileNet y VGG19 se empleó la plataforma de Google Colab que proporciona el uso de GPU’s necesarios para la experimentación.
A la arquitectura del algoritmo VGG19 se ha adicionado una capa pooling de 4x4, se vectoriza los datos con la técnica flatten, se agregaron cuatro capas dense de 512, 256, 128 y 64 de valor de salida y cada una con activación relu; se aplica un BatchNormalization, finalmente se agrega una capa dense de 2 con una activación softmax para la clasificación.
A la arquitectura del algoritmo MobileNet se ha adicionado una capa pooling de 4x4, se vectoriza los datos con la técnica flatten, se agregaron cuatro capas dense de 1024, 512, 256, 128, 64 y 32 de valor de salida y cada una con activación relu; se aplica un BatchNormalization, finalmente se agrega una capa dense de 2 con una activación softmax para la clasificación.
A la arquitectura del algoritmo InceptionV3 se ha adicionado una capa pooling de 4x4, se vectoriza los datos con la técnica flatten, se agregaron cuatro capas dense de 1024, 512, 256, 128, 64 y 32 de valor de salida y cada una con activación relu; se aplica un BatchNormalization, finalmente se agrega una capa dense de 2 con una activación softmax para la clasificación.
Los hiperparametros empleados para los tres algoritmos fueron epochs = 100, batch_size = 20 y learning_rate a razón de 0.001. Esta configuración permitió obtener el mejor desempeño que pueden ofrecer InceptionV3, MobileNet y VGG19.
RESULTADOS Y DISCUSIÓN
En la etapa de entrenamiento se puede observar el desempeño de cada algoritmo empleado para el presente estudio, se logró evaluar a cada algoritmo a través de las métricas de precisión (accuracy) y la perdida de entropía cruzada (cross entropy loss). En el caso de VGG19 se visualiza que en las primeras 20 épocas sufre de sobreajuste (overfiting), pero al pasar más épocas se corrige y muestra una tendencia estable, ver Figura 2. Para MobileNet se visualiza que desde las primeras épocas obtiene buenos resultados sin caer en el sobreajuste, con pocas variaciones y manteniéndose constante, ver Figura 3. En el caso de InceptionV3 al igual que MobileNet, se obtiene buenos resultados desde el inicio, no obstante, los resultados de entrenamiento y validación son más distantes en comparación de los resultados de VGG19 y MobileNet, ver Figura 4.
Para la etapa de test se separó 1140 imágenes, a este grupo de datos se aplicó el método predict que otorgó una estimación para cada clase, la estimación estará en el rango de 0 a 1, posteriormente se aplicará el método argmax para que devuelva la clase con mayor estimación. De este modo, solo obtiene 0 (normal) y 1 (tuberculosis).
En la Figura 5, se visualiza los resultados de la Matriz de Confusión para VGG19, acierta correctamente 588 y 523 veces para Normal y Tuberculosis respectivamente. No obstante, también obtiene 17 falsos positivos y 12 falsos negativos; es decir, 17 veces predijo que era Normal cuando realmente era tuberculosis, y 12 veces predijo que era tuberculosis cuando era Normal.
En la Figura 6, se visualiza los resultados de la Matriz de Confusión para MobileNet, acierta correctamente 565 y 551 veces para Normal y Tuberculosis respectivamente. No obstante, también obtiene 17 falsos positivos y 7 falsos negativos; es decir, 17 veces predijo que era Normal cuando realmente era tuberculosis, y 7 veces predijo que era tuberculosis cuando era Normal.
En la Figura 7, se visualiza los resultados de la Matriz de Confusión para InceptionV3, acierta correctamente 540 y 559 veces para Normal y Tuberculosis respectivamente. No obstante, también obtiene 29 falsos positivos y 12 falsos negativos; es decir, 29 veces predijo que era Normal cuando realmente era tuberculosis, y 12 veces predijo que era tuberculosis cuando era Normal.
A partir de la Matriz de Confusión podemos calcular las métricas de accuracy, precisión, recall y F1-score de cada algoritmo empleado para el presente estudio. Los resultados podemos verlos en la Tabla 1, cada algoritmo ha demostrado un alto desempeño, pero MobileNet ha obtenido mejores resultados para cada métrica, le sigue VGG19 que por poco margen dista de los resultados obtenidos por MobileNet, el caso de InceptionV3 obtuvo resultados por debajo de MobileNet y VGG19, esto debido a que sufrió de un sobreajuste más pronunciado en la etapa de entrenamiento como se puede visualizar en la Figura 4.
Se presentaron tres algoritmos diferentes pre-entrenados para la aplicación en la detección de tuberculosis. VGG19 obtuvo un 97.4% en la métrica de accuracy, 97.5% en la métrica de precision, 97.5% en la métrica de recall, 97.5% en la métrica de F1-score. MobileNet obtuvo un 97.8% en la métrica de accuracy, 98.0% en la métrica de precision, 98.0% en la métrica de recall, 98.0% en la métrica de F1-score. Por último, InceptionV3 obtuvo un 96.4% en la métrica de accuracy, 96.5% en la métrica de precision, 96.5% en la métrica de recall, 96.0% en la métrica de F1-score. De los resultados se puede concluir que MobileNet ha demostrado un mejor desempeño ante VGG19 e InceptionV3, en las diferentes métricas empleadas.
Además, se guardó los pesos (weights) obtenidos después de entrenar cada algoritmo, de este modo se puede evaluar la complejidad y el costo computacional que conlleva. Ver Tabla 2.
MobileNet cuenta con una menor cantidad de parámetros y peso (weights) en comparación a InceptionV3 y VGG19. Los resultados demuestran en relación al costo computacional es relativamente bajo con MobileNet, además de contar con mejores resultados en las métricas de evaluación; y su complejidad es muy inferior a los otros algoritmos con 8.1 millones de parámetros y un peso de 62 MB, conllevando a la utilización de menos recursos computacionales y la reducción en los tiempos de ejecución del algoritmo. Los resultados indican que MobileNet cuenta con un nivel muy alto de eficiencia en relación a VGG19 e InceptionV3.
CONCLUSIONES
En este trabajo, se ha demostrado que los algoritmos de Deep Learning pueden ser una herramienta importante para la detección de la tuberculosis, otorgando al personal sanitario un nivel de precisión muy alto del 97.80% en el caso del algoritmo de Mobilnet para clasificar si el paciente padece de tuberculosis o no, el médico de acuerdo al cuadro clínico del paciente y los resultados de la clasificación del algoritmo podrá realizar un diagnóstico certero, determinando si el paciente padece de tuberculosis, de este modo se podrá dar un oportuno tratamiento y evitar que el paciente llegue a un estadio de la enfermedad avanzado con una posible mortandad