Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DSRP- Data Science Research Peru & Ciencia de Datos e Inteligencia Artificial
Universidad Nacional de Ingeniería - UNI, Lima – Perú
Manuscript received June 10, 2021; revised June 15, 2021. First presentation June 20, 2021.
This research was sponsored by the DSRP - Data Science Research Peru & Universidad Nacional de Ingeniería - UNI Revised June 15, 2021.
First presentation June 20, 2021.
Abstract— La tuberculosis sigue siendo un problema urgente en la agenda de la salud urbana, especialmente en nuestro país
Perú. Ante ello, surge la necesidad de desarrollar e implementar soluciones innovadoras y efectivas en el proceso de diagnóstico
de la tuberculosis. En este artículo, se describe la importancia de la inteligencia artificial como una estrategia para enfrentar el
problema, mediante un diagnóstico oportuno de la enfermedad, donde se aborda la detección de la tuberculosis en imágenes
médicas bidimensionales obtenidas mediante técnicas de rayos X. También, se presenta la transferencia de aprendizaje de modelo
de algoritmos (Transfer Learning), en específico, haciendo el uso de redes neuronales convolucionales
III. METODOLOGÍA
La metodología usada, consiste en una serie de procesos y
técnicas basadas en otras arquitecturas utilizadas por otros
autores que, en conjunto, forman un flujo de trabajo propio. El
primer paso de esta metodología es la de obtener un conjunto
de datos de Kaggle, donde están disponibles 7000 imágenes
de rayos X (3500 imágenes cada uno para las categorías
Normal y Tuberculosis). Obtenido el conjunto de imágenes
con lo que se va proceder a trabajar, estas deben de dividirse
en tres carpetas: entrenamiento, validación y pruebas (train
set, validation set, test set).
En la investigación seleccionada como base de la
metodología propuesta, se realiza la división de 6000 datos
balanceados que servirá como entrenamiento y validación de Fuente: Elaboración propia
modelo (se recomienda utilizar un 80% para entrenamiento y
20% para validación). Para el desempeño final del modelo, se
utilizaron los 1000 datos restantes. La distribución de datos se Hemos definido la ruta de las imágenes de entrenamiento
aprecia en la siguiente Figura 3. Finalmente, para la y validación. Para las de entrenamiento, le pedimos que las
evaluación de resultados, se utilizaron las métricas errors y normalice y además queremos que, aparte de entrenar la
accuracy. imagen original, entrene con la misma imagen, pero
transformada mediante zoom, rotándola 50 grados, con un
rango de ancho-alto específico de 0.2 y haciendo un flip
Figura 1. Distribución de conjunto de horizontal. Como se muestra en la Figura 5.
datos Imágenes Rayos X Posteriormente definimos un generador de imágenes que
podremos pasar directamente al modelo de entrenamiento. En
la Figura 6 se puede visualizar el código que mediante la
operación flow_from_directory, le especificamos que use el
directorio especificado como base y las etiquetas serán los
nombres de los subdirectorios de la misma.
Además, definimos la resolución específica de las
imágenes y que el entrenamiento será binary. El parámetro
batch_size especifica el número de imágenes a entrenar en
cada bloque.
Figura 6. Aplicación métodos ImageDataGenerator y Figura 7: Comportamiento del valor de la función objetivo -
flow_from_directory loss, para 25 Epoch
V. AQUITECTURA DE MODELO
Usaremos el modelo de Keras - InceptionV3. Inicializaremos
el modelo con los pesos de la Imagenet ya preentrenada y,
finalmente, añadiremos las capas de la red neuronal final.
Como se muestra en la Figura 6.
Los resultados del comportamiento del entrenamiento y
validación del modelo se muestran en la Figura 7 y 8, las Fuente: Elaboración propia
cuales están fijados para 25 Epoch.
De las Figuras 5 y 6 podemos que, a partir las 10 épocas,
el modelo presenta estabilidad con Loss aprox. de 0.001 y un
Figura 4: Algoritmo final de modelos de Red Neuronal accuracy de 97.5 %.
preentrenada
VI. OPTIMIZACIÓN DE MODELO
Para optimizar el modelo se ha usado regularización L1 y
L2 para que el modelo generalice un poco mejor y la función
de activación en las capas ocultas es ReLu. Finalmente, como
el entrenamiento es binario, usaremos Sigmoid para la capa
final. Lo siguiente es generar el modelo especificando las
funciones de coste, optimización y las métricas.
Las funciones de callback que vamos a usar son
EarlyStopping, para que el entrenamiento pare si ve que no
mejora la función de coste tras determinados epochs, y
ReduceLROnPlateau, que, si el entrenamiento no mejora tras
unos epochs específicos, reduce el valor de learning rate del
modelo, lo que normalmente obtiene una mejora del
entrenamiento.
Fuente: Elaboración propia
IEEE Photonics Journal
VII. CONCLUSIONES
El objetivo principal de este artículo es mostrar los
resultados alcanzados por el entrenamiento del modelo de
CNN basados en la arquitectura de Inception-v3. Estos
resultados muestran la posibilidad de aplicar el proceso de
transferencia de conocimiento alcanzando resultados de hasta
97.5% de precisión, aplicados en el reconocimiento de
diagnóstico de tuberculosis, sin necesidad de equipos de
cómputo especializados. Por otro lado, respecto al
rendimiento de los algoritmos de clasificación el implementar
redes neuronales convolucionales – CNN en Python, tiene un
alto potencial en aplicaciones específicas médicas.
VIII. REFERENCIAS