Hablemos de Zero-Shot Learning

De unos pocos a ningún ejemplo de entrenamiento para predecir correctamente

--

Proceso de aprendizaje normal vs. Few-Shot vs. One-Shot vs. Zero-Shot

Este artículo fue publicado originalmente como parte del número VIII de la newsletter Alquim(IA). Esta newsletter trata sobre noticias y tecnologías vinculadas al campo de la Inteligencia Artificial y es llevada adelante por el equipo de IDATHA.

¿Qué sucedería si le mostramos a un niño, una foto de un animal que nunca vio? ¿Será capaz de adivinar cuál animal es?

Digamos que el animal es una cebra y además el niño ha visto antes fotos de caballos. A su vez, se le ha dicho que las cebras son similares a los caballos pero con rayas. En este escenario, es muy probable que el niño deduzca correctamente el nombre del animal.

Similitudes entre un caballo y una cebra — analyticsindiamag.com

La misma idea podría llevarse a una computadora, permitiendo que un modelo de aprendizaje profundo adivine correctamente la etiqueta de un objeto nunca visto, durante su entrenamiento. Esto permitiría entrenar modelos de visión por computadora a partir de conjuntos de entrenamiento más chicos, reduciendo la cantidad de imágenes necesarias para su entrenamiento y por ello sus costos de desarrollo.

Recordemos que modelos de detección de objetos como Inception o YOLO, requieren del orden de miles de ejemplos por clase. Algunos modelos de clasificación como Faster R-CNN requieren un poco menos de ejemplos por clase, pero siguen requiriendo en el entorno de los cientos de ejemplos por clase.

Para fijar ideas, saquemos la calculadora y hagamos un poco de números con algunos de los clásicos datasets de entrenamiento en tareas de detección y clasificación de objetos:

  • CIFAR-10 consiste en 60K imágenes a color de 32x32 pixeles, para 10 clases de objetos. Cerca de 6000 imágenes por clase. CIFAR-100 en tanto contiene contiene 600 ejemplos por clase, para 100 clases de objetos, totalizando 60K de imágenes también.
  • COCO consiste en imágenes de unos 600x400 pixeles aproximadamente, sobre objetos de la vida cotidiana. Consta de 80 clases de de objetos y más de 200K de imágenes etiquetadas.
  • Open Images v6 es un dataset de Google, consta de 600 clases de objetos y un total de 9M de imágenes.

Como puede verse, construir de cero un conjunto de datos de entrenamiento para un modelo de aprendizaje profundo es muy costoso en materia de tiempo, dinero y esfuerzo.

“Menos información para aprender y de mayor calidad”

Por esta razón, es que varios esfuerzos de la academia y la industria se están concentrando en la dirección de técnicas de aprendizaje que le permitan a modelos aprender de forma más inteligente a partir de sólo unas pocas imágenes para cada clase.

Sobre Few-Shot, One-Shot y Zero-Shot Learning

A este enfoque de entrenar modelos con unas pocas imágenes por clases se lo conoce como Few-Shot Learning y en el caso particular de un modelo de clasificación de objetos como Few-Shot Classification. Fue propuesto allá por el año 2000 en el artículo Learning from One Example Through Shared Densities on Transforms.

A su vez, cuando este enfoque se lleva al extremo de entrenar modelos de aprendizaje a partir de un único ejemplo por clase, se lo conoce como One-Shot Learning y en el caso particular de un modelo de clasificación de objetos One-Shot Classification. Recién en el año 2006 en el artículo One-shot learning of object categories se propone una implementación de este enfoque, basada en modelos Bayesianos.

Por último y rozando el límite de la demencia, se encuentra el caso en que un modelo puede predecir correctamente objetos para una clase de la cuál nunca antes vio un ejemplo. A este extremo se lo conoce como Zero-Shot Learning y en caso particular de la tarea de clasificación de objetos Zero-Shot Classification. Las primeras implementaciones de este enfoque se pueden encontrar en los trabajos Importance of Semantic Representation: Dataless Classification, Zero-data Learning of New Tasks y Learning To Detect Unseen Object Classes by Between-Class Attribute Transfer

La idea detrás de todos estos tipos de aprendizaje, es incorporar en el proceso de entrenamiento información adicional a la que el modelo puede aprender de fotos, en particular información que se tiene acerca de como están relacionadas las etiquetas de los objetos identificados en las imágenes. En otras palabras, información de como se relacionan las palabras en el lenguaje.

Lo siguiente que uno se puede preguntar es ¿Cómo se modelan estas relaciones entre palabras y luego como se inyectan en el proceso de entrenamiento de un modelo? Aquí es donde entra en juego el concepto de word-embedding.

Word Embedding

Word-Embedding es una representación vectorial de una palabra, con la particularidad de que si dos palabras tienen un significado muy similar, entonces sus vectores de embeddings son similares. Cada dimensión de estos vectores representa una característica de la palabra, desde conceptos sencillos hasta muy abstractos. Por ejemplo, pensemos en los word-embeddings para nombres de animales. Si nos concentramos solamente en las características: tamaño, ferocidad y si tiene rayas, para un caballo su vector de embeddings sería algo así como [1, 0.5, 0]. Mientras tanto para una cebra sería [1, 0.5, 1] y para un conejo [0, 0, 0.5]. Como podemos ver, los vectores para caballo y cebra son muy similares entre sí mientras que son muy diferentes al word-embedding de conejo. Esta noción de distancia crea grupos de palabras muy relacionadas entre sí, en un espacio n-dimensional.

Visualización word-embedding — Francesco Gadaleta

Lo interesante de los word-embedding es que son una herramienta ampliamente utilizada en el campo del Procesamiento de Lenguaje Natural (PNL) y por consiguiente muy desarrollada. Es relativamente sencillo hacerse de un conjuntos de datos con los word-embedding para el vocabulario completo de un idioma como Inglés o Español.

¿Cómo se unen las word-embeddings con el problema de clasificar objetos y el Zero-Shot Learning?

Se puede entrenar un detector de objetos como una Red Neuronal Convolucional (CNN) reemplazando las etiquetas de los objetos por los word-embedding de la etiqueta, en el conjunto de datos de entrenamiento. De esta forma el modelo aprenderá a predecir las características del word-embedding, en lugar de una etiqueta. Luego, la palabra del diccionario cuyo word-embedding más se le parezca al word-embedding de la imagen, será la categoría del objeto. De esta forma, cuando le mostremos una cebra a una CNN, la predicción será un word-embedding que estará muy cerca del word-embedding de la palabra cebra y así sabremos que es una cebra. A pesar de no haber visto nunca una foto de una cebra durante su entrenamiento.

En esto consiste esta técnica de aprendizaje conocida como Zero-Shot Learning (ZSL), la cual todavía se encuentra en desarrollo pero tiene un enorme potencial, ya que permitiría entrenar nuevos modelos de visión por computadora, prescindiendo de grandes conjuntos de imágenes para el entrenamiento.

Si te gusto este artículo te invito a que te suscribas a nuestra newsletter Alquim(IA) para recibir en tu correo novedades en el mundo de la Inteligencia Artificial y más artículos similares. ¡Es completamente gratuita!

Sígueme además en Twitter @Efviodo o en Linkedin para enterarte de nuevos artículos y otros proyectos sobre IA en los que estoy involucrado.

Referencias

  1. Szegedy, C., Liu, W., Jia, Y., Sermanet, P., Reed, S., Anguelov, D., … & Rabinovich, A. (2015). Going deeper with convolutions. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 1–9).
  2. Redmon, J., Divvala, S., Girshick, R., & Farhadi, A. (2016). You only look once: Unified, real-time object detection. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 779–788).
  3. Ren, S., He, K., Girshick, R., & Sun, J. (2015). Faster r-cnn: Towards real-time object detection with region proposal networks. arXiv preprint arXiv:1506.01497.
  4. Miller, E. G., Matsakis, N. E., & Viola, P. A. (2000, June). Learning from one example through shared densities on transforms. In Proceedings IEEE Conference on Computer Vision and Pattern Recognition. CVPR 2000 (Cat. No. PR00662) (Vol. 1, pp. 464–471). IEEE.
  5. Fei-Fei, L., Fergus, R., & Perona, P. (2006). One-shot learning of object categories. IEEE transactions on pattern analysis and machine intelligence, 28(4), 594–611.
  6. Chang, M. W., Ratinov, L. A., Roth, D., & Srikumar, V. (2008, July). Importance of Semantic Representation: Dataless Classification. In Aaai (Vol. 2, pp. 830–835).
  7. Larochelle, H., Erhan, D., & Bengio, Y. (2008, July). Zero-data learning of new tasks. In AAAI (Vol. 1, №2, p. 3).
  8. Lampert, C. H., Nickisch, H., & Harmeling, S. (2009, June). Learning to detect unseen object classes by between-class attribute transfer. In 2009 IEEE Conference on Computer Vision and Pattern Recognition (pp. 951–958). IEEE.

--

--

Emiliano Viotti
IDATHA // Enterprise Experience & Academic´s

Machine Learning Director at IDATHA.com — AI Builder — CV and NLP practitioner — Hungry reader and stories writer — Former professor at Fing UdelaR.