Inteligencia Artificial y el camino hacia #AIuy.

Acuñado en 1955, el término Inteligencia Artificial ha ido, con el paso de los años, identificándose con diferentes corrientes. Su autor, John McCarty, lo definió como “la ciencia y la ingeniería de hacer máquinas inteligentes”. La definición que prefiero (hay muchas) es la que dice que un agente (simplificando un poco, una aplicación, como las de los celulares, o un dispositivo, como una máquina de consechar manzanas) es inteligente si es capaz de percibir su entorno y tomar acciones que maximicen su probabilidad de éxito.

Como decía, estas definición ha ido cambiando con el tiempo, y probablemente cambie de nuevo, pero contiene conceptos importantes: el primero, es aquel de percibir el entorno: nuestra aplicación o dispositivo tiene que poder, de alguna forma, “ver” lo que pasa a su alrededor. La aplicación del celular tiene muchas formas de ver: a través de los sensores del propio celular o de su GPS puede saber, por ejemplo, exactamente en qué lugar del mundo se encuentra, o cuántas veces giramos el dispositivo, o cuántas veces cambió su altura; una página web (sobre todo si estamos identificados, y por eso Facebook insiste tanto en que permanezcamos en su “ambiente”) puede conocer la historia de búsquedas que hemos hecho o los mensajes que nos han gustado; la cosechadora de manzanas puede medir el color de la fruta, o su tamaño; y así.

El segundo concepto importante es aquel que dice que debe proceder de forma que su probabilidad de éxito sea máxima. Una aplicación que nos dice dónde estamos a través del GPS no es inteligente. Una aplicación que calcula la mejor ruta a destino, teniendo en cuenta embotellamientos en el camino y estimando velocidades de circulación, sí lo es. Si un sitio web nos sugiere una lista de países para elegir, no es inteligente; si nos propone primero Uruguay, porque sabe por el GPS dónde estamos, sí. Cuando Amazon nos sugiere libros que nos pueden gustar, está siendo inteligente, porque maximiza sus chances de tener éxito (vendernos un libro, claro). Si la cosechadora logra determinar que una manzana está madura, a partir de atributos como color, textura, o presencia de manchas, está siendo inteligente.

Aprendizaje Automático

Las definición de Inteligencia Artificial, como decía, es bastante difusa, y bastante cambiante… y es probable que sea bueno que así sea. Definitivamente, es un concepto en construcción, y admite diferentes aproximaciones (desde la matemática, la ciencia de la computación, la lógica, la biología… por nombrar algunas). Para fijar un poco más las ideas, hablemos a partir de ahora de una de sus subramas (seguramente la que hoy en día es la más importante, y a la que pertenecen todos los ejemplos que he dado hasta el momento): el aprendizaje automático. Aquí sí hay una definición clara, más operacional que cognitiva: la de Tom Mitchell en su libro de 1997;

un programa de computadora aprende cuando su comportamiento en cierta tarea mejora cuanto más experiencia tiene.

Esto es, necesitamos:

a) un programa de computadora. Por supuesto, esto refiere a cualquier dispositivo que se pueda programar, no solamente una computadora personal, o un celular. También vale programar un dispositivo para que abra la puerta, o a un robot para que coseche manzanas.

b) una tarea. Vamos a pensar en una tarea específica, aunque el programa pueda hacer muchas. Algunas posibles: “conducir a casa”, “manejar el calefón” o, por supuesto, “cosechar manzanas maduras”

c) una medida. Tenemos que tener una medida de rendimiento del programa en la tarea, para saber si mejora. Por ejemplo: proporción de veces que efectivamente eligió el mejor camino, o que cosechó manzanas efectivamente maduras.

d) la experiencia. En general, la experiencia son nada más y nada menos que datos. La ubicación actual y los reportes de embotellamiento, pero también los viajes anteriores, el tránsito en los días, semanas, años previos por las posibles calles, el estado del tiempo. Las manzanas que cosechamos antes, con su color, su tamaño… y si efectivamente estaban maduras.

Dijimos que el programa aprende si mejora con la experiencia. Un programa que busca la mejor ruta en un mapa de acuerdo a las distancias recorridas aplicando el más complejo de los algoritmos, siempre da el mismo resultado: no está aprendiendo porque no mejora con la experiencia (podría discutirse si es inteligente o no, pero quedamos en que ya no hablamos de inteligencia artificial, precisamente para no entrar en estas disquisiciones). Si ese programa puede recolectar datos de mis viajes, y mejorar sus predicciones de mejor ruta, entonces sí, aprendió algo.

Es muy importante entender esta diferencia, porque es ahí donde está el salto cualitativo. Todos sabemos a esta altura que estamos rodeados de datos, y sobre todo que estamos generando datos todo el tiempo. Solamente aquellos programas que aprendan con la experiencia harán uso de esos datos. Decir que recolectamos datos no nos convierte en una smart city. El asunto es qué hacemos con ellos.

Aprendizaje Automatico e Industria

Por más ruido que se haga, el aprendizaje automático, como disciplina, recién está saliendo del campo académico… si excluimos a las grandes compañías de Internet. Aquí un par de aplicaciones que utilizan aprendizaje automático para realizar mejor sus tareas.

  • Todos los celulares reconocen nuestra voz. Por supuesto, pueden escucharnos porque tienen micrófonos, pero los micrófonos existen hace décadas, y antes no solían respondernos, o ejecutar acciones. La inteligencia de los celulares no está en recibir el sonido de nuestra voz, ni siquiera en la de guardarla en “la nube”, en forma de “big data”. Eso es llenar discos con señales acústicas digitalizadas. La inteligencia está en (para empezar), analizar esa señal, compararla con señales anteriores (mías y de otros), distinguir que es mi voz, mapear esa señal a un texto (basándose en cómo lucía la señal para textos anteriores que tiene registrados, míos y de otros), y escribirlo. Esto se llama reconocimiento del habla, y es un ejemplo de manual de un área que en los años 90 disparó su performance utilizando aprendizaje automático.
  • En el año 2009, una compañía de películas online dio un premio de un millón de dólares a un grupo de programadores que logró subir un diez por ciento su capacidad de recomendar películas a usuarios, a partir de recomendaciones anteriores propias (¡datos!) y de otros usuarios con intereses similares (¡más datos!). Indudablemente, una de las claves del éxito de Netflix (porque esa era la compañía), o de cualquier compañías de streaming o de ventas por internet tiene que ver en gran medida con su capacidad para recomendar los mejores productos de acuerdo al perfil del usuario. Por ese motivo es que les interesa tanto nuestra opinión, porque sus algoritmos aprenden con la experiencia.

¿Tecnología o Ciencia?

Tal vez los ejemplos anteriores sugieran que la inteligencia artificial y el aprendizaje automático podrían verse como ramas de la tecnología de la información y las comunicaciones (TICs). De hecho, no es así.

Indudablemente, ha sido gracias a las TICs que estas áreas se han desarrollado muchísimo en los últimos cinco o diez años, al menos comparado con los anteriores cincuenta (la historia de la inteligencia artificial, sus idas y venidas, sus inviernos y sus empujes es digna de ser contada, pero excede el alcance de este artículo, y no es difícil de encontrar en Wikipedia, aunque lo que existe en español se queda bastante corto). La asombrosa curva de crecimiento de las capacidades de comunicación y procesamiento en el período, y la tremenda cantidad de datos disponibles, fueron factores clave para ese desarrollo, y probablemente lo sean aun más en los próximos años. Pero la aplicación de inteligencia artificial a la realidad excede a las TICs, y podría decirse que se trata de una nueva aproximación a los problemas.

El aprendizaje automático abreva en áreas como la estadística, la ciencia de la computación, la lógica, e incluso la filosofía, y refiere principalmente a cómo aproximarse y resolver los problemas. Mientras los métodos “tradicionales” de la ingeniería de software han sido principalmente racionalistas (modelo una realidad como la imagino y luego desarrollo el software para ese modelo), la mayoría de los métodos de aprendizaje automático (al menos los que dominan la escena) son empiricistas (parten de los datos existentes e intentan inferir los modelos). Para decirlo más fácil, dibujan los árboles empezando por las hojas, en vez de por la raíz.

¿Qué necesitamos para incorporar IA a la industria y a los servicios?

Intentemos ahora analizar, a partir de lo visto anteriormente, cómo podría, incorporando estos métodos, mejorarse la productividad de algunas actividades, y qué habilidades o decisiones son necesarias para lograrlo.

  • Los métodos de aprendizaje automático necesitan, de una forma u otra, datos. Por lo que es necesario obtener datos de las actividades que nuestra industria o servicio realice. Pueden incorporarse sensores, imágenes, textos, datos ingresados manualmente, datos propios, datos externos, datos del gobierno, lo que haya disponible. No necesariamente tienen que ser muchos; va a depender de la tarea que realicemos, y la mayoría de las veces no estamos hablando de big data (y menos con la capacidad de procesamiento de cualquier computadora personal). Pero sí necesitamos datos. Por dar un ejemplo, podríamos partir de de la información de la carga de basura de cada contenedor de Montevideo al momento de descargarlo.
  • Necesitamos una plataforma para procesar los datos. Esto sí es tecnología: los datos deben estar juntos en algún lugar. Desde archivos de texto, pasando por planillas de cálculo a bases de datos de cualquier tipo. En algún lugar debemos tener los datos juntos. Y alguna herramienta o lenguaje de programación para procesarlos. Esto era antes tarea de “informáticos”, pero cada día más biólogos, astrónomos, físicos, matemáticos, economistas, estadísticos, etc, etc incorporan estas plataformas como sus herramientas de trabajo. Debemos aprender a usar estas plataformas para poder hacer aprendizaje automático.
  • Necesitamos métodos de aprendizaje automático. Esto no es un problema: hay muchos, de diferentes orígenes: estadísticos, genéticos, basados en redes neuronales, por refuerzo…, y cualquiera que tenga alguna formación previa en matemática o ciencia puede entenderlos y aplicarlos. Por ejemplo, hace poco, unos estudiantes de Ingeniería propusieron, utilizando un algoritmo evolutivo, recorridos óptimos para los contenedores de Montevideo.
  • Esto es lo más importante: necesitamos pensar los problemas de una forma diferente, para ver si admite una solución de este tipo. Podemos imaginar rápidamente enfoques de este tipo para mejorar la gestión de la limpieza: si pusiéramos sensores en los contenedores de basura, o simplemente registráramos cada noche cuáles están desbordados, contaríamos con datos para optimizar los recorridos, pasando con mayor frecuencia por aquellos contenedores más “en riesgo”, o aumentando la cantidad de contenedores, o lo que los expertos digan,pero siempre tomando decisiones inteligentes, en el sentido mencionado al principo. Esta misma metodología puede aplicarse (me atrevo a decirlo) a casi cualquier problema de gestión con información histórica disponible. Y esto es solamente un ejemplo.

¿Qué tan difícil es todo esto?

¿Qué deberíamos hacer para desarrollar un área tan compleja en, digamos, Uruguay, con sus dimensiones y su posición periférica en el concierto internacional?

Para empezar, tenemos entender que no es tan compleja como parece (o como nos venden), especialmente para quienes tienen ya una formación científica previa. Luego, sin duda, deberíamos establecer una política para favorecer el desarrollo de algunos factores:

  • La formación académica en Uruguay en temas de inteligencia artificial y materias conexas es buena, aunque todavía (hasta donde yo sé) se encuentra a nivel de posgrado o de materias avanzadas en la carrera. Debería avanzarse en, por un lado, mejorar la comunicación entre los diferentes actores que estudian el tema, y comenzar un camino para extender la formación a etapas educativas más tempranas (enseñanza secundaria, técnica y, por qué no, primaria).
  • El desarrollo de este tipo de conocimientos está, fuertemente enmarcado en una cultura abierta: prácticamente todas las empresas de internet han liberado como código abierto (es decir, que cualquiera puede utilizar, inspeccionar o cambiar) su bibliotecas de aprendizaje automático; las modificaciones están disponibles rápidamente, y los avances en el área se reportan en general en medios de acceso libre. Esto es, todo lo que el mundo está haciendo hoy en software de inteligencia artificial, está disponible por Internet (1). Debería trabajarse en fomentar esta cultura: en este aspecto, el aporte de la sociedad civil puede resultar invalorable.
  • Como en otras áreas, la mejora en el puente academia-empresas parece un factor clave para el desarrollo. Debería mejorarse la articulación académico/público/privada (fundamental para el impulso de esta industria), siguiendo experiencias exitosas previas, como la de la industria de las TICs. La existencia de empresas públicas sólidas y con equipos profesionales consolidados permitiría que actuaran como motores de desarrollo, al menos en las primeras etapas.
  • En el mundo, los mercados están ávidos de este tipo de empresas, y aquí las barreras físicas no existen. Esto no es nuevo: varias empresas uruguayas (de diferentes tipos y tamaños), así como muchos profesionales, trabajan para el exterior, con las credenciales que le da la reconocida formación que tienen. En esa línea, debería fomentarse el desarrollo de empresas (de hecho, ya existen varias) que “vendan” inteligencia artificial. No menos importante, debería trabajarse en la incorporación de este tipo de conocimiento a industrias existentes.

Como actor del área de las tecnologías de la información y las comunicaciones, y como, al mismo tiempo, investigador en ciencia de la computación, he visto, casi siempre con escepticismo y casi siempre con razón, las olas más diversas, la colección más grande disponible de buzzwords (esas palabras que suenan muy bien pero que no tienen mucho detrás) y de tendencias que luego se desvanecen. Estoy convencido de que la ola actual de inteligencia artificial es grande, y, aunque incluya palabras tan vacías como big data, dejará consecuencias. Mucho del futuro depende de que sepamos, o no, incorporarla a nuestra matriz productiva. La industria del futuro es inteligente, o no es.

P.S.: En el momento de publicar esta nota, AlphaGo acaba de ganarle una partida a Lee Sedol, el más grande jugador de Go del mundo. Si ayer me preguntaban, faltaban al menos 10 años para que esto sucediera. Curiosamente, en el 2006 (hace 10 años), en un proyecto de grado de la Universidad de la República, se propuso un jugador de Go cuyos principios no son muy diferentes.

(1) Si logré explicar bien lo anterior, puede entenderse por qué las compañías de Internet no “protegen” su código como software privativo: su ventaja comparativa no es el código, si no los datos que poseen, que son incomparablemente mayores a los de cualquier otra empresa.