Unsupervised Domain Adaptation (UDA)
La adaptación de dominio no supervisada adapta un modelo entrenado con datos de origen etiquetados a un nuevo dominio de destino que solo tiene datos sin etiquetar, y reduce así la brecha entre dominios.
La adaptación de dominio no supervisada (UDA) adapta un modelo entrenado con datos etiquetados de un entorno, el dominio de origen, para que funcione en otro entorno, el dominio de destino, del que solo hay datos sin etiquetar. Ambos dominios comparten la misma tarea y las mismas clases, pero sus entradas tienen un aspecto distinto: imágenes sintéticas frente a fotos reales, escáneres de un hospital frente a los de otro, calles de día frente a calles de noche, o un modelo de cámara frente a otro. Los modelos entrenados solo con el dominio de origen suelen perder gran parte de su precisión en el dominio de destino, y la UDA la recupera sin el coste de la anotación de datos en el nuevo dominio. Es una rama del aprendizaje por transferencia, y «no supervisada» se refiere únicamente a la falta de etiquetas del dominio de destino.
Por qué perjudica el cambio de dominio#
Shai Ben-David y sus colegas formularon la teoría estándar del problema en 2010. El error de un clasificador en el dominio de destino está acotado por tres términos: su error en el dominio de origen, una medida de cuánto difieren los dos dominios para la familia de clasificadores y el error del mejor clasificador único para ambos dominios. El entrenamiento habitual con etiquetas del dominio de origen reduce el primer término. La mayoría de los métodos UDA aborda el segundo: aprende características que hacen que las entradas de origen y de destino se parezcan, mientras que el tercer término recuerda que la adaptación falla cuando la relación entre las etiquetas cambia entre dominios.
Enfoques principales#
- Alineación de estadísticas: Alinea estadísticas sencillas de las características de origen y destino. La discrepancia de medias máximas y CORAL, que iguala las covarianzas de las características, añaden una penalización a la pérdida de entrenamiento; AdaBN, propuesta por Yanghao Li y sus colegas en 2016, simplemente vuelve a calcular la media y la varianza de cada capa de normalización por lotes con datos de destino.
- Alineación adversaria: Las redes neuronales adversarias de dominio (DANN), presentadas por Yaroslav Ganin y Victor Lempitsky en 2015, entrenan un clasificador de dominio para distinguir las características de origen de las de destino; una capa de inversión del gradiente empuja al extractor de características a engañarlo.
- Traducción de imágenes: Los modelos generativos, como CycleGAN, cambian el estilo de las imágenes de origen para que parezcan del dominio de destino, de modo que las imágenes de entrenamiento etiquetadas ya se asemejan a las del entorno de despliegue, como ocurre con CyCADA para escenas de conducción.
- Autoentrenamiento: El modelo de origen etiqueta las imágenes de destino, sus predicciones más fiables se convierten en pseud etiquetas y el modelo se vuelve a entrenar con ellas, a menudo con un modelo profesor que se actualiza lentamente para mantener estables las etiquetas.
- Adaptación sin datos de origen y durante la inferencia: SHOT adapta un modelo entrenado sin acceder a los datos de origen, y TENT actualiza solo los parámetros de normalización por lotes durante la inferencia, aumentando la confianza de las predicciones en lotes de prueba.
AdaBN muestra hasta qué punto la brecha entre dominios puede residir en las estadísticas de las capas de normalización por lotes. Este ejemplo de PyTorch entrena una red pequeña con 1.000 dígitos escritos a mano y la evalúa con los dígitos restantes, representados como los captaría una cámara con la imagen desvaída, menos contraste y más brillo:
import torch
from sklearn.datasets import load_digits
from torch import nn
torch.manual_seed(0)
X, y = load_digits(return_X_y=True)
X, y = torch.tensor(X / 16, dtype=torch.float32), torch.tensor(y)
target_x = 0.3 * X[1000:] + 0.6 # target domain: the last 797 digits as a washed-out camera would capture them
# Train on the labeled source domain, the first 1,000 digits
model = nn.Sequential(nn.Linear(64, 64), nn.BatchNorm1d(64), nn.ReLU(), nn.Linear(64, 10))
optimizer = torch.optim.Adam(model.parameters(), lr=1e-2)
for _ in range(200):
optimizer.zero_grad()
nn.functional.cross_entropy(model(X[:1000]), y[:1000]).backward()
optimizer.step()
model.eval()
print(f"Target accuracy before adaptation: {(model(target_x).argmax(1) == y[1000:]).float().mean():.3f}")
# AdaBN: replace the source BatchNorm statistics with those of the unlabeled target images
model[1].reset_running_stats()
model[1].momentum = None # use a plain average over the target batch
model.train()
with torch.no_grad():
model(target_x)
model.eval()
print(f"Target accuracy after adaptation: {(model(target_x).argmax(1) == y[1000:]).float().mean():.3f}")La precisión en los dígitos con cambio de dominio pasa de 0,290 a 0,940 sin una sola etiqueta de destino, cerca del 94 % que el mismo modelo obtiene con esos dígitos antes del cambio. La mejora es tan grande porque un cambio de contraste y brillo se convierte en un desplazamiento y una escala por característica después de la primera capa lineal, justo lo que elimina la renormalización; los cambios de forma o contenido requieren los métodos más potentes anteriores.
Benchmarks y aplicaciones#
Office-31, publicado por Kate Saenko y sus colegas en 2010, contiene 4.110 imágenes de 31 objetos de oficina de tres dominios: fotos de productos de Amazon, imágenes de cámaras web y fotos de cámaras DSLR. VisDA-2017 pide a los modelos entrenados con representaciones 3D sintéticas de 12 categorías de objetos que clasifiquen fotos reales, y GTA5-to-Cityscapes entrena la segmentación semántica con 24.966 fotogramas de un videojuego y la evalúa en calles urbanas reales.
El mismo patrón impulsa aplicaciones prácticas. Los vehículos autónomos complementan las grabaciones de conducción reales con datos sintéticos y representaciones de simuladores; los modelos de análisis de imágenes médicas deben funcionar con equipos de distintos fabricantes y hospitales, y los modelos agrícolas se enfrentan a nuevos campos, variedades de cultivos y estaciones. Los detectores suelen adaptarse mediante autoentrenamiento: la función auto_annotate del paquete Python de Ultralytics ejecuta un detector YOLO26 sobre una carpeta de imágenes sin etiquetar, solicita a Segment Anything Model (SAM) de Meta que procese cada caja detectada y escribe etiquetas de segmentación en formato YOLO, para que un detector entrenado en el dominio de origen pueda generar pseud etiquetas de las imágenes de destino que se revisarán y se usarán para el ajuste fino.
UDA y entornos relacionados#
El ajuste fino supervisado necesita etiquetas del dominio de destino, y el aprendizaje semisupervisado presupone que los datos etiquetados y sin etiquetar proceden de la misma distribución. La generalización de dominio no dispone de datos de destino y, en su lugar, entrena modelos robustos frente a dominios desconocidos con aumento de datos y aleatorización de dominio. La optimización robusta frente a distribuciones prepara el modelo para un conjunto completo de posibles cambios, mientras que la UDA se adapta a un único dominio de destino cuyas imágenes ya ha visto; la supervisión de la deriva de datos indica cuándo un modelo desplegado ha entrado en un nuevo dominio que requiere adaptación.










