Inteligencia Artificial: hágalo usted mismo

En estos días, se está hablando mucho de Inteligencia Artificial (IA). Especialmente en círculos "especializados", de esos que están a la moda, al tanto de lo que pasa, que tienen clarísimo qué va a pasar en el futuro en prácticamente cualquier área y que seguramente estén equivocados, pero que con ese dibujito de las redes sociales que se llama Me Gusta y que debería llamarse sesgo de confirmación, se quedan contentos y convencen a otros dispuestos a creer. Muchos no parecen saber demasiado de qué están hablando, más allá de generalidades como "máquinas inteligentes" o "la enorme cantidad de datos disponibles" o directamente algo tan general y confuso como "big data". Olvídese un rato de ellos, porque la IA es algo que existe, que usted mismo puede aplicar en su empresa o en su casa (tal vez con un poco de ayuda) y que, sí, es probable que cambie al mundo en los próximos años.

En el mundo real, la Inteligencia Artificial no se parece en nada a esto. En nada de nada.

Este artículo está dirigido a alguien que tiene una empresa, industria o emprendimiento de cualquier tipo. El mensaje general es: lo principal para incorporar IA es entender de qué se trata y, especialmente, para qué puede servirle. De lo contrario, por más especialistas en deep learning o consultoras que contrate, puede terminar aturdido, abrumado y enredado en una nube de datos inútiles o de cálculos que no llevan a ningún lado. Esto también aplica a quienes quieran utilizar inteligencia artificial para mejorar el análisis de datos y las decisiones, ya sea en el gobierno, la sociedad civil, o el área que se les ocurra. Intentaré dar aquí algunas ideas de qué puede hacer (y qué no) la inteligencia artificial por usted, empezando mañana, y desde cero.

Uno: busque un problema de clasificación

Creo que lo primero que hay que entender es que el 90% del tiempo, cuando hablamos de inteligencia artificial, hablamos de aprendizaje automático (si quieren un poco más de detalle, pueden leer esto que escribí hace un tiempo), y el 90% del tiempo cuando hablamos de aprendizaje automático, hablamos de aprendizaje supervisado. De aprendizaje supervisado es de lo que hablaremos aquí. (1)

La clasificación es bien fácil de definir: tengo un objeto de algún tipo y le asigno una categoría, que tomo de una lista de categorías posibles. El objeto, por ejemplo, puede ser una foto, y las categorías posibles podrían ser dos: "con gato", y "sin gato". Intente adivinar la categoría de cada una de las siguientes imágenes.

A pesar de su extraño nombre, la regresión es también un concepto muy sencillo: en lugar de una categoría, quiero asignarle al objeto un número real. Por ejemplo, predecir, a partir del tiempo de los días anteriores y de la fecha del año la temperatura que habrá mañana en Montevideo es un (bastante complicado) problema de regresión: el objeto es aquí cada día, y el número, por supuesto, los grados Celsius que habrá mañana de máxima.

Armados de estas definiciones, busquemos ejemplos a nuestro alrededor.

Ejemplo 1 (Hogar): supongamos que tengo un termotanque, y quiero prenderlo de forma que, al final del mes, gaste lo menos posible en electricidad. Esto puede modelarse como un problema de clasificación: a cada momento (o a cada diez minutos, por ser más realistas), lo clasifico en una de dos clases: "prender" 0 "apagar". Si ese momento es clasificado como "prender", obviamente, prendo el termotanque. De lo contrario, lo apago. Por supuesto, tengo que tener medios para transmitirle al termotanque que se prenda o apague, pero eso supongamos que lo tenemos resuelto (con un timer programable o un control remoto vía por internet, por ejemplo). Si logro hacer esto de forma "inteligente" posiblemente reduzca mi consumo. En este caso, "inteligente" podría querer decir, por ejemplo, que se encienda en horarios en los que la tarifa es menor (volveremos sobre este tema).

Ejemplo 2 (Industria): supongamos que cada mes tengo que determinar cuántos tornillos va a producir mi fábrica. Esta decisión la tomo a partir de una serie de factores que debo estimar, como la demanda (¿cuántos tornillos me han encargado? ¿cuántos más podrían encargarme?), la disponibilidad de maquinaria, de mano de obra, cosas así. Es una decisión que requiere experticia y conocimiento del proceso de producción y de mi mercado, porque si produzco de menos voy a perder de vender, y si produzco de más tendré que pagar costos adicionales de almacenamiento. Si miramos esta decisión de cerca, no es ni más ni menos que un problema de regresión que ejecuto cada mes: el objeto es el propio mes, y el número que quiero asignarle es la cantidad de tornillos a producir.

Ejemplo 3 (Marketing): viene una señora de unos 60 años, voz amable, jubilada, a mi banco, y pide un préstamo por un cierto monto. ¿Debería concederle el préstamo? Aquí, el problema de clasificación es evidente, y además, igual que el termotanque, binario: admite un valor positivo (dar el préstamo) y otro negativo (no dar el préstamo). (2)

¿Cuántas horas debo dormir para despertar descansado? ¿Cuál será el tiempo mañana? ¿Qué temperatura habrá mañana a las 7 a.m., cuando me levanto? ¿Cuál es la mejor orientación para las aspas de mi aerogenerador, si quiero maximizar la energía generada en el día? ¿Qué celular debería ofrecerle a este cliente que viene a mi sitio de venta on-line? Todos estos problemas (piénselo) pueden reducirse a un problema de clasificación o de regresión. Verifíquelo. Muestre cuál es el objeto, y cuáles son las clases, o el rango de los números reales donde debe estar la respuesta. Ahora, piense en su empresa, su industria, su club, su vida, elija usted lo que llamamos el dominio, y busque problemas de clasificación o de regresión. Tómese su tiempo, pensando que este es, sin duda, el paso más importante.

Si se está preguntando dónde está hasta ahora la famosa inteligencia artificial, vamos bien. Todavía no está en ningún lado.

Dos: piense en la información necesaria para resolver su problema

Cuando tenga el problema identificado, piense en qué información sobre su objeto necesitará para resolverlo. No importa tanto cómo va a usar esa información (no se trata aquí de construir un procedimiento, o algoritmo, para resolver el problema), si no solamente cuál es. Tampoco es necesario que sea completa, ni siquiera estar seguro de si es relevante. Más vale que sobre a que falte. Retomando los ejemplos:

Ejemplo 1: es probable que la hora del día sea importante para saber si apagar o prender el termotanque ; o la temperatura; o el tiempo que estuvo prendido en los últimos 60 minutos; o la marca y modelo de su termotanque (es extraño esto, porque nunca cambia, pero por las dudas…).

Ejemplo 2: ya cuando planteamos el ejemplo hablamos de los factores: demanda mensual, disponibilidad diaria de maquinaria, cantidad de obreros presentes, etc.

Ejemplo 3: ¿qué edad tiene la señora? ¿tiene antecedentes de no pago? ¿gana un sueldo razonable? ¿tiene trabajo? ¿vive sola?

Probablemente estos problemas los resuelva un experto del dominio. En el primer caso, el experto es usted, que conoce sus hábitos, las horas donde la electricidad es más barata, cuándo lo usa. O en realidad puede que no tenga ni idea de todo esto y lo deje siempre prendido. En el segundo, también usted (como dueño de la empresa), o su gerente general, o el jefe de producción: alguien que conozca su negocio y pueda decidir cuántos tornillos producir. En el tercero, es muy probable que haya un experto en asignación de créditos que, basado en la información disponible, y en su experiencia, pueda determinar si otorgar o no el crédito a la señora.

Es también muy posible que este mismo experto nos pueda ayudar a determinar cuáles son esos atributos (que así llamamos a esta información) necesarios para resolver el problema, siempre recordando que es mejor que nos sobren atributos a que nos falten. Hagamos el ejercicio de identificar los atributos de nuestros ejemplos:

Ejemplo 1: fecha y hora, temperatura actual, tiempo prendido en los últimos 60 minutos, marca, modelo

Ejemplo 2: tornillos ya encargados, estimación de tornillos que nos pedirán en el mes, porcentaje del tiempo que tendremos disponible la maquinaria, cantidad de horas/hombre disponibles

Ejemplo 3: edad, sexo, cantidad de préstamos anteriores, porcentaje de pago, sueldo, total de ingreso del núcleo familiar

¿Hemos usado inteligencia artificial? No, hasta ahora no.

Tres: busque datos históricos

En el punto anterior, hablamos de que el experto se basa en la información disponible, y en su experiencia. En esta fase, determinaremos si podemos seguir adelante: debemos saber si tenemos ejemplos anteriores que recojan esa experiencia. Necesitamos conocer objetos analizados previamente, con sus respectivos atributos, y la categoría que un experto humano le asignó (por eso hablamos de clasificación supervisada). Cuanto más ejemplos, mejor. Y algo más: los atributos deben ser números, o valores de Verdadero o Falso, o tiras de caracteres, o alguna enumeración de categoría, no cosas más complicadas. Vamos a los ejemplos.

Ejemplo 1: puede ser que tuviéramos una lista de decisiones previas indicando la hora, la temperatura, el tiempo prendido en los últimos 60 minutos, la marca, el modelo. Vamos a necesitar unas cientos o mejor miles, distribuidas en diferentes momentos del día, temperaturas, etc. como para cubrir le que intuimos como "diferentes casos posibles".

Ejemplo 2: midamos cada mes los atributos identificados y junto con ellos, la cantidad de tornillos que efectivamente se vendieron (no importa en este caso lo que se decidió, si no lo que efectivamente vendimos).

Ejemplo 3: listemos todas las personas que pidieron crédito (a través de los atributos que determinamos que los caracterizan para este problema), y si se les asignó/rechazó, y si pagaron o no (en el caso de haber sido aceptados).

¿Cómo obtenemos esta información? Puede que ya esté disponible (en el primer caso, tal vez el mismo aparato que permite controlar el termotanque esté generado un registro de todas las veces que se prendió/apagó y las condiciones en las que lo hizo). O también podemos generar un listado de ejemplos, con la categoría asignada en cada caso por un experto.

Observe que el rol del experto cambia: antes era el que hacía el trabajo cada vez que aparecía un nuevo objeto a clasificar; ahora le pedimos que clasifique una lista (probablemente grande) de objetos que luego utilizaremos.

Recién ahora estamos prontos para contratar o formar a un experto en aprendizaje automático…

Cuatro: aprenda de los datos y salga a contar que incorporó IA a su proceso

Aquí está toda la diferencia: a partir del histórico de datos, un método de aprendizaje automático permite generar un clasificador de forma automática. Este proceso se llama entrenamiento. Este clasificador (estamos hablando en general de un software), es capaz de ver un objeto nuevo (con su atributos identificados igual que antes), y sugerir una categoría. Lo mismo, obviamente, para los casos de regresión.

Hay decenas de forma de generar el modelo. Hay muchos aspectos importantes en cómo se hace para que los resultados sean válidos… y el clasificador construido puede equivocarse (¡igual que un experto!). Todo este trabajo es el que debe hacer alguien que sepa de aprendizaje automático, un área de la inteligencia artificial que es más y más incorporada a la currícula de las universidades y que tiene disponible (tal vez como pocas otras) muchísimos recursos en Internet. Como para que alguien con experiencia previa en computación o matemática pueda aprehender lo necesario.

Lo interesante es que, una vez construido el modelo, la cantidad de ejemplos que se puede clasificar es ilimitada, y sin intervención humana. Y la clasificación es, en general, inmediata (el entrenamiento puede durar bastante más, pero se hace solamente una vez). Veamos nuestros ejemplos

Ejemplo 1: A partir del histórico, genero un clasificador que, a partir de los atributos, indica al termotanque si debe prenderse o apagarse.

Ejemplo 2: A partir del histórico, genero un regresor que, a partir de los atributos, devuelva el número de unidades a producir.

Ejemplo 3: A partir del histórico, genero un clasificador que, a partir de los atributos, me devuelve "sí" o "no" a mi pregunta de si debo darle el crédito.

Sí. Son todos iguales. Ahí está la gracia.

¿Y a quién le pido, entonces, que me construya el clasificador?

Un aspecto de toda la movida de la inteligencia artificial de los últimos años es que es casi completamente de código abierto: esto quiere decir que todas las bibliotecas para programar estos métodos, miles de ejemplos que mezclan código con la explicación de cómo funciona, libros, artículos, blog posts, incluyendo lo elaborado por las grandes compañías de Internet (Google, Facebook, Microsoft) está fácilmente accesible para todos, por lo que incorporar inteligencia artificial está al alcance de la mano. Cualquier ingeniero, programador con cierta experiencia (incluyendo científicos o profesionales de otras áreas), o, ni que hablar, cualquier computer scientist puede implementar estas cosas. Los métodos pueden utilizarse incluso con “recetas” (aunque llegar a obtener resultados de producción puede llegar a ser un poco más difícil). Por supuesto, hay que estudiar cómo hacerlo, hay riesgos de hacerlo mal y, como en toda otra actividad, hay expertos, gente que se anima, gente que ensaya… lo importante es empezar a probar.

Cuando usted, dueño de la empresa, sepa el clasificador que quiere construir, hable con su informático o científico favorito, o contrate a un experto, ahí se ve. Lo que me importaba señalar en este artículo es que si usted no pasa por los pasos 1 al 4, entonces es difícil que salga algo que le sea útil. Pero si lo hace, su empresa puede ganar. Y mucho.

Me importa mucho que este artículo pueda entenderlo cualquiera, más allá de su formación previa, porque justamente la idea es que este tipo de métodos pueden utilizarse en cualquier dominio. Así que los comentarios, dudas o mejoras en ese sentido son, por supuesto, más que bienvenidos.

(1) Por supuesto, inteligencia artificial es bastante más que clasificación, pero por algo hay que empezar.

(2) También surgen aquí algunos problemas éticos, bastante evidentes. Aunque no es el motivo de este artículo, no puedo dejar de mencionar que es un tema muy importante y que, por suerte, se está empezando a estudiar desde diferentes ópticas. También es bueno notar que el aspecto ético aparece ya al definir el problema, más allá de que se resuelva con métodos de inteligencia artificial, o no.