Saltar al contenido

Entendiendo el aprendizaje contrastivo

septiembre 23, 2021
1FgRWWSK34HyMkou1COYiVg

Entendiendo el aprendizaje contrastivo

Aprenda a aprender sin etiquetas mediante el aprendizaje auto supervisado.

Ekin Tiu

7 de ene·8 min de lectura

¿Qué es el aprendizaje contrastivo?

Aprendizaje contrastivo es una técnica de aprendizaje automático que se utiliza para aprender los características generales de un conjunto de datos sin etiquetas enseñando al modelo qué puntos de datos son similares o diferente.

Comencemos con un ejemplo simplista. Imagina que eres un bebé recién nacido que está tratando de darle sentido al mundo. En casa, supongamos que tiene dos gatos y un perro.

Aunque nadie te dice que son ‘gatos’ y ‘perros’, es posible que aún se dé cuenta de que los dos gatos se ven similares en comparación con el perro.

1*FgRWWSK34HyMkou1COYiVg

Simplemente reconociendo las similitudes y diferencias entre nuestros amigos peludos, nuestro cerebro puede aprender las características de alto nivel de los objetos de nuestro mundo.

Por ejemplo, nosotros metroPuedo reconocer inconscientemente que los dos gatos tienen orejas puntiagudas, mientras que el perro tiene orejas caídas. O podemos contraste (pista Pista) la nariz que sobresale del perro a la cara plana de los gatos.

En esencia, aprendizaje contrastivo permite que nuestro modelo de aprendizaje automático haga lo mismo. Mira qué pares de puntos de datos son «similar» y diferente» Para aprender características de nivel superior sobre los datos, antes de incluso teniendo una tarea como clasificación o segmentación.

¿Por qué es esto tan poderoso?

Es porque podemos entrenar el modelo para aprender mucho sobre nuestros datos sin anotaciones ni etiquetas, de ahí el término, Aprendizaje AUTO-supervisado.

0*lQZ5z7Mcg8i5veml

En la mayoría de los escenarios del mundo real, no tener etiquetas para cada imagen. Tomemos las imágenes médicas, por ejemplo. Para crear etiquetas, los profesionales tienen que pasar innumerables horas mirando imágenes para clasificarlas, segmentarlas manualmente, etc.

Con el aprendizaje contrastivo, se puede mejorar significativamente el rendimiento del modelo incluso cuando solo se etiqueta una fracción del conjunto de datos.

Ahora que entendemos qué es el aprendizaje contrastivo y por qué es útil, veamos cómo el aprendizaje contrastivo funciona.

¿Cómo funciona el aprendizaje contrastado?

En este artículo, me centro en SimCLRv2, uno de los enfoques de aprendizaje contrastivo de última generación propuestos por el equipo de Google Brain. Para otros métodos de aprendizaje contrastivo como el MoCo de Facebook, recomiendo revisar el siguiente artículo.

Un marco para el aprendizaje autónomo contrastante y el diseño de un nuevo enfoque

Formulamos un marco para caracterizar enfoques de aprendizaje auto-supervisados ​​contrastivos y analizamos AMDIM, CPC …

haciadatascience.com

Afortunadamente, SimCLRv2 es muy intuitivo.

Todo el proceso se puede describir de forma concisa en tres pasos básicos:

  • Para cada imagen de nuestro conjunto de datos, podemos realizar dos combinaciones de aumento (es decir, recortar + cambiar el tamaño + cambiar el color, cambiar el tamaño + cambiar el color, recortar + cambiar el color, etc.). Queremos que el modelo aprenda que estas dos imágenes son «similares» ya que son esencialmente versiones diferentes de la misma imagen.
1*XkT9Zt6YcZaGia2wr5peYQ

  • Para hacerlo, podemos introducir estas dos imágenes en nuestro modelo de aprendizaje profundo (Big-CNN como ResNet) para crear representaciones vectoriales para cada imagen. El objetivo es entrenar el modelo para generar representaciones similares para imágenes similares.

  • Por último, intentamos maximizar la similitud de las dos representaciones vectoriales minimizando una función de pérdida contrastiva.
1*moBsjygupjwiXpSeemJabQ

Con el tiempo, el modelo aprenderá que dos imágenes de gatos deben tener imágenes similares. representaciones y que la representación de un gato debería ser diferente a la de un perro.

Esto implica que el modelo es capaz de distinguir entre diferentes tipos de imágenes ¡sin siquiera saber cuáles son las imágenes!

Podemos analizar este enfoque de aprendizaje contrastivo aún más dividiéndolo en tres pasos principales: aumento, codificación y minimización de pérdidas de datos.

1) Aumento de datos

0*EKNhK7zQ v6 92p

Realizamos cualquier combinación de los siguientes aumentos de forma aleatoria: recorte, cambio de tamaño, distorsión de color, escala de grises. Nosotros hacemos esto dos veces por imagen en nuestro lote, para crear un par positivo de dos imágenes aumentadas.

2) Codificación

Luego usamos nuestra red neuronal Big-CNN, que podemos considerar simplemente como una función, h = f (x), donde ‘x’ es una de nuestras imágenes aumentadas, para codificar tanto de nuestras imágenes como representaciones vectoriales.

1*nm4Otx UNhfNteR7geDPdg

La salida de CNN luego se ingresa en un conjunto de capas densas llamado cabezal de proyección, z = g (h) para transformar los datos en otro espacio. Se ha demostrado empíricamente que este paso adicional mejora el rendimiento. [2].

Si no está familiarizado con el espacio latente y las representaciones vectoriales, le recomiendo que lea mi artículo que explica intuitivamente este concepto antes de continuar.

Comprender el espacio latente en el aprendizaje automático

Aprenda un concepto fundamental, aunque a menudo ‘oculto’, de aprendizaje profundo

haciadatascience.com

Al comprimir nuestras imágenes en una representación de espacio latente, el modelo es capaz de aprender las características de alto nivel de las imágenes.

De hecho, a medida que continuamos entrenando el modelo para maximizar la similitud vectorial entre imágenes similares, podemos imaginar que el modelo está aprendiendo racimos de puntos de datos similares en el espacio latente.

Por ejemplo, las representaciones de gatos estarán más juntas, pero más alejadas de las representaciones de perros, ya que esto es lo que estamos entrenando al modelo para que aprenda.

3) Minimización de pérdidas de representaciones

Ahora que tenemos dos vectores, z, necesitamos una forma de cuantificar la similitud entre ellos.

0*sItRnPt79wDZ gvf

Como estamos comparando dos vectores, una elección natural es similitud de coseno, que se basa en el ángulo entre los dos vectores en el espacio.

1*9eh0yqIAHlDMoAAjQT85rA

Es lógico que cuando los vectores son más cerca (ángulo más pequeño entre ellos) juntos en el espacio, son más similares. Por lo tanto, si tomamos el coseno (ángulo entre los dos vectores) como métrica, obtendremos una alta similitud cuando el ángulo esté cerca de 0, y una baja similitud en caso contrario, que es exactamente lo que queremos.

También necesitamos un función de pérdida que podemos minimizar. Una opción es NT-Xent (pérdida de entropía cruzada normalizada a escala de temperatura).

Primero calculamos el probabilidad que las dos imágenes aumentadas son similares.

0*Y0yyrIzZiNWzEBhi

Observe que el denominador es la suma de e ^ similitud (todos los pares, incluyendo pares negativos). Pares negativos se obtienen creando pares entre nuestras imágenes aumentadas y todas las demás imágenes de nuestro lote.

Por último, envolvemos este valor en un -Iniciar sesión() así que eso minimizando esta función de pérdida corresponde a maximizando la probabilidad de que las dos imágenes aumentadas sean similares.

Para obtener más detalles sobre los matices de SimCLR, recomiendo consultar el siguiente artículo.

El marco ilustrado de SimCLR

En los últimos años, se han propuesto numerosos métodos de aprendizaje auto-supervisados ​​para aprender representaciones de imágenes, cada uno …

amitness.com

SimCLR versión 2

Es útil señalar que desde la publicación original del marco SimCLR, los autores han realizado las siguientes mejoras importantes en la canalización [2]:

  • Modelos ResNet más grandes para el codificador Big-CNN: Res-Net de 152 capas, canales 3 veces más anchos, núcleos selectivos, mecanismo de atención.
  • Más cabezales de proyección – utilice tres capas densas al transformar representaciones intermedias en lugar de dos.

Aplicaciones del aprendizaje contrastivo

Aprendizaje semi-supervisado

Cuando nosotros tienen muy pocas etiquetas, o si es difícil obtener etiquetas para una tarea específica (es decir, anotaciones clínicas), queremos poder utilizar tanto los datos etiquetados y los datos sin etiquetar optimizar el rendimiento y la capacidad de aprendizaje de nuestro modelo. Esta es la definición de aprendizaje semi-supervisado.

Una metodología que está ganando terreno en la literatura es la pre-entrenamiento no supervisado, ajuste fino supervisado, destilación de conocimientos paradigma [2].

0*2G vDh MaHoB8Rjb

En este paradigma, el enfoque de aprendizaje contrastivo auto-supervisado es un paso crucial de ‘preprocesamiento’, que permite al modelo Big CNN (es decir, ResNet-152) aprender primero las características generales de los datos sin etiquetar antes de intentar clasificar las imágenes usando etiquetas limitadas. datos.

El equipo de Google Brain demostró que este enfoque de aprendizaje semi-supervisado es muy eficiente en etiquetas y que los modelos más grandes pueden conducir a mayores mejoras, especialmente para fracciones de baja etiqueta.

0*wpJ VV32P6sG4lFs

Analógico PNL

Es interesante notar que métodos similares de auto-supervisión ya se han utilizado ampliamente en el ámbito del procesamiento del lenguaje natural.

Por ejemplo, Word2Vec, un algoritmo para convertir texto en vectores incrustados, utiliza un enfoque de auto-supervisión similar. En este caso, queremos las palabras que son más cerca el uno del otro en una oración, tener representaciones vectoriales más similares.

Por lo tanto, creamos nuestros ‘pares positivos’ creando pares entre palabras dentro de una ventana. Usamos una técnica llamada muestreo negativo para crear nuestros pares negativos.

Esta publicación contiene una explicación intuitiva y detallada del algoritmo Word2Vec.

El Word2vec ilustrado

Debates: Hacker News (347 puntos, 37 comentarios), Reddit r / MachineLearning (151 puntos, 19 comentarios) Traducciones…

jalammar.github.io

Al igual que SimCLRv2, Word2Vec permite que las palabras ‘similares’ tengan representaciones vectoriales más similares en el espacio latente, y podemos usar estas representaciones aprendidas para tareas posteriores más específicas, como la clasificación de texto.

Conclusiones clave

  • El aprendizaje contrastivo es un autosupervisado, independiente de la tarea técnica de aprendizaje profundo que permite que un modelo aprenda sobre datos, incluso sin etiquetas.
  • El modelo aprende características generales sobre el conjunto de datos aprendiendo qué tipos de imágenes son similares y cuáles son diferentes.
  • SimCLRv2 es un ejemplo de un enfoque de aprendizaje contrastivo que aprende a representar imágenes de manera que imágenes similares tengan representaciones similares, lo que permite que el modelo aprenda a distinguir entre imágenes.
  • los modelo pre-entrenado con una comprensión general de los datos se puede afinado para una tarea específica como la clasificación de imágenes cuando las etiquetas escasean para mejorar significativamente la eficiencia de las etiquetas y potencialmente superar los métodos supervisados.

Espero que este artículo proporcione una intuición clara sobre qué es el aprendizaje contrastivo, cómo funciona el aprendizaje contrastivo y cuándo puede aplicar el aprendizaje contrastivo para sus propios proyectos. ¡El aprendizaje auto-supervisado es realmente asombroso!

Referencias

[1] Islam y col. Detección temprana y clasificación de la retinopatía diabética basada en el aprendizaje profundo mediante imágenes del fondo de ojo de la retina, 2018

[2] Chen y col. Los grandes modelos auto-supervisados ​​son fuertes aprendices semi-supervisados, 2020

close