¿Qué es el self-supervised learning?

Enrique Blanco    22 abril, 2020

Self-supervised learning (o aprendizaje auto-supervisado en castellano) es un término que se refiere a un tipo de aprendizaje no supervisado enmarcado dentro de un problema de aprendizaje supervisado. Es una técnica de aprendizaje relativamente reciente donde los datos de entrenamiento se etiquetan de forma autónoma. Los datos se etiquetan encontrando y explotando las relaciones (o correlaciones) entre diferentes inputs al modelo. Este tipo de aprendizaje está ganando cada vez más visibilidad en investigación en Deep Learning.

Este artículo tiene como finalidad hacer una breve presentación del self-supervised learning y cómo éste está dejando su impronta en el Machine Learning.

Los distintos tipos de aprendizaje

En ocasiones, explicar la diferencia entre el aprendizaje no supervisado, semi-supervisado y totalmente supervisado puede resultar arduo, por no hablar del aprendizaje reforzado. Os recordamos, por si necesitáis poneros en contexto, que en el blog se ha escrito sobre los dos principales paradigmas de aprendizaje que nos podemos encontrar en el mundo del Machine Learning. Sobre aprendizaje semi-supervisado también podéis consultar este post.

No debemos confundir self-supervised learning con el aprendizaje no supervisado. Tal y como declaraba Yan LeCun el año pasado a través de Twitter:

Ahora lo llamo “aprendizaje auto-supervisado”, porque “no supervisado” es un término que se presta a confusión.

Yan LeCun. 30 de abril de 2019. Twitter.

En self-supervised learning, el sistema aprende a predecir parte de su entrada a partir de otras partes de su entrada. En otras palabras, una parte de la entrada neuronal a una red se utiliza como elemento de supervisión para un predictor alimentado con la parte restante del input.

Este tipo de aprendizaje utiliza muchas más señales de supervisión que el aprendizaje supervisado, y mucho más que el aprendizaje reforzado. Es por eso que llamarlo “sin supervisión” es totalmente engañoso.

Se puede aprender más sobre la estructura del mundo a través del aprendizaje auto-supervisado que de los otros dos paradigmas. La principal razón: los datos son ilimitados y el feedback proporcionado por cada ejemplo es enorme.

El paradigma del aprendizaje supervisado

El aprendizaje supervisado es un paradigma arduo, que requiere recolectar cantidades masivas de datos, limpiarlos, llevar a cabo un etiquetado manual, entrenar y perfeccionar un modelo diseñado específicamente para el caso de uso de clasificación o regresión que desee resolver, y luego usarlo para predecir etiquetas para datos desconocidos. Por ejemplo, con imágenes, recopilamos un conjunto de datos de imágenes grandes, etiquetamos los objetos en imágenes manualmente, entrenamos la red y luego la usamos para un caso de uso específico.

Este tipo de aprendizaje, si bien es fácil de entender, dista bastante de la manera de aprender que tendría, por ejemplo, una persona. Aprendemos principalmente de manera no supervisada y reforzada, utilizando la curiosidad y el resultado de prueba-error. También aprendemos de manera supervisada, pero podemos aprender de muchas menos muestras, ya que si en algo se distingue el ser humano es en que es bastante bueno a la hora de generalizar y abstraer información.

Self-supervised learning

Self-supervised learning guarda similitudes con el aprendizaje no supervisado porque el sistema aprende sin usar etiquetas proporcionadas explícitamente como entrada. Pero también difiere de éste porque no estamos aprendiendo la estructura inherente de los datos. El aprendizaje auto-supervisado, a diferencia del aprendizaje no supervisado, no se centra en la agrupación, la reducción de dimensionalidad, los motores de recomendación, la estimación de densidad o la detección de anomalías.

Una aplicación al PLN: BERT

El aprendizaje auto-supervisado ha tenido un enorme éxito en el procesamiento del lenguaje natural. Por ejemplo, el modelo BERT de Google y técnicas similares producen excelentes representaciones de texto.

Fig. 2. A great summary of how self-supervised learning tasks can be constructed (Image source: LeCun’s talk)
Fig. 2. A great summary of how self-supervised learning tasks can be constructed (Image source: LeCun’s talk)

BERT es un ejemplo claro de caso satisfactorio de aprendizaje auto-supervisado. Se le puede mostrar una secuencia de palabras en la entrada, se oculta un 15% de las palabras y se le pide al algoritmo que prediga las palabras que faltan (o una distribución de palabras). Este es un ejemplo de Autoencoder enmascarado, en sí mismo un caso especial de Denoising Autoencoder.

Esta terminología referente a redes profundas ya la hemos tratado en este blog (ver artículo) sobre cómo los Autoencoders funcionan muy bien dentro de un paradigma no supervisado.

Fig. 3. Illustration of context encoder. (Image source: Pathak, et al., 2016)
Fig. 3. Illustration of context encoder. (Image source: Pathak, et al., 2016)

Pero el texto es un espacio discreto en el que las distribuciones de probabilidad son fáciles de representar. Una persona es capaz de determinar el significado semántico de una palabra a partir del contexto cuando aparece cerca de otra palabra. Por ejemplo, el adjetivo “fría” da a entender algo diferente si se pone detrás del sustantivo “persona” o detrás del sustantivo “cerveza”. Del mismo modo, en Machine Learning, el algoritmo Word2Vec predice el contexto semántico de una palabra en función de las palabras circundantes. La investigación detrás self-supervised learning sigue el mismo principio de identificación automática, extracción y uso de señales de supervisión.

Aplicaciones a otros campos

Hasta ahora, enfoques similares también han funcionado para imágenes o videos a pesar de la dificultad a la hora de representar distribuciones en espacios continuos de alta dimensión, como muestra su reciente incorporación como soporte a problemas relativos al mundo de la robótica y del aprendizaje reforzado. En este enlace y en este otro se puede consultar cómo los algoritmos auto-supervisados se pueden utilizar para sacarle el máximo provecho a datos sin etiquetar.

Aprendizaje reforzado profundo (Deep Reinforcement Learning)

El aprendizaje reforzado profundo (Deep Reinforcement Learning) ha mostrado resultados notables en juegos y simulación. En los últimos años, el aprendizaje por refuerzo ha conquistado muchos juegos que anteriormente se consideraban prohibidos para la inteligencia artificial. Los programas de IA ya han barrido a los campeones mundiales en StarCraft 2, DOTA y el famoso juego de mesa chino Go.

Pero la forma en que estos programas de IA aprenden a resolver problemas es drásticamente diferente de la de los humanos. Básicamente, un agente comienza sin ningún tipo de “conocimiento” del entorno y sólo se le proporciona un conjunto básico de acciones que puede realizar en su entorno. Luego, la IA se queda sola para aprender a través de prueba y error cómo generar la mayor cantidad de recompensas (por ejemplo, evitar perder una vida o maximizar la puntuación de un intento). Y aquí es donde el self-supervised learning está demostrando que puede ayudar también a los problemas que tienen cabida dentro del aprendizaje reforzados.

Este modelo funciona cuando el espacio del problema es simple y tiene suficiente potencia de cómputo para ejecutar tantas sesiones de prueba y error como sea posible. En la mayoría de los casos, a los agentes de aprendizaje reforzado les lleva una cantidad elevada de intentos para dominar un entorno. Esto es computacionalmente costoso y sólo gigantes como Google se pueden permitir realizar investigaciones de alta calidad al respecto. En el Departamento de Ideas Locas ya profundizamos en el Aprendizaje Reforzado Profundo en esta serie de artículos y webinars.

Para mantenerte al día con LUCA visita nuestra página web,  suscríbete a LUCA Data Speaks o síguenos en TwitterLinkedIn YouTube.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *