WomanLife: Deep Learning para la detección y clasificación del cáncer de mama
WomanLife explora la clasificación de ecografías de mama con TensorFlow y Keras. Un proyecto educativo con tres clases de imagen y límites clínicos explícitos.
Proyecto de aprendizaje compartido por la comunidad. El artículo documenta el equipo, el método y los resultados; no acredita que el prototipo esté listo para su uso fuera del entorno de aprendizaje.

Nota editorial: este artículo documenta un proyecto educativo y sus resultados en los datos utilizados. No acredita validación clínica ni autorización para diagnosticar o tratar a pacientes. Las propuestas de aplicación sanitaria se conservan como objetivos del equipo, no como capacidades demostradas.
La Paz. Deep Learning. 2021
El aprendizaje profundo permite explorar la clasificación automatizada de imágenes médicas. En WomanLife investigamos esta posibilidad con ecografías de mama, como un prototipo educativo orientado a estudiar posibles herramientas de apoyo al personal sanitario.
El cáncer de mama es un problema de salud relevante, y la detección y el tratamiento oportunos pueden mejorar los resultados. El acceso desigual a pruebas y especialistas motivó nuestro interés por estudiar herramientas de apoyo, sin sustituir la evaluación clínica.
Descripción del problema
El proyecto clasifica imágenes ecográficas de un dataset obtenido de mujeres de entre 25 y 75 años. El modelo estima una de tres categorías de imagen; no segmenta lesiones ni determina por sí solo el diagnóstico de una persona.
Objetivo
Explorar un modelo de clasificación de ecografías que, tras una eventual validación clínica, pudiera estudiarse como apoyo al personal sanitario. El prototipo presentado no está destinado al autodiagnóstico ni demuestra reducción de costes o mortalidad.
Selección de modelo
Trabajamos con tres etiquetas de imágenes ecográficas: benigno, maligno y normal, utilizando una red convolucional construida con TensorFlow Keras.
Datasets
El dataset procede del Hospital Baheya de El Cairo, Egipto, y contiene 780 imágenes de ecografía mamaria, obtenidas de mujeres de entre 25 y 75 años: 133 normales, 437 benignas y 210 malignas. El tamaño medio es de 500 × 500 píxeles. A continuación mostramos algunos ejemplos.

Fig. 1. Muestras de imágenes.
El dataset incluye máscaras de segmentación. Como nuestro modelo realiza clasificación, excluimos esas máscaras del conjunto de entrada mediante comandos de shell; esto no significa que carezcan de utilidad para otras tareas.
Técnicas implementadas
Hay que destacar que hasta el momento existe escasez de conjuntos de datos públicos de imágenes ecográficas de cáncer de mama y esto impide el buen funcionamiento de los algoritmos. Debido a esto, los autores que hicieron público el conjunto de datos que utilizamos recomiendan aumentar los datos utilizando GAN.
Entrenamos una GAN por clase con el objetivo de generar nuevas imágenes. Utilizamos 150 épocas en cada entrenamiento.
Sin embargo, no logró crear imágenes utilizables, por esta razón rechazamos el uso de esta técnica. El desafío es desarrollar la GAN con mayor número de épocas y con una mejor configuración de red neuronal para obtener imágenes más realistas.

Figura 2. MALIGNO

Fuente: Compilado por autores usando Matplotlib

Figura 3. BENIGNO

Fuente: Compilado por autores usando Matplotlib

Fig.4. NORMALES

Fuente: Compilado por autores usando Matplotlib
Definición de red
Dentro de los posibles patrones de diseño en Keras, se han implementado subclases para utilizar las API de bajo nivel de Keras. Puedes consultar más información al respecto en el siguiente artículo:
https://towardsdatascience.com/3-keras-design-patterns-every-ml-engineer-should-know-cae87618c7e3
La estructura de la red consta de:
- Capa de preprocesamiento: Cambio de tamaño, cambio de escala y normalización
- Conv2D: 32 filtros, stride de 4, padding «same» y activación ReLU
- MaxPooling2D: pool_size (3, 3), padding «same» y stride de 2
- Flatten
- Denso: 512 neuronas y activación ReLU
- Dropout (0.4)
- Denso: 3 neuronas y activación SoftMax
Partimos de la arquitectura AlexNet y ajustamos el número de neuronas, las capas densas y los valores de dropout.
Usamos el optimizador Adam con una tasa de aprendizaje de 0.0001, la función de pérdida Sparse Categorical Crossentropy y la métrica Sparse Categorical Accuracy .

Fig. 5. Resumen del modelo. Fuente: Compilado por los autores.
Entrenamiento
TensorBoard se utilizó para observar el comportamiento en tiempo real de los valores de precisión y pérdida, lo que proporciona gráficos útiles para analizar los resultados y muchos controles para su manipulación.

Fig. 6. Tablero TensorBoard - Fuente: Compilado por los autores
Parada temprana
Usamos EarlyStopping como forma de regularización para evitar el sobreajuste al entrenar el modelo. Por ejemplo, si el valor de pérdida deja de disminuir, el entrenamiento se detendrá aunque no se hayan completado todas las iteraciones.
Conclusiones y trabajos futuros.
WomanLife explora una posible herramienta de apoyo al análisis de ecografías.
La aspiración es facilitar el trabajo de especialistas, pero hacen falta pruebas adicionales para determinar si el modelo aporta utilidad clínica. La aplicación educativa no sustituye la consulta médica.
A partir de ahora pretendemos optimizar el modelo utilizando una red GAN para obtener mayor precisión y utilizar técnicas que encuentren los parámetros correctos para entrenar el modelo. (Ajuste de hiperparámetros).
También desarrollamos una aplicación que recibe una imagen de la cámara o la galería y devuelve las puntuaciones del modelo para las tres clases del dataset. Esas puntuaciones no son un diagnóstico ni una probabilidad clínica validada de padecer cáncer.
El modelo fue desarrollado en TensorFlow puro, convertido, guardado y exportado a TensorFlow Lite.

Fig. 7. Muestra del funcionamiento del prototipo de aplicación — Fuente: Elaboración propia

Fig. 8. Conversión de la arquitectura TensorFlow a TensorFlow Lite — Fuente: Elaboración propia
Fuentes
El notebook y la aplicación móvil están disponibles en estos repositorios de GitHub:
En mis repositorios encontrarás también otros proyectos de ciencia de datos y aprendizaje automático. Los comentarios y sugerencias son bienvenidos.
Sobre los autores
Erick Calderín Morales
Ingeniero de sistemas con experiencia en desarrollo de software, estudiante de maestría en ingeniería de sistemas y maestría en ciencia de datos con afinidad por la inteligencia artificial.
Linkedin: https://www.linkedin.com/in/erick-calderin-5bb6963b/
Sharon Maygua Mendiola
Estudiante de ingeniería mecatrónica con licenciatura en física.
Linkedin: https://www.linkedin.com/in/sharon-sarai-maygua-mendiola-22288019a/
Referencias
- Al-Dhabyani, W., Gomaa, M., Khaled, H. y Aly, F. (2019). Enfoques de aprendizaje profundo para el aumento de datos y la clasificación de masas mamarias mediante imágenes de ultrasonido. Int. J. Adv. Comput. Sci. Appl, 10(5), 1–11.
- Al-Dhabyani, W., Gomaa, M., Khaled, H. y Fahmy, A. (2020). Conjunto de datos de imágenes de ecografía mamaria. Data in Brief, 28, 104863.
- TensorFlow. 2021. Red adversaria generativa convolucional profunda | Núcleo TensorFlow. [en línea] Disponible en: <https://www.tensorflow.org/tutorials/generative/dcgan>.
- Gowda. R., 2019. Implementación de DCGAN en Keras explicada. [en línea] Medio. Disponible en: <https://medium.com/@ramyahrgowda/dcgan-implementation-in-keras-explained-e1918fc930ea>.
- Poulopoulos. D, 2021. Tres patrones de diseño de Keras que todo ingeniero de aprendizaje automático debería conocer. [en línea] Medio. Disponible en: <https://towardsdatascience.com/3-keras-design-patterns-every-ml-engineer-should-know-cae87618c7e3>.
Presentación del proyecto: DemoDay
Repositorio
En el siguiente repositorio se encuentra el código usuado para desarrollar esta aplicación:
Autoría
Erick Calderín
Ingeniero de Sistemas apasionado por el Deep Learning y la Inteligencia Artificial
¡Más inteligencia artificial!
Saturdays.AI impulsa el aprendizaje colaborativo de inteligencia artificial mediante cursos y proyectos con impacto social (#ai4good).
Una historia de la comunidad Saturdays.AI. Publicado originalmente el 31 de diciembre de 2021.
← Más historias de la comunidad



