Archivo de la categoría: Curso 2025/26

Denoising de imágenes satelitales mediante arquitecturas basadas en Autoencoders

1. Introducción

Las imágenes obtenidas por satélite constituyen una fuente de información fundamental para diversas aplicaciones, como la planificación urbana, cartografía, agricultura y gestión de desastres naturales. Sin embargo, durante el proceso de adquisición y transmisión es habitual que las imágenes se vean afectadas por diferentes tipos de ruido, lo que puede degradar la calidad visual y dificultar tareas posteriores.

La eliminación de ruido (image denoising) es uno de los problemas clásicos del procesamiento de imágenes. Tradicionalmente se han empleado filtros espaciales y transformaciones en frecuencia, pero estos métodos pueden desembocar en la pérdida de detalles importantes para la imagen. Con la mejora de los modelos de aprendizaje profundo se han desarrollado modelos capaces de reconstruir versiones más limpias de las imágenes preservando gran parte de la información estructural.

En este trabajo se estudia el uso de diferentes arquitecturas basadas en Autoencoders para la eliminación de ruido sintético en imágenes satelitales del conjunto de datos EuroSAT.

2. EuroSAT

Para llevar a cabo los experimentos se ha usado EuroSAT [1], un conjunto de datos basado en imágenes capturadas por los satélites Sentinel-2 [2] [2] del programa europeo Copernicus. Está compuesto por 27.000 imágenes RGB de 64×64 píxeles agrupadas en diez categorías que representan diferentes tipos de cobertura terrestre.

Las clases incluidas son AnnualCrop, PermanentCrop, Forest, HerbaceousVegetation, Highway, Industrial, Pasture, Residential, River y SeaLake. Esta diversidad permite comparar el comportamiento de los modelos frente a imágenes con características visuales muy distintas, como regiones homogéneas de vegetación o agua, y zonas con muchos bordes, texturas y estructuras artificiales.

Aunque EuroSAT tiene como objetivo original la resolución de problemas de clasificación en este trabajo se ha adaptado para una tarea de restauración de imágenes. Para ello, las imágenes originales se consideran como la referencia (ground truth), mientras que las entradas al modelo se obtienen aplicando de forma sintética distintos niveles de ruido. Después se puede evaluar la capacidad de restauración de los modelos comparando la imagen resultante con la original.

AnnualCrop              3000
Forest 3000
HerbaceousVegetation 3000
Residential 3000
SeaLake 3000
Highway 2500
PermanentCrop 2500
Industrial 2500
River 2500
Pasture 2000

3. Modelos empleados

Se han evaluado tres modelos basados en redes neuronales convolucionales con el objetivo de comparar el efecto de la arquitectura en la capacidad de eliminar ruido de las imágenes: un Autoencoder (AE) convencional, un Variational Autoencoder (VAE) y un Variational Autoencoder con arquitectura U-Net (U-Net VAE).

3.1. Autoencoder

Constituye la arquitectura base sobre la que se desarrollan los demás modelos. Está formado por dos bloques principales: Un encoder encargado de comprimir progresivamente la imagen de entrada hasta obtener una representación de baja dimensión denominada espacio latente, y un decoder, que utiliza dicha representación para reconstruir la imagen original.

Durante el entrenamiento el modelo aprende a conservar únicamente la información más relevante y descarta las variaciones asociadas al ruido. Por la compresión de la información tiende a producir reconstrucciones suavizadas en las que se pierden detalles y texturas de alta frecuencia.

3.2. Variational Autoencoder (VAE)

Introduce una modificación fundamental respecto al Autoencoder clásico. En lugar de aprender una única representación latente estima una distribución de probabilidad con media μ y varianza σ2.

Además de la pérdida de reconstrucción, el entrenamiento incorpora una penalización basada en la divergencia de Kullback-Leiber (KL), cuyo objetivo es evitar que las representaciones latentes se distribuyan de forma arbitraria.

Puede favorecer una mejor capacidad de generalización, pero también puede dificultar la reconstrucción de detalles muy finos si la restricción sobre el espacio latente es muy elevada, por lo que el peso de la pérdida KL se debe ajustar cuidadosamente.

3.3. Variational Autoencoder con arquitectura U-Net

Arquitectura originalmente propuesta para segmentación biomédica [3] [4] que incorpora conexiones de salto (skip connections) entre las capas del encoder y las correspondientes del decoder. Permite enviar directamente información de alta resolución al proceso de reconstrucción sin necesidad de comprimirla completamente.

De esta forma el decoder dispone tanto de la representación latente aprendida por el encoder como de las características recibidas a través de las skip connections en distintas escalas durante la fase de compresión.

Esta arquitectura aumenta la complejidad del modelo, y aunque esto teóricamente se traduce en reconstrucciones más nítidas existe el riesgo de que parte del ruido presente en la imagen de entrada se propague a la imagen resultante si la arquitectura no identifica correctamente qué características deben conservarse y cuáles deben descartarse.

Ejemplo de arquitectura U-Net. Fuente: Ronneberger et al. [3].

4. Entrenamiento

Se divide cada una de las clases del dataset para poder dedicar el 80% de las imágenes de cada clase para train y el 20% para test. De esta forma después se pueden evaluar los resultados de los distintos modelos para cada una de las clases, ya que es de esperar que aquellas clases como SeaLake y AnnualCrop obtengan mejores resultados que Residential o Highway porque son mucho más homogéneas.

En un principio había planteado usar las imágenes Synthetic Aperture Radar (SAR) del Sentinel-1 como imágenes ruidosas, ya que están tomadas sobre las mismas regiones y se ven afectadas por speckle [5]. Este ruido no sería sintético, y mediante el uso de un dataset con parejas de imágenes Sentinel-1 Sentinel-2 como puede ser [6] o [7] ya estaría prácticamente listo para el entrenamiento de modelos. El problema es que por lo distintas que son las formas en las que se toman las imágenes en los dos casos no he sido capaz de obtener resultados reales y los modelos simplemente tienden a rellenar prácticamente todos los píxeles con el valor medio de todos los píxeles de la imagen ruidosa. Por tanto, he decidido generar imágenes ruidosas sintéticamente aplicando ruido gaussiano de intensidad variable.

5. Resultados

5.1. Visualización previa

Antes de analizar las métricas obtenidas es interesante visualizar el comportamiento de los distintos modelos para una misma imagen. Estos son cuatro ejemplos de las clases AnnualCrop, Residential, River e Industrial afectados por ruido gaussiano con una intensidad de 0.05. Para cada imagen se presenta la siguiente secuencia:

Imagen original → Imagen con ruido → Autoencoder → Variational Autoencoder → U-Net VAE

Las imágenes de la clase AnnualCrop están compuestas por formas bastante sencillas y colores simples, pero tanto en el Autoencoder como en el Variational Autoencoder la imagen resultante es muy borrosa y solamente se pueden distinguir algunas zonas verdes. En esta imagen en concreto se reconoce la forma del lado izquierdo verde oscuro, así como la del lado derecho del mismo color, pero las zonas más claras prácticamente son eliminadas.

Por otro lado, la imagen devuelta por el VAE con U-Net es mucho más nítida, se mantienen las formas y los bordes, pero tampoco elimina completamente el ruido introducido.

En la clase Residential los resultados deberían ser generalmente peores, principalmente por los cambios de color repentinos en un área pequeña. Una vez más tanto el Autoencoder como el VAE devuelven imágenes muy borrosas en las que no se podría distinguir con claridad que se trata de una zona urbana, mientras que el VAE con U-Net proporciona un resultado notablemente más nítido con bordes marcados, aunque todavía borroso.

La clase River posee características más cercanas a la clase AnnualCrop, con formas más sencillas y colores más simples. Esto sugiere que los resultados esperados deberían ser mejores, y esta idea coincide con los resultados observados en esta imagen. Tanto el Autoencoder como el Variational Autoencoder devuelven imágenes borrosas en las que se sigue pudiendo identificar la forma general, mientras que el resultado del VAE con U-Net sigue siendo más nítido pero se mantienen restos del ruido.

La clase Industrial es relativamente similar a la clase Residential pero se puede extraer de forma relativamente más sencilla el esquema urbanístico, por lo que se podrían obtener resultados mejores con el modelo del Autoencoder y el VAE que en la imagen de la clase Residential. En este caso devuelven una forma que parece una alucinación del modelo. Por otro lado en el caso del VAE con U-Net se aprecia una imagen más nítida muy parecida a la original con parte del ruido de la imagen ruidosa.

5.2. Métricas empleadas

  • Peak Signal-to-Noise Ratio (PSNR)

Expresa la calidad de la reconstrucción en decibelios (dB) a partir del error cuadrático medio. MAX representa el valor máximo que puede tomar un píxel, que en este caso es 1 porque las imágenes han sido normalizadas. Como depende del error cuadrático medio se puede dar el caso de que dos imágenes con PSNR similares sean de una calidad visual distinta, ya que solamente considera el valor de píxeles individuales.

  • PSNR < 20: Reconstrucción deficiente
  • PSNR > 40: Prácticamente indistinguible del original
  • Structural Similarity Index Measure (SSIM)

Trata de aproximar mejor la percepción humana sobre la calidad de una imagen. En lugar de comparar únicamente el valor de los píxeles trata de considerar la luminancia, el contraste y la estructura de la imagen. Usa la media, varianza, covarianza de las imágenes y dos constantes numéricas para evitar inestabilidades. Toma valores entre 0 y 1, indicando 1 que se trata de dos imágenes idénticas.

5.3. Análisis de métricas

En primer lugar un vistazo al MSE confirma que las clases más homogéneas como son SeaLake, Forest y Pasture son las más fáciles de aproximar para los modelos, mientras que las clases con más variación como Industrial y Residential provocan más error. Cabe destacar un error cuadrático medio extrañamente elevado en el caso de Industrial para los modelos del Autoencoder y el Variational Autoencoder, que se podría relacionar con las alucinaciones identificadas anteriormente.

Los resultados del PSNR y el SSIM reafirman lo ya mencionado, que el VAE con U-Net devuelve resultados más cercanos a la imagen original, y el hecho de que no todo el ruido sea eliminado no tiene un impacto lo suficientemente grande como para que sus métricas sean superadas por el Autoencoder o el VAE. Es importante notar que los dos únicos casos en los que el VAE con U-Net se ve superado por los otros dos modelos son para las clases de SeaLake y Forest: las dos clases más homogéneas y en las que dejar prácticamente toda la imagen de un mismo color sería una muy buena aproximación a la imagen original.

6. Conclusiones

Los resultados obtenidos muestran que la incorporación de conexiones de salto propias de U-Net supone una mejora significativa en la calidad de las reconstrucciones, permitiendo conservar mejor los detalles espaciales y reduciendo el efecto de suavizado característico de los autoencoders tradicionales.

El análisis por clases indica que la dificultad del problema proviene en gran medida de la enorme variabilidad de las imágenes. Las clases más homogéneas presentan sistemáticamente menores errores de reconstrucción, mientras que las clases de mayor complejidad estructural resultan considerablemente más difíciles de restaurar.

Las métricas confirman las observaciones, ya que mientras que el Autoencoder y el Variational Autoencoder convencional obtienen muy buenos resultados para las clases con imágenes más uniformes, el VAE con U-Net consigue, de forma general, mejores valores tanto de PSNR y SSIM, lo cual indica que se trata de un resultado más fiel a la imagen original tanto desde un punto de vista numérico como perceptual. La capacidad de U-Net para preservar información de alta resolución permite obtener reconstrucciones de mayor calidad.

7. Líneas futuras

Una de las principales líneas futuras consiste en trasladar esta metodología a imágenes SAR procedentes de Sentinel-1, donde el ruido predominante no es gaussiano sino el speckle. En este caso el problema es de mayor complejidad ante la ausencia de imágenes completamente libres de ruido. Para obtener aproximaciones de imágenes sin ruido se puede usar la media de varias imágenes en distintos momentos de un mismo sitio, Noise2Noise en caso de poseer al menos dos imágenes y Noise2Void en caso de solo tener acceso a una.

Otra posible ampliación consiste en entrenar los modelos con una mayor variedad de degradaciones, ya sea combinando distintos tipos de ruido o aplicándolos simultáneamente. De esta forma se obtendría un modelo más robusto capaz de restaurar imágenes afectadas por más de un solo tipo de ruido.

Por último sería interesante emplear estrategias de entrenamiento más dirigidas a la generalización. En lugar de entrenar y validar el modelo sobre imágenes de todas las clases se podría considerar una validación Leave-One-Class-Out, que en este caso consistiría en entrenar el modelo sobre nueve de las diez clases del dataset EuroSAT y evaluarlo sobre la décima completamente desconocida. Con este planteamiento se puede evaluar hasta qué punto el modelo es capaz de identificar de forma general el ruido y eliminarlo frente a depender de las características de las escenas observadas.

8. Referencias

Clasificación de grietas en carreteras mediante transformers: extracción de características con DINO

Pablo Gómez, Gonzalo Maroto y Pablo Melero

Introducción

El deterioro de las infraestructuras viarias representa un problema de seguridad y coste económico de primer orden. La detección temprana y clasificación automática de grietas en pavimentos permite priorizar labores de mantenimiento antes de que el daño se vuelva crítico. En este trabajo exploramos el uso de modelos transformer preentrenados de la familia DINO como extractores de características visuales, combinados con clasificadores clásicos, para clasificar tipos de grietas en imágenes de carretera sin necesidad de entrenar una red desde cero.

El objetivo es doble: comparar la calidad de las representaciones producidas por distintas versiones de DINO sobre el mismo clasificador, y analizar visualmente qué regiones de la imagen determinan las predicciones mediante técnicas de explicabilidad.

Estado del arte

La detección automática de daños en carreteras ha evolucionado desde enfoques basados en visión clásica con filtros de Sobel y transformadas de Hough hacia arquitecturas de aprendizaje profundo. Los trabajos pioneros de Arya et al. (2018, 2022) establecieron los datasets de referencia para el campo, siendo RDD2022 el más completo con más de 47.000 imágenes anotadas en siete países.

En paralelo, los modelos de visión preentrenados mediante self-supervised learning han demostrado producir representaciones visuales de alta calidad sin necesidad de etiquetas. DINO (Caron et al., 2021) introdujo la destilación knowledge entre redes estudiante-profesor obteniendo features con propiedades emergentes de segmentación semántica. DINOv2 (Oquab et al., 2023) escaló este enfoque con un dataset curado de 142 millones de imágenes. DINOv3 (Meta AI, 2025) extiende la familia con 1.689 millones de imágenes y nuevas arquitecturas ConvNeXt entrenadas por destilación desde un ViT-7B.

Materiales y métodos

Dataset

Se utiliza RDD2022, filtrado mediante una limpieza sistemática: eliminación de imágenes aéreas (China_Drone), imágenes sin anotaciones, imágenes con únicamente la clase D40 (baches), y submuestreo estratificado por país. El resultado es un dataset de 8.797 imágenes con tres clases objetivo en esquema multilabel:

📄 Código: clean_rdd2022.py

Clase Descripción Frecuencia
D00 Grietas longitudinales 66,5%
D10 Grietas transversales 33,7%
D20 Grietas en malla (aligator) 34,8%

El dataset se divide en las siguientes proporciones siendo el número de imágenes suficiente a primera vista para comenzar el análisis.

Split Imágenes Proporción
Train 6.159 70%
Validación 1.319 15%
Test 1.319 15%

📄 Código: análisis_dataset.ipynb

Extracción de características

Para cada imagen, el transformer produce una secuencia de tokens. El vector de features final concatena el CLS token con la media de los patch tokens, resultando en un vector de 1.536 dimensiones para los modelos ViT-B. Para DINOv3-ViT se descartan los 4 register tokens antes del pooling. Para DINOv3-ConvNext se concatenan los avg pools de las 4 etapas jerárquicas produciendo un vector de 1.440 dimensiones.

📄 Código: extract_features.py

# CLS token + media de patch tokens → vector 1536 dims
out        = model.forward_features(image)
cls_feat   = out["x_norm_clstoken"]
patch_feat = out["x_norm_patchtokens"].mean(dim=1)
features   = torch.cat([cls_feat, patch_feat], dim=1)

# DINOv3-ViT: descartar 4 register tokens
cls_feat   = last_hidden[:, 0, :]
patch_feat = last_hidden[:, 5:, :].mean(dim=1)
features   = torch.cat([cls_feat, patch_feat], dim=1)

# DINOv3-ConvNext: avg pool 4 etapas → 1440 dims
features = torch.cat([
    stage.mean(dim=[2, 3])
    for stage in out.hidden_states
], dim=1)

Clasificadores

Sobre las features se entrenan tres clasificadores en esquema multilabel con umbral 0.5 por clase. El desbalance se compensa calculando un peso por clase inversamente proporcional a su frecuencia. Se evalúan MLP (tres capas con BatchNorm, ReLU y Dropout), SVM (LinearSVC con StandardScaler) y LightGBM (clasificador binario por clase con early stopping).

📄 Código: train_MLP.py · train_SVM_LightGBM.py

Resultados

Primeros Resultados — Extractor fijo

En primer lugar se extraen características con DINOv1 y se entrena un MLP con distintos hiperparámetros. Las curvas de aprendizaje y métricas de evaluación obtenidas se muestran a continuación.

Se compara a continuación el desempeño de DINOv1 y DINOv2 usando los mejores hiperparámetros obtenidos previamente, ambos con el mismo MLP 

Posteriormente se extiende el análisis al resto de extractores DINO seleccionados, evaluando su desempeño de nuevo con el entrenamiento del mismo modelo.

Los resultados muestran un patrón consistente. D00 se clasifica bien en todos los casos (F1: 0.80–0.85) gracias a su mayor representación en el dataset. D20 mejora progresivamente con extractores más potentes (F1: 0.65–0.77 con LightGBM). D10 es sistemáticamente la clase más difícil (F1: 0.54–0.62), lo que indica que las grietas transversales son visualmente similares a las longitudinales a nivel de imagen completa. LightGBM supera consistentemente a SVM en todas las combinaciones.

Análisis de explicabilidad — diagnóstico del fallo

Para entender por qué D10 presenta resultados tan pobres, se aplicaron dos técnicas de explicabilidad sobre DINOv2 sin fine-tuning.

Attention Rollout combina los mapas de atención de todas las capas del transformer acumulativamente, modelando las conexiones residuales mediante la suma con la matriz identidad en cada capa. El mapa resultante indica qué regiones de la imagen han contribuido más a la representación final del CLS token.

🖼️ Imagen: attention_rollout.py

Patch Importance SHAP proyecta los SHAP values del clasificador LightGBM de vuelta al espacio de patches, generando un mapa de calor por clase que indica qué regiones han contribuido a predecir D00, D10 y D20 respectivamente.

🖼️ Imagen: patch_importance.py

Ambos análisis revelan el mismo problema: DINOv2 sin fine-tuning no atiende a las grietas sino a regiones genéricas de alto contraste. Los mapas son difusos y no discriminan entre zonas con y sin grieta. Esto ocurre porque DINO fue preentrenado con imágenes generales y sus representaciones no están adaptadas al dominio específico del pavimento. Este diagnóstico explica directamente el techo de F1 en D10: si el extractor no distingue la orientación de las grietas, ningún clasificador encima puede hacerlo.

Fase 2 — Fine-tuning de DINOv2

Como respuesta al fallo detectado en la explicabilidad, se aplica fine-tuning de nivel 2 sobre DINOv2: las capas 0-9 permanecen congeladas y las últimas 2 capas (10-11) junto con la cabeza clasificadora se descongelan y entrenan con learning rate diferencial: LR backbone = 10⁻⁵ (ajuste suave) y LR cabeza = 10⁻³ (aprendizaje normal). Se usa CosineAnnealingLR y gradient clipping (norma máxima 1.0) para estabilidad. 

El fine-tuning de clasificación mejora ligeramente las métricas respecto al extractor fijo, pero los mapas de Attention Rollout siguen siendo igual de difusos. La razón es directa: una loss de clasificación le dice al modelo si hay grietas en la imagen, pero no dónde están. El gradiente no contiene información espacial, por lo que las capas descongeladas no aprenden a localizar las grietas sino a discriminar su presencia a nivel global.

📄 Código clasificación: finetune_dinov2.py

Dado este resultado, se implementa un segundo fine-tuning orientado a detección, añadiendo una head tipo DETR con 20 queries aprendibles, Hungarian matching y pérdidas combinadas de clasificación, L1 de bounding box y GIoU.

📄 Código detección: finetune_dinov2_detection.py

# 20 queries aprendibles que atienden a los patch tokens del backboneself.queries = nn.Embedding(20, d_model)
decoded = self.decoder(queries, patch_tokens)  # transformer decoder
logits  = self.class_head(decoded)             # clase: D00 / D10 / D20 / fondo
boxes   = self.bbox_head(decoded)              # bbox: (cx, cy, w, h) en [0,1]

# Hungarian matching — asignación óptima predicciones vs ground truth
cost = LAMBDA_CLASS * class_cost + LAMBDA_BBOX * bbox_cost + LAMBDA_GIOU * giou_cost
pred_idx, gt_idx = linear_sum_assignment(cost.detach().cpu().numpy())

# Loss combinada: clasificación + L1 bounding box + GIoU
bbox_loss = F.l1_loss(pred_boxes[pred_idx], gt_boxes[gt_idx])
giou_loss = (1 - generalized_iou(pred_boxes[pred_idx], gt_boxes[gt_idx])).mean()
loss = LAMBDA_CLASS * class_loss + LAMBDA_BBOX * bbox_loss + LAMBDA_GIOU * giou_loss

En este caso el gradiente sí fluye desde la localización de los bounding boxes, por lo que en teoría el modelo debería aprender a prestar atención a las regiones con grietas. Sin embargo, los mapas de atención obtenidos son visualmente indistinguibles de los del fine-tuning de clasificación, y el mAP@0.5 es igualmente bajo. Esto tiene sentido: arquitecturas tipo DETR requieren típicamente 300 épocas sobre datasets de cientos de miles de imágenes para converger, y aquí se entrena con 50 épocas y 6.000 imágenes. La señal de los bounding boxes no es suficiente para redirigir la atención del transformer de forma visible en tan pocas iteraciones, lo que establece el límite claro del enfoque actual y motiva el trabajo futuro.

🖼️ Imagen: attention_rollout_fine_tunning.py

Conclusiones

El experimento de explicabilidad ha sido más informativo que los propios resultados de clasificación. Sin fine-tuning, DINO actúa como un extractor genérico que no distingue la orientación de las grietas, lo que explica directamente el techo de F1 en D10. Ni el fine-tuning de clasificación ni el de detección producen mapas de atención interpretables, y en ambos casos el entrenamiento dejó de mejorar a partir de la época 3: con 6.000 imágenes el modelo converge rápidamente hacia un mínimo local del que no puede escapar por falta de variabilidad en los datos.

En cuanto a clasificación, LightGBM supera consistentemente a SVM y MLP gracias a su manejo del desbalance de clases. El techo de F1 en D10 es consistente en todos los extractores y clasificadores probados, confirmando que el problema no es el clasificador sino la pérdida de información de orientación al hacer pooling global de los patch tokens.

Como trabajo futuro, arquitecturas más ligeras que DETR como RT-DETR o YOLO-World convergerían con datasets pequeños y podrían producir mapas interpretables. Ampliar el dataset con más imágenes anotadas con bounding boxes es la otra vía natural para obtener la supervisión espacial que el modelo necesita.

🔗 Código completo disponible en: Blog Pasd

Referencias

De la imagen al texto: CLIP y CoCa aplicados a moda

¿Por qué le resulta tan difícil a un ordenador entender que los píxeles de una imagen de una sudadera y la palabra «sudadera» representan el mismo concepto? La razón es que ambos pertenecen a dominios de representación completamente distintos: una imagen se codifica como una matriz de tensores, mientras que el texto se representa como una secuencia de tokens. Estas formas de representación no son directamente compatibles desde el punto de vista matemático [1].

El desafío de la multimodalidad consiste, por tanto, en proyectar ambas modalidades en un espacio común donde la cercanía entre vectores refleje similitud semántica [1].

En este trabajo evaluamos los modelos CLIP y CoCa en el dominio de la moda utilizando el conjunto de datos Fashion200K, explorando tanto la alineación imagen-texto como la generación de descripciones y distintas estrategias de fine-tuning [1] [2].

Considérese un conjunto de miles de pares imagen–texto y el objetivo de aprender su correspondencia sin supervisión explícita. Esta es la idea fundamental detrás de CLIP [1].

CLIP emplea dos encoders independientes, uno visual y otro textual, que proyectan imágenes y textos en un espacio de representación compartido. El entrenamiento consiste en maximizar la similitud entre cada imagen y su descripción correcta, y minimizarla respecto al resto de descripciones del batch. No intervienen etiquetas explícitas, únicamente pares correctos e incorrectos. Este esquema habilita capacidades zero-shot, permitiendo comparar una imagen con descripciones en lenguaje natural y seleccionar la más próxima [1].

No obstante, el modelo presenta una limitación: captura adecuadamente los conceptos individuales, pero no las relaciones entre ellos. Frases compuestas por las mismas palabras pero con distinta estructura —como “blazer negro con botones dorados” y “blazer dorado con botones negros”— generan representaciones prácticamente indistinguibles. El modelo identifica los elementos presentes, pero no su correcta asociación [3].

CoCa mantiene el enfoque de encoders independientes y el objetivo contrastivo, pero introduce un decoder generativo multimodal. En lugar de limitarse a evaluar la compatibilidad de una frase completa, el modelo debe generarla secuencialmente a partir de la imagen, lo que impone restricciones sobre el orden y la composición [2].

Mediante mecanismos de cross-attention, el decoder accede a la información visual en cada paso de generación. El entrenamiento combina un objetivo contrastivo, que preserva el alineamiento global, con un objetivo generativo que fuerza la coherencia estructural de la descripción. Como resultado, se obtienen representaciones más sensibles a las relaciones entre objetos y atributos [2].

Para adaptar los modelos al dominio de la moda utilizamos el conjunto de datos Fashion200K, que contiene sobre 200 000 imágenes de prendas de vestir de 5 clases diferentes, cada una acompañada de una descripción textual en inglés (que no siempre es completamente correcta).

Las imágenes se redimensionaron a 256 × 256 píxeles y se aplicaron las transformaciones de preprocesamiento propias de cada modelo. Los textos se tokenizaron con una longitud máxima de contexto de 76 tokens, que es el límite del encoder textual de CoCa.

  • El último bloque residual
  • La última capa de cross-attention
  • La capa de normalización final
  • La proyección de salida

Esto supone entrenar 6 306 816 parámetros de un total de 253 560 065, es decir, un 2,49 % del modelo. Se puede ver el código y los resultados en este repositorio de GitHub.

Para evaluar el impacto del fine-tuning comparamos cuatro configuraciones sobre las mismas imágenes de prueba:

  • B-32 preentrenado: CoCa ViT-B-32 sin fine-tuning
  • B-32 fine-tuned: mismo modelo tras 6 épocas de adaptación
  • L-14 preentrenado: CoCa ViT-L-14 sin fine-tuning (modelo de mayor capacidad)
  • L-14 fine-tuned: mismo modelo tras 3 épocas de adaptación

Además, contábamos con la descripción original.

Los resultados iniciales, sin embargo, no fueron los deseados: el fine-tuning degradó la calidad de las descripciones en lugar de mejorarla. El modelo B-32, tras 6 épocas de adaptación, mostró un gran deterioro, formando frases incoherentes y repitiendo palabras (sobre todo colores) en bucle.

Fue mejor nuestra suerte con el modelo de tamaño mayor, que consiguió entender la tarea de «únicamente describir la pieza de ropa, de manera directa y precisa», mejorando las descripciones iniciales de los modelos preentrenados que repetían «a close up» o «a woman wearing» en cada frase sin ser eso lo relevante de la imagen en nuestro contexto.

Los resultados de la sección anterior nos llevaron a una pregunta natural: si el fine-tuning parcial de las capas finales del decoder puede tanto mejorar como degradar drásticamente la calidad de las descripciones, ¿qué ocurre cuando se modifica una fracción mayor del modelo? En particular, ¿qué sucede si congelamos selectivamente uno de los dos branches principales —el encoder visual o el encoder textual— y entrenamos el otro por completo?

La motivación era doble. Por un lado, mejorar la representación textual: las descripciones de Fashion200K tienen un estilo propio —directo, centrado en atributos como color, corte y tipo de prenda— que difiere del lenguaje natural de MSCOCO. Congelar el encoder visual y entrenar el branch textual permitiría al modelo aprender este vocabulario específico sin alterar las representaciones visuales ya consolidadas. Por otro lado, mejorar la extracción visual: dado que acabamos de comprobar que un mínimo ajuste en los pesos textuales puede destruir la coherencia de las descripciones, cabía la posibilidad de que el problema no estuviera en la generación de texto, sino en que el encoder visual no estuviera extrayendo features suficientemente alineadas con el dominio de la moda. Congelar el encoder textual y entrenar únicamente el visual permitiría adaptar la visión del modelo manteniendo intacta su capacidad lingüística.

En términos de parámetros, estas estrategias implican actualizar una fracción del modelo muy superior al 2,49 % del experimento anterior: congelar el encoder visual deja entrenables aproximadamente un 75 % de los parámetros, mientras que congelar el encoder textual implica actualizar aproximadamente un 34 %.

El notebook con el pipeline completo para hacer esta comparación está disponible en nuestro repositorio, listo para ser ejecutado. Sin embargo, no fue posible llevar a cabo este experimento dentro del plazo del trabajo: actualizar un tercio o tres cuartas partes del modelo requiere una capacidad de cómputo de los que no disponemos. Sin los recursos para realizar un entrenamiento completo y monitorizado, los resultados habrían sido poco concluyentes y, probablemente, sufrirían de la misma degradación que el primero de los fine-tunings.

En este trabajo hemos evaluado la capacidad de los modelos CLIP y CoCa para comprender y generar descripciones en el dominio de la moda, utilizando el conjunto de datos Fashion200K. Nuestros resultados revelan tres conclusiones principales.

Primero, el fine-tuning de modelos visión-lenguaje es inherentemente delicado. La modificación de tan solo un 2,49 % de los parámetros —las capas finales del decoder generativo— es más que suficientes para que el modelo empiece a redactar frases sin sentidio.

Segundo, la capacidad del modelo importa. El modelo L-14, con sus representaciones visuales y textuales más ricas, logró adaptarse al estilo directo y específico de las descripciones de Fashion200K en solo 3 épocas, generando descripciones más precisas y relevantes que las versiones preentrenadas. Esto sugiere que los modelos de mayor tamaño son más robustos frente al fine-tuning y conservan mejor sus capacidades generales mientras aprenden el nuevo dominio.

Tercero, las métricas automáticas de pérdida no son un indicador fiable de calidad en la generación de texto. El modelo B-32 alcanzaba valores de loss decrecientes mientras sus descripciones se volvían cada vez más incoherentes, lo que ilustra la conocida brecha entre la optimización numérica y la evaluación humana en tareas de generación de lenguaje.

Como trabajo futuro, resultaría interesante explorar estrategias de fine-tuning más conservadoras, como el uso de adaptadores (CLIP-Adapter [4]) o el aprendizaje de prompts (CoOp [5]), que modifican el modelo de forma aún más ligera y podrían evitar la degradación observada.

Referencias:

  1. Learning Transferable Visual Models From Natural Language Supervision: 
    https://arxiv.org/pdf/2103.00020  
  2. CoCa: Contrastive Captioners are Image-Text Foundation Models: 
    https://arxiv.org/pdf/2205.01917 
  3. When and why vision-language models behave like bags-of-words, and what to do about it?: 
    https://arxiv.org/pdf/2210.01936 
  4. CLIP-Adapter: Better Vision-Language Models with Feature Adapters:
    https://arxiv.org/pdf/2110.04544 
  5. Learning to Prompt for Vision-Language Models: 
    https://arxiv.org/pdf/2109.01134  
  6. Contrastive Language-Image Learning with Augmented Textual Prompts for 3D/4D FER Using Vision-Language Model:
    https://arxiv.org/pdf/2504.19739 
  7. A Simple Framework for Contrastive Learning of Visual Representations:
    https://arxiv.org/pdf/2002.05709  
  8. Bayesian Principles Improve Prompt Learning In Vision-Language Models:
    https://arxiv.org/pdf/2504.14123 
  9. Enhancing Spatial Reasoning in Vision-Language Models via Chain-of-Thought Prompting and Reinforcement Learning:
    https://arxiv.org/pdf/2507.13362  
Antonio Álvarez, Diego Besada, Natalia Corchón y Alfonso Jimena.

Detección de perfiles genéticos anómalos en genes asociados a síndromes hereditarios de cáncer mediante VAEs

Mauro Pérez Cea, Miguel Peragón Cuesta, María Navarro Ojanguren.

1. Introducción

La secuenciación del ADN ha permitido estudiar la variación genética humana y su posible relación con enfermedades. El ADN es la molécula que almacena toda la información genética. Dentro del ADN hay regiones llamadas genes que contienen las instrucciones para fabricar una proteína o regular un proceso biológico. El ser humano tiene un total de 46 cromosomas, 23 pares, donde se almacena el ADN. Todos los cromosomas juntos forman un genoma. El genoma contiene todas las “instrucciones genéticas”, genes, regiones reguladoras… Lo que se va a usar en este blog, el exoma, es la parte del genoma formada por los exones, que son las regiones de los genes que sí codifican proteínas. 

En este trabajo vamos a detectar las anomalías del exoma utilizando modelos generativos, concretamente Autoencoders Variacionales (VAE). Un VAE aprende a comprimir datos y luego reconstruirlos, comprimiendo cada dato en una distribución probabilística. Si el modelo aprende correctamente como son los perfiles genéticos esperados, aquellos perfiles que se construyan distinto serán considerados anómalos. 

El objetivo principal del proyecto es construir un sistema capaz de identificar perfiles de variación genética atípicos en genes asociados a síndromes hereditarios de cáncer. Para ello se utilizan datos de referencia poblacional procedentes de gnomAD, una base de datos que recoge variantes genéticas observadas en muchos individuos. El dataset indica las frecuencias alélicas, que indican qué proporción de una población tiene una variante genética concreta. A partir de las frecuencias alélicas de estas variantes se simulan perfiles genéticos de referencia, que se utilizan para entrenar el VAE.

Posteriormente, el modelo se evalúa comparando estos perfiles esperados con perfiles que contienen una mayor carga de variantes raras o variantes clínicamente relevantes obtenidas de bases como ClinVar. 

La idea no es realizar un diagnóstico médico, sino detectar perfiles genéticos anómalos en genes asociados a síndromes hereditarios de cáncer, tomando como referencia la variación poblacional de gnomAD.

2. Estado del arte

La interpretación de variantes genéticas es un problema central de la genómica actual. Bases de datos como gnomAD proporcionan frecuencias poblacionales que permiten estimar si una variante es común o rara, mientras que ClinVar aporta interpretación clínica de variantes concretas y sirve como fuente de validación. Los VAE han demostrado su utilidad en biomedicina para detección de anomalías y aprendizaje de estructuras latentes, siendo EVE el ejemplo más relevante: un modelo generativo no supervisado que aprende restricciones biológicas sin etiquetas clínicas. Este proyecto combina ambos enfoques, utilizando un VAE para aprender la distribución esperada de perfiles genómicos sanos y detectar desviaciones compatibles con síndromes hereditarios de cáncer 

3. Desarrollo

El objetivo es detectar anomalías genómicas compatibles con tres síndromes hereditarios de cáncer: Lynch, HBOC y Li-Fraumeni, utilizando 12 genes representativos (MLH1, MSH2, MSH6, PMS2, EPCAM, BRCA1, BRCA2, PALB2, RAD51, CHEK2, TP53 y ATM). La arquitectura del pipeline es modular y escalable, permitiendo su extensión a cualquier conjunto de genes mediante la simple modificación de la lista de entrada. 

Etapa 1: Delimitación de Ventanas Genómicas mediante Anotación (GTF)

Antes de analizar cualquier variante genética, hay que conocer con precisión las coordenadas genómicas de cada gen. Para ello, utilizamos un archivo en formato GTF (Gene Transfer Format) de Ensembl. Con este archivo construimos una matriz de referencia con las coordenadas cromosómicas exactas (cromosoma, posición de inicio, posición de fin) de los genes.

Esta etapa permite al algoritmo definir “ventanas genómicas” específicas para cada gen, lo que posteriormente facilita la extracción de variantes mediante indexación tabix sobre los archivos VCF de gnomAD.

Etapa 2: Extracción y Agregación de Variantes por Gen

Una vez consolidada la matriz de coordenadas, el pipeline accede a los archivos VCF indexados de gnomAD (exomas) utilizando pysam y tabix. Para cada uno de los genes, el sistema recupera todas las variantes que caen dentro de sus coordenadas genómicas, verificando adicionalmente mediante el campo VEP (Variant Effect Predictor) que cada variante pertenece efectivamente al gen objetivo.

El valor diferencial está en la agregación funcional. En lugar de tratar el genoma como un conjunto de millones de mutaciones independientes, todas las variantes recuperadas dentro de un mismo gen se consolidan bajo una representación unificada. Cada gen queda caracterizado por tres métricas: el número de variantes raras (frecuencia alélica < 0.05), el número de variantes comunes (frecuencia alélica ≥ 0.05), y la frecuencia alélica media ponderada por el total de variantes en el gen.

La Figura muestra el perfil de variantes de los 12 genes en población sana (gnomAD). Existe una heterogeneidad marcada entre genes: ATM y BRCA1 acumulan más de 250 variantes mientras que PALB2 y RAD51 apenas alcanzan 50, con frecuencias alélicas medias que oscilan entre 0.05  y 0.15 . Esta caracterización basal es la que el VAE aprende como perfil “normal” para detectar desviaciones patológicas durante la inferencia. 

Etapa 3: Transformación Logarítmica y Normalización

Dado que las distribuciones de variantes presentan un sesgo natural extremo, los conteos se transforman logarítmicamente: log1p para variantes raras y comunes, y log10 para la frecuencia alélica media. Los vectores resultantes de dimensión 36 (12 genes × 3 features) se normalizan mediante StandardScaler (media cero, varianza unitaria) para garantizar un rango numérico estable en la entrada del VAE 

Etapa 4: Entrenamiento del Autoencoder Variacional (VAE)

El VAE se entrena con 20.000 perfiles sintéticos generados mediante muestreo binomial sobre las frecuencias alélicas de gnomAD, aprendiendo la distribución esperada de la población sana sin sesgos médicos. La arquitectura consta de un encoder (36→72→36→16D) y un decoder simétrico, donde el espacio latente de 16 dimensiones captura las correlaciones entre los 12 genes estudiados 

El entrenamiento utiliza la función de pérdida ELBO compuesta por error de reconstrucción MSE y divergencia KL ponderada por β=0.001, con Dropout de 0.2 y optimizador Adam durante un máximo de 200 épocas con early stopping tras 30 épocas sin mejora. El umbral de detección de anomalías se fija en el percentil 95 del error de reconstrucción sobre el conjunto de entrenamiento sano. 

Las curvas de entrenamiento muestran una convergencia estable a lo largo de 200 épocas sin signos de overfitting, con la pérdida de validación estabilizándose en torno a 0.30. El error de reconstrucción MSE alcanza ~0.4 mientras que la divergencia KL, controlada por β=0.001, se estabiliza en ~4.2 sin colapsar el espacio latente, confirmando que las 16 dimensiones latentes codifican información biológica relevante. 

Etapa 5: Inferencia y Generación de Reporte Clínico

Durante la inferencia, el perfil genómico del paciente se construye siguiendo el mismo pipeline de extracción, agregación y normalización, y el vector de 36 dimensiones resultante se introduce en el VAE. Si el error de reconstrucción MSE supera el percentil 95, el perfil se clasifica como anómalo y el sistema genera un reporte clínico que identifica los genes hipermutados, la intensidad de la alteración (leve: 1.2, moderada: 1.5, severa: 2.5) y el síndrome más probable por similitud coseno contra perfiles ClinVar de Lynch, HBOC y Li-Fraumeni. 

4. Material

  • Para este trabajo hemos utilizado cuatro fuentes de datos abiertas: gnomAD como referencia de variación genética poblacional, Ensembl para obtener las coordenadas cromosómicas de los genes estudiados, ClinVar para validación clínica de variantes patogénicas, y 1000 Genomes para validación con perfiles genéticos reales.
  • Las herramientas de código empleadas son: pandas y numpy para manipulación de datos, matplotlib para visualización, pysam para lectura de archivos VCF, scikit-learn para normalización y métricas, PyTorch para implementar y entrenar el VAE, y UMAP para visualizar el espacio latente aprendido por el modelo.

5. Resultados

Para la evaluación hemos creado cuatro grupos de perfiles distintos: 200 sanos, generados con el mismo proceso binomial del entrenamiento y 400 anómalos distribuidos en tres niveles de dificultad de detección. Los perfiles leves (x1.2) simulan portadores con una carga de variantes raras muy poco superior a la de  referencia de la población sana. Los moderados (x1.5) representan alteraciones moderadas, y los severos (x2.5) corresponden a perfiles con alta carga de variantes clínicamente significativas.

La clasificación se realiza de forma no supervisada: el único criterio es si el error de reconstrucción MSE supera o no el umbral del percentil 95 establecido durante el entrenamiento.

Los resultados globales muestran una precisión del 97.53%, un recall del 98.75% y un F1-Score del 98.14%. De los 200 perfiles sanos, 190 se clasificaron correctamente, lo que da una tasa del 95%, coherente con la definición que pusimos al umbral. De los 400 perfiles anómalos, el modelo detectó 395, con solo 5 falsos negativos, todos ellos de la categoría más difícil (x1.2). 

Para la visualización del espacio latente evaluamos 15 pacientes independientes: 5 perfiles sanos generados con semilla independiente no utilizada durante el entrenamiento, 5 pacientes Lynch y de 5 HBOC con 8 variantes reales extraídas de ClinVar. 

Los resultados fueron que los sanos se integran en la nube de puntos de los 20000 sanos sintéticos mientras que los pacientes con genes alterados de Lynch y HBOC se proyectaron en una región distinta.

6. Discusión de resultados

Los resultados demuestran que un VAE entrenado exclusivamente sobre perfiles genómicos de población sana es capaz de detectar anomalías asociadas a diferentes enfermedades sin haber visto ningún ejemplo de esas enfermedades durante el entrenamiento. La capacidad de detección se debe a haber aprendido qué distribución de variantes es normal, no de memorizar patrones de enfermedad. Que el sistema detecte correctamente casi todos los perfiles anómalos (97.5%), sugiere que el VAE ha aprendido a reconocer el patrón global de un genoma normal.

Sin embargo, el trabajo tiene algunas limitaciones prácticas. Tanto los datos de entrenamiento como los de evaluación son sintéticos, generados a partir de frecuencias poblacionales de gnomAD. En datos reales de pacientes, existen diferentes factores que podrían introducir ruido al modelo, que bajaría la precisión del modelo.

El punto más importante es que la anomalía detectada no equivale a una enfermedad concreta (solo para el ejemplo de Lynch y HBOC añadida como imagen en el espacio latente). El sistema identifica perfiles inusuales respecto a la referencia poblacional, no enfermedades. El valor que aporta el trabajo consiste en identificar perfiles fuera de lo común y se consideran como “perfiles de riesgo” que merecen atención.

7. Referencias 

  1. Genome Aggregation Database (gnomAD). gnomAD v4.0 / v4.1 release information. (gnomad.broadinstitute.org)
  2. Landrum, M. J., Lee, J. M., Benson, M., et al. (2018). ClinVar: improving access to variant interpretations and supporting evidence. Nucleic Acids Research, 46(D1), D1062–D1067.
    (CNBiotecnología)
  3. Frazer, J., Notin, P., Dias, M., et al. (2021). Disease variant prediction with deep generative models of evolutionary data. Nature, 599, 91–95. (PubMed)
  4. The 1000 Genomes Project Consortium. (2015). A global reference for human genetic variation. Nature, 526, 68–74. (Nature)
  5. Kingma, D. P., & Welling, M. (2013). Auto-Encoding Variational Bayes. arXiv:1312.6114.
  6. Ensembl Genome Browser. Human genome annotation GRCh38.

De píxeles a palabras: generación de texto condicionada a imágenes

Marta Solano, Javier Lorenzo y Fernando Domínguez

1. INTRODUCCIÓN

¿Puede una máquina mirar una fotografía y mirarla como lo haría una persona? Este es el reto del image captioning: la generación automática de texto que describa el contenido visual de una imagen de forma natural y coherente. El problema exige que el sistema comprenda simultáneamente la escena visual y produzca lenguaje gramaticalmente correcto y semánticamente relevante.

Más allá de la elegancia técnica, el image captioning tiene impacto directo: alimenta herramientas de accesibilidad para personas con discapacidad visual, mejora la búsqueda semántica de imágenes y sirve de base para sistemas de preguntas y respuestas visuales (VQA).

Este blog compara experimentalmente cuatro paradigmas de image captioning sobre MS-COCO: un sistema de recuperación (CLIP), dos versiones de BLIP-1 (Base y Large, con y sin fine-tuning) y BLIP-2 con OPT-2.7B. El objetivo es entender qué gana —y qué pierde— cada enfoque frente a los demás.

2. ESTADO DEL ARTE

El image captioning ha evolucionado de pipelines artesanales de detección de objetos a modelos end-to-end preentrenados sobre cientos de millones de pares imagen–texto.

NIC / “Show and Tell” [1] estableció la plantilla: un encoder CNN (GoogLeNet) proyecta la imagen en un vector de características que inicializa un decoder LSTM, el cual genera la descripción token a token. Entrenado sobre MS-COCO, NIC superó todos los métodos anteriores y demostró que una única red neuronal podía aprender estructura visual y lingüística de forma conjunta.

CLIP [2] adoptó un enfoque radicalmente diferente: entrena un encoder de imagen y uno de texto en un espacio de embeddings compartido mediante una pérdida contrastiva sobre 400 M de pares imagen–texto de internet. CLIP no genera texto; permite captioning por recuperación: dada una imagen, recupera la caption más similar de un pool de candidatos.

BLIP [3] unificó comprensión y generación con una arquitectura MED (Multimodal mixture of Encoder–Decoder) que aplica tres objetivos conjuntos: alineamiento contrastivo (ITC), clasificación de coherencia par imagen–texto (ITM) y modelado del lenguaje autorregresivo (LM). La clave fue CapFilt: un captioner sintetiza descripciones para imágenes web ruidosas; un filtro las limpia; los datos depurados re-entrenan el modelo en un bucle de bootstrapping.

BLIP-2 [4] congela tanto el encoder de imagen como el LLM preentrenados, y los conecta con un ligero Q-Former (≈188 M parámetros) que destila la información visual más relevante en query tokens aprendibles prepuestos al LLM como prompt visual.

3. FUNDAMENTOS MATEMÁTICOS

El image captioning se formula como un problema probabilístico: dada una imagen I y una secuencia de palabras S, el modelo aprende la distribución:

p(S|I)=t=1Tp(wt|I,w<t)p(S \mid I) = \prod_{t=1}^{T} p(w_t \mid I, w_{<t})

Cada palabra se genera condicionada por la imagen y las palabras anteriores. El entrenamiento maximiza la probabilidad de la caption correcta mediante pérdida autorregresiva:

=t=1Tlogp(wt|I,w<t)\mathcal{L} = -\sum_{t=1}^{T} \log \, p(w_t \mid I, w_{<t})

Los Transformers multimodales utilizan mecanismos de atención para relacionar regiones visuales y texto:

Attention(Q,K,V)=softmax(QKTdk)V\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V

CLIP emplea aprendizaje contrastivo, alineando embeddings de imagen y texto mediante similitud coseno:

sim(zi,zt)=ziztzizt\text{sim}(z_i, z_t) = \frac{z_i \cdot z_t}{\|z_i\| \|z_t\|}

BLEU y ROUGE-L evalúan similitud textual frente a referencias humanas, mientras que CLIPScore mide alineación semántica directamente en el espacio multimodal de embeddings.

4. DESARROLLO

Implementamos y evaluamos cuatro enfoques de image captioning sobre MS-COCO utilizando PyTorch y HuggingFace Transformers. Todos los modelos reciben imágenes RGB como entrada y generan descripciones textuales condicionadas al contenido visual.

Las arquitecturas evaluadas fueron:

  • Enfoque por recuperación (CLIP): proyección conjunta de embeddings de imagen y texto en un espacio compartido para recuperar la caption más similar mediante similitud coseno.
  • Enfoque generativo base (BLIP-1 Base): generación autorregresiva token a token mediante un decoder Transformer multimodal.
  • Enfoque generativo avanzado (BLIP-1 Large): versión de mayor capacidad evaluada con Beam Search (k=5) y posteriormente ajustada mediante fine-tuning.
  • Enfoque multimodal con LLM (BLIP-2 OPT-2.7B): encoder visual congelado conectado a un modelo de lenguaje mediante el módulo Q-Former.

Como estrategia de inferencia se compararon dos métodos de decodificación: greedy decoding, que selecciona el token más probable en cada paso, y Beam Search, que mantiene varias secuencias candidatas simultáneamente para generar captions más fluidas. Para el fine-tuning eficiente se empleó LoRA [5], una técnica de adaptación de bajo rango aplicada sobre las proyecciones Q y V del Q-Former, reduciendo drásticamente el número de parámetros entrenables.

5. MATERIALES

Dataset: Se empleó MS-COCO 2014 [6], un conjunto de datos ampliamente utilizado en tareas de descripción de imágenes que contiene 82.783 imágenes de escenas cotidianas, cada una anotada con 5 descripciones textuales generadas por humanos. Para garantizar la reproducibilidad de los experimentos, se fijó random.seed(42) y se muestrearon 10 imágenes del split de entrenamiento para la evaluación comparativa.

Fine-tuning: El modelo BLIP-1 Large fue ajustado utilizando 5.000 pares imagen-descripción del conjunto de entrenamiento, durante 500 pasos de optimización con el algoritmo AdamW (lr = 5×10⁻⁵) y precisión mixta AMP para reducir el consumo de memoria.

Modelos evaluados: Todos los modelos fueron obtenidos del repositorio oficial de Salesforce[7]:

  • CLIP ViT-B/32: openai/clip-vit-base-patch32
  • BLIP-1 Base: Salesforce/blip-image-captioning-base
  • BLIP-1 Large: Salesforce/blip-image-captioning-large
  • BLIP-2 OPT-2.7B: Salesforce/blip2-opt-2.7.b (inferencia en fp16)

El código utilizado y las imágenes empleadas en este blog están disponibles en el repositorio de GitHub [8].

Métricas de evaluación: Se emplearon cuatro métricas complementarias: BLEU (NLTK, smoothing método 1), ROUGE-L (rouge-score), CIDEr (pycocoevalcap con tokenizador PTB) y CLIPScore, esta última basada en similitud coseno y que no requiere referencias humanas. En todas ellas, valores más altos indican mejor rendimiento: mayor coincidencia con las referencias humanas en BLEU, ROUGE-L y CIDEr, y mayor coherencia semántica imagen-texto en CLIPScore.

6. RESULTADOS

La Tabla 1 recoge las puntuaciones medias obtenidas sobre las 10 imágenes de evaluación (seed = 42).

Tabla 1. Puntuaciones medias sobre las 10 imágenes de evaluación.

BLIP-2 domina en BLEU y ROUGE-L (+112% y +49% relativos) operando en modo zero-shot, aunque sus métricas CIDEr y CLIPScore no pudieron calcularse por incompatibilidades en la tokenización. CLIP obtiene el CLIPScore más alto (30,82), reflejando fuerte alineación semántica pese al bajo solapamiento con las referencias. Dentro de BLIP-1, Beam-5 mejora consistentemente sobre Greedy, mientras que el fine-tuning no aporta mejoras claras en todas las métricas.

La Figura 1 muestra una comparativa cualitativa de las descripciones generadas por cada modelo para 5 imágenes representativas del conjunto de evaluación.

Figura 1. Comparativa cualitativa de las descripciones generadas por cada modelo para 5 imágenes del conjunto de evaluación.

Se observa que BLIP-1 Base Greedy tiende a generar descripciones muy cortas y genéricas (“a fire truck”, “a clock on a pole”), mientras que los modelos con decodificación Beam-5 producen descripciones más detalladas y cercanas a las referencias humanas. BLIP-1 Large Beam-5 destaca por incluir contexto adicional relevante, como la ubicación o el entorno (“there is a fire truck driving down the street in front of a fire”).

CLIP ViT-B/32 genera descripciones con mayor riqueza léxica en algunos casos (“a single engine, two passenger plane is taking off”), aunque en otros introduce elementos incorrectos no presentes en la imagen (“a dog laying on top of a bed next to another dog” cuando hay dos perros tumbados).

El fine-tuning de BLIP-1 Large no mejora consistentemente la calidad descriptiva: en algunos casos simplifica en exceso (“a dog and a cat sleeping on a bed”) introduciendo incluso errores semánticos respecto a la imagen original.

7. DISCUSIÓN

Fine-tuning con datos insuficientes. Ajustar BLIP-1 Large con tan pocos datos redujo el rendimiento y generó descripciones incorrectas. Aproximaciones como LoRA o la congelación parcial del modelo serían más adecuadas en este escenario.

Beam Search mejora la calidad, pero no siempre las métricas. La comparativa entre BLIP-1 Base Greedy (BLEU 0,165) y Beam-5 (0,271) confirma que una decodificación más elaborada mejora las descripciones. BLEU penaliza paráfrasis válidas; ROUGE-L es más robusto ante variaciones de vocabulario.

El problema de las métricas basadas en referencias. El CLIPScore más alto de CLIP (30,82) frente a su BLEU más bajo (0,147) ilustra cómo las métricas de n-gramas penalizan descripciones semánticamente correctas pero con vocabulario distinto al de las referencias.

Limitaciones. Evaluación sobre solo 10 imágenes (alta varianza); imágenes pertenecientes al split de entrenamiento de COCO; CIDEr y CLIPScore no calculados para BLIP-2 por incompatibilidades técnicas.

8. REFERENCIAS

1. Vinyals et al. (2015). Show and Tell: A Neural Image Caption Generator. CVPR 2015. https://arxiv.org/abs/1411.4555

2. Radford et al. (2021). Learning Transferable Visual Models From Natural Language Supervision. ICML 2021. https://proceedings.mlr.press/v139/radford21a.html

3. Li et al. (2022). BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation. ICML 2022. https://proceedings.mlr.press/v162/li22n.html

4. Li et al. (2023). BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models. ICML 2023. https://proceedings.mlr.press/v202/li23q.html

5. Hu et al. (2022). LoRA: Low-Rank Adaptation of Large Language Models. ICLR 2022. https://openreview.net/forum?id=nZeVKeeFYf9

6. Lin et al. (2014). Microsoft COCO: Common Objects in Context. ECCV 2014. https://link.springer.com/chapter/10.1007/978-3-319-10602-1_48

7. Salesforce. BLIP: Bootstrapping Language-Image Pre-training. GitHub, 2022. Disponible en: https://github.com/salesforce/BLIP

8. Código y recursos del blog — GitHub: https://github.com/fernandodominguezrubio/blog_pasd

Multi-Task Learning en LLMs: entrenamiento separado, Hard Sharing y Soft Sharing para tareas de NLP

1. INTRODUCCIÓN

En este trabajo se analiza el Multi-Task Learning aplicado a varias tareas de NLP, con el fin de comparar el rendimiento cuando cada una se entrena por separado frente a cuando comparten parte del modelo. Para ello se estudian tres enfoques: entrenamiento independiente, Hard Parameter Sharing y Soft Parameter Sharing.

Las tareas elegidas son NLI, NER y detección de paráfrasis, tres problemas distintos pero lo bastante relacionados como para estudiar posibles efectos de transferencia. NLI consiste en decidir la relación entre dos frases; NER identifica entidades dentro de un texto; y PAWS determina si dos oraciones expresan o no la misma idea.

A partir de este planteamiento, el objetivo es comprobar qué estrategia resulta más eficaz y en qué casos compartir conocimiento entre tareas aporta valor.

El código y los resultados completos están disponibles en el repositorio de GitHub del proyecto: https://github.com/RoblesAdrian/PASD-Blog_Gonzalez-Maldonado-Mao

2. ESTADO DEL ARTE

El Multi-Task Learning se ha utilizado ampliamente en NLP como una forma de aprovechar relaciones entre tareas y compartir representaciones internas cuando existe cierto grado de afinidad entre ellas [1][2]. En este contexto, DistilBERT resulta una base especialmente adecuada por su tamaño reducido y su buen equilibrio entre eficiencia y rendimiento [3]. La literatura también apunta a que compartir parámetros no garantiza mejoras automáticas, ya que el resultado final depende del grado de compatibilidad entre tareas y del tipo de compartición empleado [4]. Sobre esa base, este trabajo compara entrenamiento independiente, Hard Sharing y Soft Sharing para analizar cómo cambia el comportamiento del modelo según la estrategia elegida.

3. MATERIALES

Para este trabajo se han utilizado tres conjuntos de datos públicos y de uso habitual en NLP: MNLI del corpus GLUE, WikiANN en inglés y PAWS-Wiki labeled final.

MNLI se ha empleado para la tarea de Natural Language Inference (NLI), donde el modelo debe decidir la relación entre dos frases. Un ejemplo sería una premisa como “A man is playing a guitar on stage” y una hipótesis como “Someone is performing music”, que el sistema debe clasificar según si la primera frase implica, contradice o simplemente no se relaciona con la segunda [5].

WikiANN se ha usado para Named Entity Recognition (NER), en el que cada palabra del texto recibe una etiqueta. Por ejemplo, en una frase como “Barack Obama visited Paris”, el modelo debe identificar Barack Obama como persona y Paris como lugar [6].

PAWS se ha utilizado para la detección de paráfrasis, es decir, decidir si dos oraciones expresan la misma idea. Un ejemplo sería comparar “The company released a new product” con “A new product was launched by the company”, donde el modelo debe determinar si ambas frases son equivalentes en significado [7].

En cuanto al tamaño de los datos, se ha trabajado con estos subconjuntos: NLI: 31.416 ejemplos de entrenamiento y 7.854 de evaluación, NER: 16.000 de entrenamiento y 4.000 de evaluación, y PAWS: 39.520 de entrenamiento y 9.881 de evaluación. Esta elección permite mantener los tres problemas en un orden de magnitud parecido y, al mismo tiempo, hacer viable la ejecución de todos los experimentos dentro de un tiempo razonable.

Como modelo base se ha empleado DistilBERT-base-uncased, junto con las librerías transformers, datasets y evaluate de Hugging Face. Para NER fue necesario alinear correctamente las etiquetas con los tokens generados por el tokenizador, ya que cada palabra tiene una etiqueta, pero no tiene por qué corresponder a un único token. En NLI y PAWS se trató como un problema de clasificación para la frase completa.

Además del código de entrenamiento, también se han utilizado scripts propios para guardar métricas, registrar el historial de entrenamiento y generar las gráficas comparativas finales.

4. ENTRENAMIENTO POR SEPARADO

La primera referencia fue el entrenamiento separado, donde hicimos fine-tuning del modelo base distilbert-base-uncased para cada una de las tareas y sin compartir parámetros por las demás. De este modo, obtuvimos un modelo de clasificación independiente para cada problema, con su propio conjunto de datos, su propio ajuste y sus propias métricas.

5. HARD PARAMETER SHARING

La primera aproximación al Multi-Task Learning fue mediante Hard Parameter Sharing, en la que todas las tareas comparten el mismo modelo base y solo cambia la capa final de salida. En nuestro caso, el backbone fue distilbert-base-uncased, y sobre él se añadieron tres cabezas distintas, una para NLI, otra para NER y otra para PAWS.

self.backbone = AutoModel.from_pretrained(backbone_name)
self.nli_head = nn.Linear(hidden, nli_labels)
self.paws_head = nn.Linear(hidden, paws_labels)
self.ner_head = nn.Linear(hidden, ner_labels)

El entrenamiento se realizó de forma alterna, pasando por ejemplos de cada tarea dentro de una misma época. La idea se ve en este bloque, donde se va cambiando de tarea en cada paso:

for step in range(steps_per_epoch):
    for task in task_order:
        batch = next(task_loaders[task])
        outputs = model(task=task, ...)

Primero se entrenó la versión con las tres tareas a la vez y, después, varias configuraciones de dos tareas: NLI + NER, NLI + PAWS y NER + PAWS.

6. SOFT PARAMETER SHARING

La segunda aproximación al Multi-Task Learning fue mediante Soft Parameter Sharing, donde cada tarea mantiene su propio modelo base, pero se penaliza que sus parámetros se alejen demasiado entre sí. En nuestro caso, se usaron tres backbones independientes de distilbert-base-uncased, uno para NLI, otro para NER y otro para PAWS, junto con sus respectivas cabezas de salida.

A diferencia del Hard Sharing, aquí no se comparte una única representación interna, sino que se añade una pérdida de regularización que empuja a que los tres modelos aprendan representaciones parecidas. Esta parte se implementó comparando los pesos de los backbones dos a dos y sumando la distancia cuadrática entre ellos:

def regularization_loss(self):
    reg = 0.0
    pairs = [
        (self.backbone_nli, self.backbone_ner),
        (self.backbone_nli, self.backbone_paws),
        (self.backbone_ner, self.backbone_paws),
    ]
    for b1, b2 in pairs:
        for p1, p2 in zip(b1.parameters(), b2.parameters()):
            reg += torch.sum((p1 - p2) ** 2)
    return self.lambda_reg * reg

El entrenamiento también se realizó de forma alterna, pasando por batches de cada tarea dentro de una misma época. La diferencia es que, en este caso, cada tarea actualiza su propio backbone, pero siempre bajo la restricción impuesta por la regularización compartida:

for step in range(steps_per_epoch):
    for task in task_order:
        batch = next(task_loaders[task])
        outputs = model(task=task, ...)

Esta vez, para acotar la complejidad y el número de experimentos, consideramos suficiente implementarlo únicamente para la configuración de 3 tareas simultáneas (NER + NLI + PAWS).

7. RESULTADOS

6.1. Entrenamiento por separado

En primer lugar, analizamos el entrenamiento base para comprobar que se obtienen buenos resultados: el entrenamiento es estable, converge y el modelo es capaz de aprender a resolver cada una de las tres tareas. Esto servirá como referencia para el resto de experimentos.

Evolución de la función de pérdida (Train y Test) y métricas de evaluación (Accuracy y Macro F1) en el entrenamiento de cada una de las tareas, por separado.

6.2. Resultados globales

Ahora pasamos a analizar los resultados globales, empezando por Hard Parameter Sharing. Como cabría esperar, el entrenamiento de cada tarea por separado obtiene mejores resultados. Sin embargo, los resultados de Hard Sharing para cada una de las tareas son aceptables y bastante consistentes. A primera vista, no hay dos tareas más cercanas que otras, y únicamente hay una combinación que resulta especialmente negativa en el aprendizaje: NER + PAWS para PAWS (tampoco indica necesariamente que estas tareas sean lejanas, pues NER + PAWS funciona bien para NER).

El aspecto más interesante está en Soft Parameter Sharing: no sólo iguala los resultados del entrenamiento por separado, sino que en dos de las tareas los mejora ligeramente. Una posible hipótesis es que la información de las otras tareas da robustez al modelo, y en este caso sin perder riqueza como sí había sucedido con Hard Sharing.

Si nos fijamos en el Accuracy, la visión que obtenemos es similar, con unos resultados más ajustados si cabe:

6.3. Evolución del entrenamiento

Uno de los aspectos más interesantes a analizar es la evolución de las curvas de entrenamiento. Para ello, esta vez nos fijamos en la función de pérdida (Train) y la métrica Macro F1 Score. Inmediatamente observamos que el entrenamiento por separado es más estable que ambos tipos de compartición, ya que no hay otras tareas interfiriendo en el mismo.

Conviene tener en cuenta que los steps no son directamente comparables entre entrenamientos y épocas: en Multi-Task Learning, el modelo se actualiza más veces porque alterna entre tareas, aunque el número de épocas sea el mismo. Por eso, al comparar las curvas de entrenamiento, normalizamos el progreso al intervalo [0,1]. En este contexto, el entrenamiento separado puede parecer más lento en converger, probablemente porque en el entrenamiento compartido el modelo también recibe actualizaciones procedentes de las otras tareas, algo que no queda reflejado en esa normalización.

Finalmente, Soft Sharing converge y mejora las métricas antes que Hard Sharing, algo esperable siendo una configuración con mayor riqueza y menor rigidez.

Evolución de la función de pérdida (Train) y Macro F1 en el entrenamiento de cada una de las tareas, comparando por separado, Hard Sharing 3-way y Soft Sharing 3-way.

8. DISCUSIÓN

El primer aspecto que podemos plantear es por qué ha funcionado este enfoque. Una razón necesaria es que las tareas de NLP abordadas son lo suficientemente cercanas entre sí como para que lo que aprende una de ellas ayude, o al menos no perjudique, a las demás. Esto puede parecer obvio en tareas de clasificación de texto basadas en un modelo de lenguaje, pero no tiene por qué cumplirse siempre.

En esa misma línea, tan importante como analizar los posibles beneficios de compartir información entre tareas es considerar los posibles efectos negativos de forzarlas a convivir. Aunque apenas hemos conseguido una mejora marginal con los entrenamientos conjuntos, sí hemos observado que una de las combinaciones de Hard Sharing empeoraba de forma muy notable los resultados. Es fácil deteriorar el entrenamiento cuando se agrupan tareas que, en alguna de sus combinaciones, no encajan bien entre sí.

Otro aspecto relevante es el equilibrio entre coste computacional, complejidad del modelo y capacidad de representación. Hard Sharing es la opción más eficiente desde el punto de vista computacional, ya que implica entrenar un único modelo, incluyendo sus capas de salida. Sin embargo, esa simplicidad también limita la riqueza del aprendizaje, y en nuestros experimentos ha sido la configuración que peores métricas ha devuelto. En el extremo opuesto, el entrenamiento por separado ofrece la mayor flexibilidad, porque cada tarea se modela de forma independiente, pero a costa de multiplicar el número de modelos y, con ello, el gasto computacional.

Precisamente el interés de estas técnicas radica en conseguir mejorar ambas dimensiones al mismo tiempo. En nuestro caso, lo hemos conseguido con Soft Sharing: se mantiene una estructura eficiente al introducir relaciones entre parámetros, y el resultado no solo no empeora respecto al entrenamiento por separado, sino que mejora ligeramente el baseline en algunas configuraciones.

Para terminar, nos quedamos con la idea de que no existe una receta universal para obtener buenos resultados en Multi-Task Learning. Más bien, hay que combinar distintas estrategias según las características de los datos, las tareas y el objetivo final, y entender bien cuándo compartir información entre tareas aporta valor y cuándo, por el contrario, introduce ruido o interferencia.

9. REFERENCIAS

Sergio González Girones · Adrián Maldonado Robles · Alicia Mao Zhu

Análisis de representaciones latentes mediante Autoencoders para Análisis Exploratorio de Datos (EDA)

Introducción

En medicina, la digitalización genera volúmenes masivos de datos diagnósticos que desbordan los métodos de análisis tradicionales. Nos enfrentamos a la maldición de la dimensionalidad: el exceso de variables dispersa los datos e impide detectar patrones reales. Esto ha impulsado la evolución desde métodos lineales como el PCA hacia los Autoencoders Variacionales (VAE) [1], capaces de interpretar estructuras ocultas.

Presentación del tema, motivación y objetivos

No basta con clasificar una muestra: la importancia está en visualizar la topología de la enfermedad. Buscamos reducir la “caja negra” del diagnóstico asistido por computadora [8], permitiendo identificar clústeres patológicos y anomalías mediante técnicas como t-SNE [3] y UMAP. Nuestros objetivos:

  • Implementar un VAE que comprima datasets médicos complejos en un espacio latente continuo.
  • Realizar un EDA que visualice la separación entre muestras sanas y patológicas de forma no supervisada.
  • Evaluar la preservación de características morfológicas esenciales tras la reducción de dimensionalidad.

Estado del arte

El análisis de datos médicos ha evolucionado desde la interpretación subjetiva del especialista hacia un ecosistema de biomarcadores digitales y modelos de Deep Learning [9]. La metodología avanzó desde técnicas lineales como el PCA, insuficientes para capturar la geometría no lineal de las células, hacia los Autoencoders clásicos [4], y de ahí a la revolución de los VAE en 2013 [1], cuyo espacio de compresión es un mapa probabilístico continuo que facilita visualizar transiciones patológicas. Paralelamente, Van der Maaten y Hinton desarrollaron el t-SNE [3], y posteriormente McInnes propuso UMAP, hoy estándar para preservar la estructura global en el EDA médico.

Análisis matemático

El fundamento de este trabajo es la Inferencia Variacional. A diferencia de un autoencoder tradicional, el VAE mapea la entrada a una distribución de probabilidad en el espacio latente, optimizando la función ELBO [1]:

ELBO = 𝔼_q(z|x)[ log p(x|z) ]  −  β · KL( q(z|x) ‖ p(z) )

  • El primer término asegura que el modelo preserve rasgos críticos, como la morfología de parásitos en Malaria o la simetría nuclear en Cáncer.
  • El segundo término obliga al espacio latente a seguir una distribución normal N(0, I), garantizando un espacio continuo y suave, ideal para que el EDA identifique clústeres biológicos.

Para permitir el entrenamiento aplicamos el Reparameterization Trick, que permite que el gradiente fluya a través del muestreo estocástico. Así transformamos 30 variables clínicas o miles de píxeles en un mapa 2D donde la distancia geométrica refleja la similitud clínica.

Arquitectura del VAE

El modelo consta de un Encoder que mapea los datos a un espacio probabilístico definido por la media (μ) y la varianza (σ²). Se genera un vector latente z que el Decoder utiliza para reconstruir la entrada original. Este diseño permite aprender una representación comprimida y organizada de la patología.

Función de pérdida

La optimización se basa en la ELBO, que combina dos términos: el error de reconstrucción (MSE), que asegura la fidelidad de los rasgos clínicos, y la Divergencia de Kullback-Leibler, que mide la distancia entre la distribución aprendida por el Encoder y una distribución normal estándar. En el caso gaussiano:

KL = −½ · Σ ( 1 + log σ² − μ² − σ² )

El hiperparámetro β controla el equilibrio entre reconstruir perfectamente los datos o tener un espacio latente bien organizado [2].

Desarrollo

Implementamos en PyTorch dos arquitecturas VAE adaptadas a dominios distintos. Las imágenes de Malaria se normalizaron y redimensionaron a 64×64 píxeles RGB. Para Wisconsin Breast Cancer se aplicó StandardScaler a las 30 variables, evitando que rangos heterogéneos dominaran el aprendizaje. Las dos variantes arquitectónicas son:

  • Enfoque convolucional (Malaria): Conv2d y ConvTranspose2d para extraer rasgos jerárquicos (texturas, presencia del parásito).
  • Enfoque lineal (Cáncer): MLP con Batch Normalization, fundamental para acelerar la convergencia y mantener un espacio latente cohesionado.

Como decisión de diseño para el EDA se fijaron dos estrategias: en Malaria, un espacio latente de 32D que actúa como extractor de características y se proyecta en 2D mediante t-SNE [3]; en Cáncer, una compresión directa a 2D que permite explorar el espacio generativo puro sin proyecciones adicionales.

Procedencia del código

Las arquitecturas se han inspirado en la documentación oficial de PyTorch. El equipo se apoyó en IA generativa (Claude) como asistente para la estructuración inicial y la depuración, pero todo el código ha sido auditado por los autores. Las adaptaciones arquitectónicas, el ajuste de la pérdida y la analítica del EDA (t-SNE, mezclas gaussianas, distancia de Mahalanobis [6]) han sido revisados y extendidos manualmente. El código completo está disponible en Google Colab.

Datasets

Analizamos dos conjuntos médicos con desafíos analíticos complementarios:

  • Malaria Cell Images: miles de imágenes de células estandarizadas a 64×64×3 píxeles. El reto es extraer rasgos morfológicos complejos para diferenciar células sanas de las infectadas.
  • Wisconsin Breast Cancer [5]: datos tabulares de 569 muestras con 30 variables altamente correlacionadas que describen la geometría de núcleos celulares. Su objetivo exploratorio es comprimir esa redundancia dimensional para lograr una separación topológica clara entre tumores benignos y malignos.

Resultados

Gráficos de entrenamiento

Ambos modelos convergen correctamente. En el VAE lineal (Cáncer), la pérdida desciende de forma estable con oscilaciones moderadas, esperables dado el tamaño reducido del dataset. En el VAE convolucional (Malaria) la convergencia es más rápida gracias al Batch Normalization, con la KL Divergencia estabilizándose en valores bajos, indicativo de un espacio latente bien regularizado. Las representaciones obtenidas son adecuadas para el análisis exploratorio posterior.

Visualizaciones EDA

Dataset Cáncer

El espacio latente 2D revela una separación topológica natural entre tumores malignos y benignos. Las elipses de confianza al 95 % apenas se solapan, un solapamiento cuantificable mediante divergencias estadísticas como la de Bhattacharyya [7], lo que sugiere una variabilidad intrínseca clara entre clases. El VAE no clasifica, sino que hace visible una estructura preexistente en los datos [8].

El ajuste de una mezcla gaussiana sobre μ permite cuantificar la bimodalidad: que dos componentes basten para describir la distribución aprendida indica que la compresión variacional ha organizado los datos en torno a dos regiones de alta densidad que se corresponden con los dos diagnósticos.

Frente al PCA, el VAE genera fronteras más nítidas, lo que sugiere que la geometría subyacente de las 30 variables morfológicas es no lineal.

La interpolación lineal entre los centroides muestra una transición gradual en las características reconstruidas, reflejando variaciones morfológicas coherentes.

Dataset Malaria

A diferencia del caso anterior, aquí no se observa separación entre clases, y esta es en sí misma una conclusión relevante del EDA: la distinción entre células parasitadas y sanas no emerge como la fuente de variabilidad dominante en el espacio latente aprendido.

Frente al t-SNE sobre píxeles crudos, el espacio latente agrupa todas las muestras en un único clúster compacto, lo que orienta decisiones sobre preprocesado, arquitectura o hiperparámetros antes de cualquier análisis posterior [10].

Análisis crítico y limitaciones

El principal factor limitante es el uso de un VAE estándar con β=1, que equilibra a partes iguales la fidelidad de reconstrucción y la regularización del espacio latente. En Malaria, esto ha resultado en un espacio dominado por fuentes de variabilidad no diagnósticas. Un β-VAE [2] con mayor peso en la KL podría inducir un espacio más organizado a costa de peor reconstrucción. La elección de la dimensión latente responde a decisiones de diseño, no a una búsqueda sistemática. Finalmente, t-SNE preserva relaciones locales a costa de la estructura global, por lo que las distancias absolutas entre puntos en el mapa 2D no son directamente interpretables.

Conclusiones

Este trabajo valida el VAE como herramienta de EDA en el dominio médico: permite transformar datos de alta dimensionalidad en representaciones visuales interpretables de forma no supervisada [9]. Los resultados difieren según la naturaleza del dato, lo cual es en sí mismo una conclusión relevante. En Wisconsin Breast Cancer el VAE revela una separación topológica natural entre tumores malignos y benignos, superando al PCA y confirmando que la geometría subyacente es no lineal. En Malaria, la ausencia de separación no invalida el modelo, sino que orienta decisiones de arquitectura e hiperparámetros, ilustrando el valor del EDA como paso previo a cualquier clasificación. En conjunto, el pipeline VAE + t-SNE/UMAP se confirma como un enfoque robusto para el EDA en biomedicina: no clasifica, sino que hace visible una estructura que ya reside en los datos.

Referencias y código

Código

Dataset Malaria: https://colab.research.google.com/drive/1mA7rgopts4Zp_iAfMrerjFqkChJLY0J0?usp=sharing

Dataset Cáncer: https://drive.google.com/file/d/19xjTlYMAO8r_tAXzsAxceNQSqtHlyifd/view?usp=sharing

Referencias

  1. Kingma, D. P. & Welling, M. (2013). Auto-Encoding Variational Bayes. arXiv:1312.6114.
  2. Higgins, I. et al. (2017). β-VAE: Learning Basic Visual Concepts with a Constrained Variational Framework. ICLR 2017.
  3. Van der Maaten, L. & Hinton, G. (2008). Visualizing Data using t-SNE. Journal of Machine Learning Research, 9, 2579–2605.
  4. Hinton, G. E. & Salakhutdinov, R. R. (2006). Reducing the Dimensionality of Data with Neural Networks. Science, 313(5786), 504–507.
  5. Street, W. N., Wolberg, W. H. & Mangasarian, O. L. (1993). Nuclear feature extraction for breast tumor diagnosis. Proc. SPIE 1905.
  6. Mahalanobis, P. C. (1936). On the generalised distance in statistics. Proceedings of the National Institute of Sciences of India.
  7. Bhattacharyya, A. (1943). On a measure of divergence between two statistical populations defined by their probability distributions. Bulletin of the Calcutta Mathematical Society.
  8. Explaining Black Box with Visual Exploration of Latent Space. Eurographics, 2022.
  9. A cancer biologist’s primer on machine learning. PMC, 2020.
  10. Latent Space Analysis for Melanoma Prevention. arXiv, 2025.

Traducción Bidireccional entre Imágenes Satelitales y Bocetos Cartográficos mediante U-Net y Pix2Pix

ARTÍCULO DE INVESTIGACIÓN


David José Funes Gabaldón, Marco López Gómez y Guillermo Caminero Araus

Presentación del tema


La cartografía digital y la teledetección satelital son dos fuentes de información geoespacial complementarias que raramente coexisten en el mismo instante temporal. En planificación urbana, un arquitecto puede disponer de mapas vectoriales actualizados pero carecer de cobertura satelital reciente. En simulación de desastres, los modelos de inundación requieren datos raster que en regiones remotas no existen. En gestión de emergencias humanitarias, la cobertura nubosa —que afecta estadísticamente hasta el 60 % de la superficie terrestre en cualquier momento— impide obtener imágenes aéreas cuando más se necesitan.

❓  ¿Puede una red neuronal aprender a traducir una representación geoespacial a otra? ¿Es posible sintetizar automáticamente una imagen satelital fotorrealista desde un boceto cartográfico, o extraer un mapa limpio desde una fotografía aérea?

La respuesta es afirmativa. Exploramos las redes generativas antagónicas condicionales (cGAN) bajo el marco Pix2Pix [1], con generador U-Net [2] y discriminador PatchGAN, entrenadas sobre el dataset Berkeley Maps [1].

Breve estado del arte


Pix2Pix [1] establece la formulación general: cualquier traducción imagen a imagen puede plantearse como un juego minimax entre un generador G y un discriminador D condicionales a la imagen de entrada. El discriminador PatchGAN evalúa parches solapados de 70 × 70 px en lugar de la imagen completa, penalizando localmente la falta de realismo en texturas y bordes.

El generador adopta la arquitectura U-Net [2], un encoder-decoder simétrico con skip connections que propagan información espacial de alta frecuencia directamente desde el encoder al decoder, saltando el cuello de botella. Esto es esencial: sin ellas, los bordes precisos de calles y edificios se pierden en la compresión.

El estado del arte actual está dominado por modelos de difusión latente [6,7] como Map-Sat [8] y Seg2Sat [9], que al ser estocásticos pueden muestrear múltiples realizaciones plausibles para una misma entrada, superando el límite determinista de las cGAN. Nuestro trabajo estudia las capacidades y límites de las cGAN como base sólida previa a ese salto paradigmático.

Análisis matemático


Función de pérdida total del generador:

G=GGAN+λ·L1ℒ_G = ℒ_G^{GAN} + λ · ℒ_{L1}

Adoptamos la variante LS-GAN [5], que sustituye los logaritmos originales por errores cuadráticos, estabilizando el entrenamiento al eliminar gradientes nulos cerca del equilibrio.

Por qué L₁ > L₂. Bajo incertidumbre multimodal, el estimador óptimo en el sentido L₂ es la media condicional —una superposición borrosa de todas las texturas plausibles. Bajo L₁ es la mediana condicional, más robusta a modos extremos y con bordes más nítidos [4]. El componente adversarial aporta el realismo de alta frecuencia que ninguna norma Lₚ puede capturar sola.

Skip connections. La concatenación del mapa de características del encoder en cada nivel del decoder suministra componentes espectrales de alta frecuencia que el cuello de botella habría atenuado. El gradiente fluye directamente hasta las capas superficiales del encoder, acelerando la convergencia y preservando la precisión geométrica a nivel de píxel.

Configuración experimental


HiperparámetroValor
Épocas (LR constante + decay)100 + 100 = 200
Batch size / batch efectivo1 / 4 (gradient accumulation)
Learning rate2 × 10⁻⁴ (Adam, β₁ = 0,5)
Mixed Precision (AMP)Activado (~2,5 GB VRAM)
λ — dirección A→B100
λ — dirección B→A10 (ver Sección 6)

Dataset: Berkeley Maps [1] — 1.096 pares train + 1.098 val. Cada archivo JPEG es de 1200 × 600 px side-by-side (izquierda: satelital; derecha: mapa OSM). Augmentación en train: resize 286 × 286 → random crop 256 × 256 → volteo horizontal aleatorio. En val: resize directo a 256 × 256.

Dirección A→B — Satelital → Mapa (abstracción)


La traducción satelital → mapa es una reducción de entropía: la imagen de entrada tiene entropía informacional muy alta; la salida tiene entropía muy baja. Existe una correspondencia relativamente unívoca entre textura satelital y clase cartográfica, lo que hace esta dirección algorítmicamente más tratable.

Resultados (200 imágenes del val set)

SSIM ↑L1 ↓PSNR ↑FID ↓
0,794 ± 0,0570,026 ± 0,01227,60 ± 3,71 dB279,1

El SSIM de 0,794 supera la referencia de Isola et al. [1] sobre este mismo dataset (SSIM ≈ 0,49), confirmando la efectividad de las mejoras: LS-GAN, Mixed Precision y gradient accumulation.

Los cuerpos de agua son los mejores resultados; los nudos viales los más problemáticos.
Los 3 peores casos corresponden a vías de alta capacidad con color naranja intenso. Los 3 mejores son masas de agua con paleta uniforme.

Dirección B→A — Mapa → Satelital (síntesis)


La dirección inversa es cualitativamente distinta: el modelo recibe una imagen de baja entropía y debe sintetizar textura fotorrealista que no está presente en la entrada. ¿Cómo luce el tejado de un edificio en Brooklyn desde el aire? ¿Cómo varía el asfalto húmedo? La red debe haberlo aprendido de los patrones estadísticos del conjunto de entrenamiento.

El impacto de λ: comparativa v1 vs. v2. Con λ = 100 (v1), la pérdida L₁ domina más del 90 % del gradiente total. El mínimo de esa función es la media estadística de todas las imágenes satelitales —que para ciudades estadounidenses resulta ser una imagen oscura y uniforme (mode collapse). Al reducir a λ = 10 (v2), el componente adversarial recupera peso y el generador aprende a sintetizar texturas reales.

Métricav1 (λ = 100)v2 (λ = 10)Δ
SSIM ↑0,3270,218−0,109
L1 ↓0,1120,135+0,023
PSNR ↑16,64 dB15,15 dB−1,49 dB
FID ↓273,6292,0+18,4
v1 (λ=100, izquierda): las salidas son uniformemente oscuras — mode collapse. v2 (λ=10, derecha): texturas de tejados, calles y vegetación emergen pese a métricas pixel-wise inferiores.
Los cuerpos de agua son los más convincentes; los intercambiadores viales los más confusos.

La paradoja SSIM y el papel del FID


La caída de SSIM de v1 a v2 no es una regresión. Es la manifestación del perception-distortion tradeoff [3]: existe una compensación fundamental entre fidelidad píxel a píxel y calidad perceptual. El modelo v1 generaba imágenes oscuras que coincidían estadísticamente con zonas oscuras del ground truth, obteniendo SSIM artificialmente alto sin calidad visual real.

El perception-distortion tradeoff: v1 puntúa mejor en SSIM pero genera imágenes oscuras sin calidad real. v2 sacrifica fidelidad pixel-wise y gana realismo distribucional.

El FID [10] mide si la distribución de imágenes generadas se aproxima a la distribución real en el espacio de features de InceptionV3 —sin requerir correspondencia píxel a píxel. Es la métrica apropiada para evaluar síntesis generativa. Con n = 200 los valores FID de v1 (273,6) y v2 (292,0) son próximos y caen dentro del margen de varianza estadística (FID requiere n ≥ 10 000 para ser estable). La inspección visual es concluyente donde el FID no puede serlo: v2 genera tejados, calles y vegetación reconocibles; v1 produce oscuridad uniforme.

Resumen completo de métricas.

Análisis cualitativo


A→B — Mejores resultados: zonas costeras y cuerpos de agua. El ground truth es un polígono azul uniforme y la firma espectral del agua es inconfundible. Peores resultados: nudos viales e intercambiadores, donde el modelo falla en la asignación precisa de colores por categoría de vía.

B→A — Mejores resultados: también cuerpos de agua; grandes masas azules en el mapa producen agua oscura convincente en la salida. Peores resultados: los mismos nudos viales, donde la diversidad de texturas posibles es máxima y el generador produce texturas confusas.

Peores casos: zonas industriales con alta diversidad de texturas. Mejores casos: grandes masas de agua azul que el generador traduce en oscuridad marina convincente

Artefactos observados: (1) difuminado de texturas complejas: presión L₁ residual incluso con λ = 10; (2) alucinación de estructuras en B→A: en zonas con poca información en el mapa el modelo rellena con el patrón urbano más frecuente en el dataset.

Distribución de métricas: AtoB domina en SSIM y PSNR. La mayor dispersión de BtoA refleja la mayor dificultad de la síntesis.

Conclusiones


La combinación U-Net + PatchGAN demuestra ser una solución robusta y computacionalmente accesible: los resultados de A→B (SSIM = 0,794) superan la línea base del paper original. El experimento comparativo v1 vs. v2 demuestra empíricamente el perception-distortion tradeoff: reducir λ de 100 a 10 en B→A perjudica las métricas pixel-wise pero elimina el mode collapse y mejora radicalmente la calidad perceptual.

La naturaleza determinista de las cGAN impone un techo fundamental: el generador aprende a mapear una entrada a una única salida óptima y no puede explorar la distribución de salidas plausibles. El salto paradigmático para superar este límite apunta a los modelos de difusión latente [8][9], que combinan la precisión espacial de la cartografía vectorial con la capacidad estocástica de muestrear múltiples realizaciones igualmente válidas.

Enlace a nuestro repositorio:  https://github.com/djfuga/Traduccion-Imagenes-Satelite-PASD

Referencias


[1] Isola et al. Image-to-Image Translation with Conditional Adversarial Networks. CVPR 2017.

[2] Ronneberger et al. U-Net: Convolutional Networks for Biomedical Image Segmentation. MICCAI 2015.

[3] Blau & Michaeli. The Perception-Distortion Tradeoff. CVPR 2018.

[4] Zhao et al. Loss Functions for Image Restora, 2017tion with Neural Networks. IEEE TCI 2017.

[5] Mao et al. Least Squares Generative Adversarial Networks. ICCV 2017.

[6] Ho et al. Denoising Diffusion Probabilistic Models. NeurIPS 2020.

[7] Rombach et al. High-Resolution Image Synthesis with Latent Diffusion Models. CVPR 2022.

[8] Espinosa-Aranda et al. Map-Sat. 2023.

[9] Gres. Seg2Sat. 2023.

[10] Heusel et al. GANs Trained by a Two Time-Scale Update Rule Converge to a Local Nash Equilibrium. ML 2017

Self-Supervised Learning en Neuroimagen: Detección de Gliomas mediante Aprendizaje Contrastivo sobre BRATS

Javier Saguar · Iria Lozano · Alejandro Cuevas — PASD, UPM

1. Introducción

El diagnóstico de tumores cerebrales mediante resonancia magnética (RM) es una tarea clínica de alta complejidad que exige interpretar simultáneamente múltiples secuencias de imagen. Los gliomas, el tipo de tumor cerebral primario más frecuente, presentan subregiones con morfología e intensidad de señal muy distintas según la modalidad empleada. Sin embargo, el etiquetado manual por parte de radiólogos expertos es costoso, lento y escaso, lo que limita la disponibilidad de datos etiquetados para entrenar modelos supervisados.

El aprendizaje contrastivo ofrece una solución natural: aprender representaciones ricas del espacio latente usando únicamente datos no etiquetados, para luego transferirlas a tareas clínicas con muy pocos ejemplos supervisados. La clave está en que en lugar de decirle al modelo qué es cada imagen, le enseñamos qué imágenes son similares entre sí.

2. Estado del arte

El aprendizaje contrastivo fue formalizado por Chen et al. en SimCLR [1], demostrando que maximizar la similitud entre vistas aumentadas del mismo dato —y minimizarla entre datos distintos— permite aprender representaciones de calidad comparable a métodos supervisados. Posteriormente, He et al. propusieron MoCo [2], introduciendo una cola de memoria que hace el entrenamiento más eficiente con batches pequeños. Más recientemente, VICReg [3] eliminó la necesidad de pares negativos mediante regularización de varianza, invarianza y covarianza.

En imagen médica, Azizi et al. [8] demostraron que modelos preentrenados con aprendizaje autosupervisado superan a los entrenados supervisadamente en clasificación médica con datos limitados. Chaitanya et al. [9] extendieron el aprendizaje contrastivo a segmentación médica con anotaciones parciales. El dataset BRATS [4][5] se ha consolidado como benchmark estándar para segmentación y clasificación de gliomas, con cuatro modalidades complementarias que capturan distintas propiedades del tejido tumoral.

3. Fundamentos matemáticos

1. Normalización Z-score

Para la estandarización de datos, aplicamos el z-score canal a canal sobre cada corte axial. Dado un valor individual x:

x^=xμσ\hat{x} = \frac{x – \mu}{\sigma}

(1) Donde µ es la media del canal, σ su desviación estándar y la puntuación estándar x

Esta transformación garantiza que cada modalidad (FLAIR, T1w, T1gd, T2w) contribuya
por igual al aprendizaje, independientemente de su rango de intensidad original.

2. Similitud coseno

Para medir el parecido entre representaciones en el espacio latente usamos la similitud coseno, que es robusta frente a cambios de brillo o contraste propios de la RM:

sim(u,v)=uvuv\mathrm{sim}(u,v)=\frac{u^\top v}{\|u\| \cdot \|v\|}

(2) A diferencia de la distancia euclídea, la similitud coseno se centra únicamente en la dirección del vector, ignorando su magnitud.

3. NT-Xent Loss

Para el pre-entrenamiento, implementamos la función de pérdida NT-Xent (Normalized Temperature-scaled Cross Entropy). Dado un par positivo de representaciones (zi, zj) provenientes de la misma imagen, la pérdida se define:

li,j=logexp(sim(zi,zj)/τ)k=12N𝟏[ki]exp(sim(zi,zk)/τ)l_{i,j} = -\log \frac{ \exp\left(\mathrm{sim}(z_i,z_j)/\tau\right) }{ \sum_{k=1}^{2N} \mathbf{1}_{[k \ne i]} \exp\left(\mathrm{sim}(z_i,z_k)/\tau\right) }

(3) Donde:  

–        (zi, zj) Son los vectores de representación (embeddings) de dos versiones aumentadas de la misma imagen (par positivo).

–        donde τ = 0,5 es el parámetro de temperatura y N el tamaño de batch. La temperatura controla la “dureza” de la distribución: valores bajos hacen el entrenamiento más selectivo, penalizando más los negativos difíciles.

4. Coeficiente de silueta

Para evaluar la calidad del clustering en el espacio latente sin usar etiquetas, empleamos el coeficiente de silueta. Dado un punto i:

s(i)=b(i)a(i)max{a(i),b(i)}s(i)=\frac{b(i)-a(i)}{\max\{a(i),\, b(i)\}}


(4) Donde a(i) es la distancia media entre i y los demás puntos de su mismo cluster (cohesión), y b(i) la distancia media mínima al cluster más cercano (separación). Valores próximos a 1 indican clusters bien separados.

Durante el preentrenamiento contrastivo el modelo aprende sin etiquetas. El coeficiente de silueta es la única forma de evaluar si el encoder ha aprendido estructura discriminativa de forma no supervisada: si los cortes con y sin tumor forman grupos naturalmente separados en el espacio latente, el aprendizaje contrastivo ha sido efectivo.

4. Materiales

1. Dataset BRATS

El dataset BRATS (Brain Tumour Segmentation Challenge) [4, 5] contiene 484 pacientes con gliomas en formato NIfTI, con volúmenes de dimensiones 240 × 240 ×155 vóxeles y cuatro modalidades de RM por paciente:

FLAIR: elimina la señal del líquido cefalorraquídeo normal, resaltando el edema
peritumoral.
T1w: proporciona el mejor contraste anatómico de referencia.
T1gd: resalta el tumor activo mediante contraste con gadolinio.
T2w: destaca tejidos con alto contenido de agua (edema, necrosis).

Las 4 modalidades del primer paciente
FLAIR con máscara de segmentación superpuesta

Las máscaras de segmentación etiquetan cuatro regiones: fondo (label 0), edema peritumoral (label 1), tumor no realzado (label 2) y tumor realzado (label 3). El dataset es de acceso abierto a través del Medical Segmentation Decathlon1.
Tras el preprocesado se obtuvieron 66.517 cortes 2D válidos con distribución prácticamente equilibrada: 50.7 % con tumor y 49.3 % sin tumor.

2. Entorno de desarrollo

Cuadro 1: Entorno de desarrollo empleado.

5. Desarrollo

El pipeline se estructura en dos etapas bien diferenciadas: preentrenamiento contrastivo autosupervisado y fine-tuning supervisado.

Etapa 1 — Preentrenamiento contrastivo (SimCLR)

Se extrajeron cortes axiales 2D de cada volumen, descartando los vacíos (valor máximo < 10-5) y aplicando el siguiente preprocesado por canal: clipping al percentil 99.5, normalización z-score y redimensionado a 128 × 128 píxeles.

Adaptamos ResNet-50 preentrenada en ImageNet (clasificación supervisada de 1000
clases de objetos — no un encoder contrastivo de origen) para aceptar 4 canales de entrada, inicializando el canal adicional con la media de los tres originales para preservar los pesos preentrenados. Se eliminó la capa de clasificación final y se añadió una projection head MLP (2048 → 512 → 128).

Para cada corte se generaron dos vistas aumentadas aplicando transformaciones estocásticas independientes: flips horizontal y vertical, rotación aleatoria ±15°, recorte aleatorio (escala 80–100 %) y blur gaussiano. La NT-Xent Loss con temperatura τ = 0,5 forzó al encoder a aprender representaciones similares para vistas del mismo corte y distintas para cortes diferentes, sin usar ninguna etiqueta.

Configuración de entrenamiento: 200 épocas, Adam (lr = 10-3, weight_decay = 10-4),
CosineAnnealingLR (Tmax = 200). Checkpoints guardados cada 10 épocas.

Etapa 2 — Fine-tuning para clasificación

Sobre el encoder preentrenado se añadió una cabeza de clasificación ligera (2048 → 256 → 2, BatchNorm, ReLU, Dropout 0.3). El entrenamiento se realizó en dos fases:

1. Encoder congelado: 80 épocas, lr = 3×10-4, CosineAnnealingLR. Solo se actualizan
los 525.570 parámetros de la cabeza.

2. Encoder parcialmente descongelado: layer3 y layer4 de ResNet-50, 80 épocas
adicionales, lr = 10-4 con CosineAnnealingLR.

6. Resultados

1. Entrenamiento contrastivo

Con 200 épocas sobre 484 pacientes la loss de entrenamiento alcanza 2.8755 (val loss: 3.3574),con una brecha train/val de 0.48 coherente con un split correcto por paciente. La curva de entrenamiento muestra convergencia sostenida a partir de la época 130, cuando el schedulercoseno reduce suficientemente el learning rate.

2. Efecto del preentrenamiento contrastivo

La comparativa de espacios latentes entre ResNet-50 original (silueta: 0.20) y el encoder
SimCLR (silueta: 0.22) evidencia el valor del preentrenamiento contrastivo: la red reorganiza sus representaciones para capturar morfología cerebral en lugar de características de objetos de ImageNet, mejorando la separación emergente entre cortes con y sin tumor.

3. Clasificación final

El clasificador obtuvo AUC-ROC 0.9246 con solo 20 pacientes etiquetados, que como se aprecia es mayor al entrenado con 484 pacientes. La validación
estadística con 5 runs y selección aleatoria de pacientes confirma la robustez del método para todo tipo de muestras.

4. Comparativa con métodos supervisados

Con 20 pacientes, SimCLR es el mejor método, superando a todos los supervisados sin
haber usado ninguna etiqueta durante el preentrenamiento. Con 484 pacientes los métodos supervisados ganan, lo que define el escenario óptimo de cada enfoque.

Cuadro 2: Comparativa AUC-ROC entre SimCLR y métodos supervisados con 20 y 484
pacientes.

7. Discusión

Los resultados demuestran la viabilidad del aprendizaje contrastivo para detectar biomarcadores visuales en RM cerebral multimodal y, más importante, definen con precisión cuándo usarlo.

SimCLR es el método óptimo con datos escasos. Con 20 pacientes etiquetados obtiene
AUC 0.93, superando a ResNet supervisada (0.92) y CNN desde cero (0.93) que necesitan todas las etiquetas. En el contexto clínico real, donde etiquetar volúmenes NIfTI requiere radiólogos especializados y horas de trabajo por caso, esta ventaja es decisiva.

Con suficientes datos, la supervisión directa gana. Con 484 pacientes la CNN desde
cero alcanza AUC 0.98 frente al 0.89 de SimCLR. Resulta llamativo que la CNN sin preentrenamiento supere a ResNet supervisada: una posible explicación es que los sesgos de ImageNet dificultan la adaptación al dominio médico, mientras que la CNN aprende libremente la morfología cerebral.

Análisis de cortes similares. El experimento con cortes centrales (Z=60–100) reveló
un resultado contraintuitivo: filtrar los cortes más “informativos” empeora el AUC (0,89 → 0,78) debido al desbalance extremo resultante (86 % con tumor). Esto confirma que la heterogeneidad del dataset completo, aunque añade dificultad, es metodológicamente necesaria para un entrenamiento generalizable.

Como trabajo futuro: VICReg [3] o BYOL como alternativas más estables, ViT [7] para
capturar dependencias globales, aumentaciones específicas para RM, y segmentación con cabeza U-Net sobre el encoder preentrenado.

8. Conclusiones

El aprendizaje contrastivo (SimCLR) es el método óptimo para la detección de biomarcadores en RM cerebral cuando los datos etiquetados son escasos: con 20 pacientes obtiene AUC 0.93, superando a todos los métodos supervisados. Con datos abundantes (484 pacientes), la supervisión directa resulta más eficiente. La validación estadística con 5 runs (AUC = 0,9068± 0,0276) confirma la robustez del método. El split correcto por paciente es imprescindible para evitar data leakage y obtener estimaciones fiables de generalización.

Referencias

[1] Chen, T., Kornblith, S., Norouzi, M., & Hinton, G. (2020). A Simple Framework for
Contrastive Learning of Visual Representations. ICML 2020. https://arxiv.org/abs/2002.05709
[2] He, K., Fan, H., Wu, Y., Xie, S., & Girshick, R. (2020). Momentum Contrast for
Unsupervised Visual Representation Learning. CVPR 2020. https://arxiv.org/abs/1911.05722
[3] Bardes, A., Ponce, J., & LeCun, Y. (2022). VICReg: Variance-Invariance-Covariance
Regularization for Self-Supervised Learning. ICLR 2022. https://arxiv.org/abs/2105.04906
[4] Menze, B.H. et al. (2015). The Multimodal Brain Tumor Image Segmentation Benchmark (BRATS). IEEE Transactions on Medical Imaging. https://doi.org/10.1109/TMI.2014.2377694
[5] Bakas, S. et al. (2017). Advancing The Cancer Genome Atlas glioma MRI collections with expert segmentation labels. Scientific Data. https://doi.org/10.1038/sdata.2017.117
[6] He, K., Zhang, X., Ren, S., & Sun, J. (2016). Deep Residual Learning for Image Recogni
tion. CVPR 2016. https://arxiv.org/abs/1512.03385
[7] Dosovitskiy, A. et al. (2021). An Image is Worth 16×16 Words: Transformers for Image
Recognition at Scale. ICLR 2021. https://arxiv.org/abs/2010.11929
[8] Azizi, S. et al. (2021). Big Self-Supervised Models Advance Medical Image Classification. ICCV 2021. https://arxiv.org/abs/2101.05224
[9] Chaitanya, K. et al. (2020). Contrastive Learning of Global and Local Features for Medical Image Segmentation. NeurIPS 2020. https://arxiv.org/abs/2006.10511
[10] Van der Maaten, L., & Hinton, G. (2008). Visualizing Data using t-SNE. Journal of
Machine Learning Research. https://jmlr.org/papers/v9/vandermaaten08a.html

Materiales

Dataset BRATS: http://medicaldecathlon.com/
Material del proyecto en (Google Drive): [enlace]

SimCLR (Google Research): https://github.com/google-research/simclr
solo-learn (PyTorch): https://github.com/vturrisi/solo-learn
PyTorch: https://pytorch.org/
nibabel: https://nipy.org/nibabel/