Glosario

Aprendizaje contrastivo

Descubre el poder del aprendizaje contrastivo, una técnica autosupervisada para representaciones robustas de datos con un mínimo de datos etiquetados.

Entrena los modelos YOLO simplemente
con Ultralytics HUB

Saber más

El aprendizaje contrastivo es una poderosa técnica dentro del aprendizaje automático (AM), especialmente destacada en el aprendizaje autosupervisado (SSL). En lugar de depender en gran medida de datos meticulosamente etiquetados, aprende representaciones significativas enseñando a un modelo a distinguir entre puntos de datos similares y disímiles. La idea central es sencilla: acercar las representaciones de ejemplos "similares" en un espacio de incrustación, y alejar las representaciones de ejemplos "disímiles". Este enfoque permite a los modelos aprender características ricas a partir de grandes cantidades de datos sin etiquetar, que luego pueden adaptarse a diversas tareas posteriores mediante un ajuste fino.

Cómo funciona el aprendizaje contrastivo

El proceso suele implicar estos pasos:

  1. Aumento de datos: Empieza con un punto de datos sin etiquetar (por ejemplo, una imagen). Crea dos o más versiones aumentadas de este punto de datos. Estas versiones aumentadas forman un "par positivo" porque proceden de la misma fuente y deben considerarse similares. Las técnicas habituales de aumento de datos incluyen el recorte aleatorio, la alteración del color, la rotación o la adición de ruido.
  2. Muestreo Negativo: Selecciona otros puntos de datos del conjunto de datos (o del lote actual) que sean diferentes del punto de datos original. Éstos forman "pares negativos" con los aumentos del punto de datos original.
  3. Codificación: Pasa las muestras positivas y negativas a través de una red neuronal codificadora (NN), a menudo una Red Neuronal Convolucional (CNN ) para imágenes o un Transformador para texto o imágenes(Transformador de Visión (ViT)). Esta red transforma los datos de entrada en representaciones de menor dimensión, conocidas como incrustaciones.
  4. Cálculo de pérdidas: Aplica una función de pérdida contrastiva, como InfoNCE (Estimación Contrastiva de Ruido) o Pérdida de Tripletes. Esta función calcula una puntuación basada en las distancias entre las incrustaciones. Favorece que las incrustaciones de los pares positivos estén próximas (distancia baja/similitud alta) y que las incrustaciones de los pares negativos estén alejadas (distancia alta/similitud baja).
  5. Optimización: Utiliza algoritmos de optimización como el Descenso Gradiente Estocástico (SGD) o Adam para actualizar los pesos del codificador en función de la pérdida calculada, mejorando iterativamente la calidad de las representaciones aprendidas mediante retropropagación.

Aprendizaje contrastivo frente a términos relacionados

El aprendizaje contrastivo difiere de otros paradigmas de ML:

  • Aprendizaje supervisado: Requiere etiquetas explícitas para cada punto de datos (por ejemplo, "gato", "perro"). El aprendizaje contrastivo utiliza principalmente datos sin etiquetar, generando su propia señal supervisora mediante el emparejamiento positivo/negativo.
  • Aprendizaje no supervisado (Agrupación): Métodos como K-Means agrupan datos basándose en estructuras inherentes. El aprendizaje contrastivo entrena explícitamente un modelo para crear un espacio de representación donde la similitud se define por los pares positivos/negativos, centrándose en el aprendizaje de características discriminativas.
  • Modelos Generativos: Los modelos como los GAN o los Modelos de Difusión aprenden a generar nuevos datos parecidos a los de entrenamiento. El aprendizaje contrastivo se centra en aprender representaciones discriminativas en lugar de generar datos.

Aplicaciones en el mundo real

El aprendizaje contrastivo destaca en el aprendizaje de representaciones que se transfieren bien a otras tareas:

  • Preentrenamiento de visión por ordenador: Los modelos como SimCLR y MoCo se preentrenan en grandes conjuntos de datos de imágenes sin etiquetar (como ImageNet). Las características aprendidas aumentan significativamente el rendimiento cuando el modelo se ajusta para tareas como la clasificación de imágenes, la detección de objetos mediante modelos como Ultralytics YOLO11o la segmentación semántica. Por ejemplo, un modelo preentrenado con aprendizaje contrastivo en imágenes generales puede afinarse eficazmente para tareas especializadas como el análisis de imágenes médicas o el análisis de imágenes de satélite con menos datos etiquetados.
  • Procesamiento del Lenguaje Natural (PLN): Se utiliza para aprender incrustaciones de frases o documentos de alta calidad. Por ejemplo, los modelos se pueden entrenar para reconocer que dos frases redactadas de forma diferente que describen el mismo concepto (par positivo) deberían tener incrustaciones similares, mientras que las frases con significados no relacionados (par negativo) deberían tener incrustaciones disímiles. Esto es útil para la búsqueda semántica, la respuesta a preguntas y la agrupación de textos. El modelo CLIP utiliza especialmente el aprendizaje contrastivo para unir las representaciones de texto e imagen.
  • Sistemas de recomendación: Aprendizaje de incrustaciones para usuarios y elementos basados en patrones de interacción.
  • Detección de anomalías: Identificación de puntos de datos inusuales mediante el aprendizaje de representaciones en las que los datos normales se agrupan estrechamente, haciendo que los valores atípicos sean más fáciles de detectar.

Beneficios y retos

Ventajas:

  • Menor dependencia del etiquetado: Aprovecha grandes cantidades de datos sin etiquetar, disminuyendo la necesidad de etiquetar datos, lo que resulta caro y lleva mucho tiempo.
  • Representaciones robustas: A menudo aprende características que son más invariables a las variaciones molestas en comparación con los métodos puramente supervisados.
  • Preentrenamiento eficaz: Proporciona excelentes puntos de partida para el ajuste fino en tareas específicas posteriores, lo que a menudo conduce a un mejor rendimiento, especialmente con datos etiquetados limitados(aprendizaje de pocos disparos).

Desafíos:

  • Selección de muestras negativas: El rendimiento puede ser sensible al número y la calidad de las muestras negativas. Elegir muestras negativas informativas es crucial, pero supone un reto.
  • Estrategia de aumento: La elección de las técnicas de aumento de datos influye mucho en las invarianzas que aprende el modelo.
  • Coste computacional: A menudo requiere grandes tamaños de lote y recursos computacionales significativos(GPU) para un entrenamiento eficaz, aunque se está investigando para mitigarlo. Plataformas como Ultralytics HUB pueden facilitar la gestión y el entrenamiento de estos modelos. Marcos como PyTorch(sitio oficial) y TensorFlow(sitio oficial) proporcionan herramientas para aplicar métodos de aprendizaje contrastivo.
Leer todo