The Independent Sentinel #16

Pandas, Pegasos y el primer chatbot de la historia.

¡Hola!

Soy Javier Fuentes, de Akoios. Gracias por estar leyendo una vez más The Independent Sentinel, la newsletter en la que combinamos novedades, curiosidades e historias sobre el apasionante mundo de la Ciencia de Datos.

¿Aún no estás suscrito? Hazlo fácilmente pulsando en el botón de abajo:

¡Suscríbete ahora!

Hoy hablaremos de una herramienta para visualizar datos, de modelos capaces de aprender con muy poca información y de los orígenes de los robots conversacionales.

¡Vamos allá!


🎼  ¿Quieres banda sonora? ¡Dale al Play!


1. Ciencia de Datos

Herramientas ⚙️

La biblioteca Pandas para la manipulación y análisis de datos en Python, es sin duda, una de las más utilizadas por los Científicos de Datos en su día a día.

Pandas permite, de manera muy sencilla, manipular tablas numéricas y series temporales mediante diversas estructuras de datos y operaciones que tiene integradas.

Hace poco, descubrí una herramienta para dotar de una interfaz a esta archiconocida biblioteca. PandasGUI (como su nombre indica) proporciona una interfaz gráfica que facilita en gran medida el análisis exploratorio de datos (EDA: Exploratory Data Analysis) y resulta especialmente útil a la hora de enfrentarse por primera vez a un dataset.

De manera muy resumida, este es el tipo de acciones que se pueden llevar a cabo con PandasGUI:

  • Visualización de series y dataframes y navegación sobre los mismos

  • Creación de gráficos interactivos

  • Filtrado de datos usando queries sencillas como survivor == 1

  • Resumen de datos estadísticos del dataset: Mean, Standard Deviation, Min, Max…

  • Edición de datos y posibilidad de cortado/pegado

  • Posibilidad de importar ficheros CSV mediante drag & drop

  • Barra de búsqueda

En estas animaciones, se muestran muy gráficamente varias de estas funcionalidades de PandasGUI con un dataset de ejemplo (el listado de pasajeros del Titanic):

Como único inconveniente, indicar que PandasGUI funciona usando la librería Qt, así que lamentablemente no funcionará en entornos como Google Colab o similares.

Modelos y Algoritmos 💻

Una de las principales objeciones sobre la viabilidad de los proyectos de Machine Learning es la noción de que siempre hacen falta muchos datos para crear buenos modelos.

Aunque siempre es deseable disponer de muchos datos a la hora de trabajar un modelo, cada vez hay más posibilidades de poder conseguir buenos resultados en aprendizaje automático con poca -o casi ninguna- información disponible. Esto es justamente de lo que os quiero hablar hoy.

Antes de comenzar, hace falta aclarar parte de la jerga que se usa para clasificar los distintos “modos” de aprendizaje:

  • N-shot learning: Cuando disponemos de N muestras para entrenar un modelo.

  • Few-shot learning: Cuando disponemos de pocas muestras (entre 2 y 5) para el entrenamiento.

  • One-shot learning: Cuando solo disponemos de una muestra.

  • Zero-shot learning: Cuando no disponemos de ninguna muestra para el entrenamiento.

Esta clasificación da pie a una pregunta terriblemente interesante:

¿Cómo puede “aprender” una máquina cuando no tiene datos?

Para ilustrar todo esto, imaginemos que disponemos de un clasificador de imágenes que discrimina entre balones de dos clases o categorías: [fútbol] y [baloncesto]. En este caso, podríamos usar una sola muestra (one-shot learning) para añadir balones de [voleibol] a la lista de categorías que el modelo puede detectar.

Yendo al extremo, ¿qué pasaría si no disponemos de ninguna muestra de una nueva clase? ¿sería posible hacer que el modelo clasificase muestras en esta nueva clase? Aunque parezca contraintuitivo, la respuesta es afirmativa.

Los humanos tenemos una capacidad innata para generalizar. Si le preguntas a un niño cómo sería la mezcla de un pájaro y un caballo, será probablemente capaz de imaginar un pegaso (un caballo volador). Esto es, sería capaz de crear una categoría nueva [pegasos] a partir de dos categorías de partida [pájaros] y [caballos] sin haber visto muestra alguna de este animal mitológico.

Esta capacidad cognitiva nos permite aprender con muy poca información o, como estamos viendo, únicamente mediante conceptos abstractos que nuestro cerebro puede generar.

Esto, que puede ser trivial para los humanos, entraña una tremenda complejidad para las máquinas que está siendo abordada desde distintas perspectivas como las que estamos viendo (few-shot /one-shot learning) o como el Transfer Learning (una técnica para “afinar” una red neuronal previamente entrenada para solucionar una tarea nueva).

En este sentido, muy recientemente se ha publicado una nueva técnica denominada less-than-one-shot learning (LO-shot learning) creada en la Universidad de Waterloo (Ontario) que permite reconocer con precisión más categorías (tipo de objetos) que la cantidad de muestras con la que ha sido entrenado. Esta técnica se situaría entre el one-shot learning y el zero-shot learning que hemos visto un poco más arriba.

La idea principal del paper que se ha publicado es el uso de las “etiquetas suaves” -o difusas- (soft labels) en contraposición a las “etiquetas duras” (hard labels) comúnmente usadas para resolver problemas de clasificación.

El propio autor, Ilia Sucholutsky, explica este concepto usando simplemente números:

Si pensamos en el número 3, se puede intuir que se parece al 8 en su forma, pero apenas nada al 7. Las etiquetas suaves son la forma de capturar estas similitudes entre clases. En vez de aseverar: 'Esta imagen corresponde al número 3', se puede decir esto otro: 'Esta imagen representa el 60 % del número 3, el 30 % del número 8 y 10 % del número 0'.

Con también indica Sucholutsky, con etiquetas suaves debidamente diseñadas sería teóricamente posible, incluso con solo dos ejemplos, separar cualquier número de categorías 🤯.

Aunque la investigación está en una fase muy temprana, si realmente se consigue avanzar en este ámbito, será un paso de gigante para expandir el uso del aprendizaje automático a sectores e industrias que adolecen de falta de datos.

2. Historias 📔

ELIZA: El origen de los chatbots

Her, la película de Spike Jonze estrenada en 2013, es uno de mis filmes favoritos de los últimos años.

Her cuenta una historia de amor distópica entre un hombre -Theodore- y una suerte de Inteligencia Artificial conversacional -Samantha-.

La película tiene un aire de ciencia-ficción pero es imposible no pensar que el futuro que muestra pudiera estar no tan lejano en el tiempo.

Pese a que aún no hemos llegado a ese nivel de relación entre humanos y máquinas, se puede decir que la humanidad lleva más de medio siglo intentando crear dispositivos con los que poder hablar.

Remontémonos a Estados Unidos en 1966. Por aquel entonces, Joseph Weizenbaum, un profesor del MIT, estaba buscando el modo de crear un programa capaz de interactuar con los humanos.

Su idea era que las personas que interactuasen con este programa sintieran que estaban siendo escuchadas y que su interlocutor era capaz de entender sus problemas e inquietudes del mismo modo que lo haría un psicólogo.

A este programa, Weizenbaum lo llamó ELIZA, en honor al personaje de Eliza Doolittle en el Pigmalión de George Bernard Shaw. En esta historia, Eliza pasaba de ser una vendedora callejera a una sofisticada dama de la alta sociedad con la ayuda de un profesor.

Weizenbaum pretendía ilustrar lo superficial que podría ser la comunicación entre los humanos y las máquinas e ideó para ello una estrategia basada en los siguientes pilares:

  • Reconocer palabras clave para luego poder re-preguntar sobre ellas

  • Almacenar frases hechas sobre diversos temas

  • Disponer de frases genéricas para cuando era incapaz de reconocer palabras clave: ¿Por qué dices eso? ¿Estás seguro?

  • Poder reformular frases para generar preguntas de manera automática

Con estos simples ingredientes, ELIZA era capaz de crear una ilusión de entendimiento e interacción que, en muchos casos, podía engañar a mucha gente que creía que estaba hablando con otro humano.

Desde su creación, ELIZA ha tenido diversas implementaciones, desde algunas sencillas basadas en texto, a otras con las que incluso se puede conversar a viva voz.

A pesar de sus limitaciones (ELIZA no era capaz de memorizar o aprender de sus interacciones con humanos), supuso el punto de partida para muchas otras iniciativas que fueron avanzando en este ámbito como Jabberwacky, o A.L.I.C.E.

En esta línea, ELIZA se puede considerar la clara predecesora de los chatbots como Siri, Cortana o Google Now con los que tan familiarizados estamos hoy y que, aparte de intentar entendernos, nos dan acceso a todo tipo de servicios.

Los chatbots conversacionales son ya parte de nuestra vida y nuestra relación con ellos no hará más que incrementarse. Si todo sigue así, tal vez solo sea cuestión de tiempo que empecemos a hablar -y quién sabe que más- con bots como la Samantha de Her.

¡Gracias por leer hasta aquí!


¿Disfrutas The Independent Sentinel? Échanos una mano para llegar a más gente compartiendo nuestra publicación con tus amigos y familiares.

Si tienes comentarios o quieres iniciar una conversación, recuerda que puedes hacerlo al final de la publicación.

Si te has perdido alguna edición de la newsletter, puedes leer todas aquí.

👉 Si quieres conocer mejor cómo funciona nuestra tecnología Titan, puedes revisar nuestra serie de tutoriales publicados en Medium.

👉 Si te interesa, puedes solicitar un acceso gratuito para probar Titan aquí https://lnkd.in/gPz-2mJ