Encender el ordenador. Hacerse un café. Ponerse a escribir. Con este sencillo algoritmo, he conseguido terminar dos novelas. Mic drop! Un algoritmo no es más que un conjunto ordenado y finito de pasos diseñado para llevar a cabo una tarea. Ya seas un humano, una verdura o un iphone, los algoritmos rigen tu vida. Edu, pero un iphone no tiene la capacidad de elegir como yo. Elegir, tomar decisiones, libre albedrío, luego hablamos de ello.
Los algoritmos, al contrario que los adultos, no se complican. Si cojo siempre este camino, llegaré al mismo lugar. Hay algoritmos sencillos, como el de un apapacho (la versión evolucionada de un abrazo o abrazo.AI). Abrir los brazos, juntar los corazones, rozarse los mofletes. Pero ¡ojo! porque depende del país donde estés, tendrá que ser de un lado u otro. Si estás en Italia, por la izquierda, para todos los demás, por la derecha. Aparecen así las condiciones if…then…, condiciones con las que el ser humano ha conseguido darse abrazos con comodida, programar el tetris y llegar a la luna.
Algoritmos if…then…
Fue una máquina (Deep Blue) hecha con este tipo de algoritmos, la que consiguió derrotar al campeón de ajedrez (Kasparov) el siglo pasado. Primero, se convirtieron las reglas y el tablero en un conjunto complejo de sentencias if…then… Segundo, se le dio un valor numérico en proporción a la importancia de cada pieza. Tercero, se alimentó a la máquina con todas las partidas jugadas en la historia, como un atracón de Wikipedia antes de exámenes. Y ale, a jugar. Desde la primera partida, ya fue competitiva. Para limpiar la escena de robótica, una persona movía las piezas físicas según ordenaba la máquina, programada a su vez por otro ser humano. ¿El ser humano al servicio de la máquina o viceversa?
Al final de la primera partida, sucedió algo… ¿anecdótico?. Deep Blue adelantó su torre cinco posiciones. La jugada no parecía tener sentido alguno. El juego se debatía en la otra parte del tablero y ese movimiento no parecía generar ningún beneficio defensivo ni ofensivo. Al siguiente movimiento, Kasparov dio mate. Pero aquella jugada, lo derrotó. ¿Por qué la máquina había hecho ese movimiento? Kasparov dedujo erróneamente que la máquina era capaz de adelantarse en el juego más allá de las quince jugadas que solía manejar él. Esa capacidad enorme lo atormentó de tal manera que ya no volvió a ganar ninguna partida. En la sexta partida, Kasparov abandonó en el movimiento 19. Deep Blue no mostró emoción de júbilo alguna, ni siquiera un beep ochentero de 440 hercios.
A priori, puede parecer sencillo programar un Deep Blue para cualquier aspecto de la vida. Un algoritmo basado en un árbol de decisiones if…then… podría solucionarnos todos los problemas. Pero este tipo de algoritmos tiene dos puntos débiles notables. En primer lugar, nunca se pueden predecir todas las acciones posibles, a veces hay imprevistos o incluso a veces, subestimamos el poder condicional. Un ejemplar de la primera edición de Al faro de Virginia Woolf, alcanzó en internet el valor de varios millones de dólares. Fue una escalada de precios que se descontroló entre los algoritmos de dos librerías en competencia (P1 y P2). Una quería ser siempre un poco más barata que la otra, por lo que sus precios se fijaban deduciendo un porcentaje fijo a los precios de la otra (P1 = 90% de P2). Y la otra quería presumir de tener la colección más grande de libros. Cuando no disponía de alguno, se lo compraba a la competencia y le aplicaba un porcentaje de beneficio (P2 = 120% de P1). Las clausulas if…then… empezaron a trabajar y al recalcular constantemente un precio en función del otro, el precio final se disparó. El segundo de los puntos débiles de este tipo de algoritmos son la complejidad del cálculo y su creciente dificultad exponencial.
Anoche abrí el frigorífico y tenía dos tomates, una cebolla, lechuga picada, unos pepinillos en vinagre, zanahorias y algo de queso fresco. Seis ingredientes perfectos para una ensalada. No tenía mucha hambre, así que pensé en no usar el queso, pero el queso y el tomate se llevan tan bien… A lo mejor los pepinillos son muy fuertes para la noche… Qué pereza rallar la zanahoria… Si me hago una de tomate y cebolla solamente, la lechuga se va a estropear… Las variaciones de los seis ingredientes en matemáticas me daban un total de 63 combinaciones posibles de ensalada. Quién puede decidir así. Y eso que no recordé que tenía una lata de atún, lo cual habría duplicado las opciones. Al final, pedí pizza.
[Consideraciones matemáticas de lectura opcional: hablamos de variaciones (2n–1) porque no tenemos que usar todos los ingredientes. Si en vez de una ensalada, queremos hacer una lasaña, donde el orden de las capas es importante y al gusto, tendríamos una permutación (n!). A partir de cuatro ingredientes, preferiremos siempre cenar una ensalada para no tener que decidir. Pero si vamos a comer en la cafetería de la universidad, donde el menú del día consta de un primer plato, segundo y postre y para cada uno tenemos 2 opciones, hablamos de una combinación (23)].
Ataques de fuerza bruta
Consideraciones matemáticas aparte, lo que quiero dejar constancia es de la rápida complejización de un asunto, por menor que sea. Frente al cocinero universitario evalúo si me apetecen lentejas o paella de primero, qué de segundo y si unas natillas o fruta. Recorro todo el árbol de las 8 posibles combinaciones y decido el mood gastronómico en el que me encuentro, mientras los compañeros golpean mi bandeja para que me apresure. Esto se conoce como un «ataque de fuerza bruta». No el empuje de la bandeja, sino el recorrido completo del árbol. Ocho combinaciones se pueden evaluar rápidamente, pero y si en vez de 2 opciones por plato, tenemos 5. Las posibles combinaciones suben entonces a 125. No sé si mis compañeros tendrán tanta paciencia.
¿A dónde quiero llegar con todo esto? Pues que, en cualquier cálculo de decisiones, en cuanto la cosa se complica un poquito, la dificultad lo explota todo y se pierde la medida. El problema del viajante, el del folio que se dobla por la mitad hasta ocupar el universo por completo, la película que veré esta noche en Netflix. Son todos ellos problemas inabordables por fuerza bruta debido a su dimensión exponencial. Esto es así incluso para un ordenador como Deep Blue. ¿Cómo puede calcular entonces la máquina el próximo movimiento sin que transcurran eones?
Nunca se me ha dado bien tomar decisiones y me agobio, pero frente al mostrador de comidas, me decido en un tiempo prudencial. Incluso aunque haya 5 opciones por plato. Puedo decidir antes de que me saquen de la fila porque no recorro todo el árbol de decisiones. Entre las cinco opciones de primero hay alcachofas, un plato inasumible para mí. Cierro entonces toda una rama dentro del árbol de decisiones. Además, decido que no quiero postre y solo tomaré café. Así las 125 combinaciones posibles se han reducido a 20.
Deep Blue hace lo mismo. El caballo solo puede mover en ele. Así se quita una gran parte del árbol y puede asumir los costes temporales del cálculo. Esto, junto al incremento de la capacidad de computación, le permite adelantarse unas cuantas jugadas, predecir los futuros posibles y elegir el más adecuado a sus intereses. Por eso movió aquella torre de forma incomprensible. Con todo el futuro a su disposición, eligió lo mejor. Kasparov vio en ese movimiento una genialidad. La propietaria de Deep Blue, IBM, confesó que aquella jugada fue como lanzarse un triple desde tu propio campo sobre la bocina. Los movimientos en ajedrez disponen de un tiempo determinado. Deep Blue alcanzó ese tiempo sin terminar de recorrer el árbol de decisiones. A falta de una conclusión clara, sin un futuro prometedor, la máquina estaba programada para elegir un movimiento al azar. Al parecer, Deep Blue, como yo hago, bajo presión, toma decisiones aleatorias. Cómo no empatizar con ella.
La pregunta es si todo este despliegue de programación de algoritmos y cálculo computacional para jugar al ajedrez además de lo espectacular tiene alguna utilidad. Si en vez de al ajedrez, queremos jugar al parchís o al mus, tenemos que empezar de cero y programar un nuevo Deep Blue específico para cada juego. Es más, si queremos resolver problemas más complejos, como las desigualdades sociales, el cambio climático o la búsqueda de la felicidad, ¿podremos programar un Deep Blue lo suficientemente complejo con todas las sentencias if…then… necesarias? No parece viable.
Aprendizaje automático
Los niños son especialistas en los ataques de fuerza bruta. Cuando quieren algo recorren de forma incansable todo el árbol de posibilidades hasta conseguirlo. Pero los niños no aprenden a jugar al pilla-pilla o al escondite chocando contra la pared cientos de veces o metiéndose entre las zarzas. Los niños aprenden viendo jugar a otros niños al pilla-pilla o al escondite. Llegan, preguntan que si se puede y en diez minutos ya están integrados y conocen la dinámica del juego sin que nadie les haya explicado las normas, lo que se puede hacer y lo que no. En un aprendizaje orgánico, detectan automáticamente los patrones que se despliegan en el juego y los imitan. En algo así debió de fijarse la empresa Deep Mind, allá por el 2010, cuando empezó a programar una máquina de juegos con una mentalidad muy distinta a la que tenía Deep Blue. No le enseñaron las reglas, ni le dieron ninguna explicación, tan solo la pusieron a jugar, esta vez al Go, un juego chino de estrategia con similitudes ajedrecísticas. Al principio, la máquina era un desastre. Hacía movimientos no permitidos o, si estaban permitidos, no tenían un sentido estratégico en busca de la victoria. Sus creadores solo le indicaban a cada movimiento cuando este era válido y cuando no. Del mismo modo que se refuerza a un perro (galleta) o a un adulto (salario) cuando reproduce un comportamiento que consideramos adecuado. Así la máquina, que en un principio parecía inútil y torpe, fue aprendiendo las reglas del juego. Cuánto más jugaba, más rápido aprendía. Como si fuese un niño en el parque.
En 2015, Deep Mind puso a la máquina a jugar contra el campeón del mundo de Go, un humano. En la jugada 37ª, Deep Mind hizo un movimiento extraño, sorprendente y, a priori, inútil. Todo el mundo se sonrió, recordando aquel avance de torre aleatorio e incierto de Deep Blue, y pensaron que era una limitación de la máquina. La partida siguió desarrollándose y se desplazó hacia el lado del tablero donde se produjo la jugada «aventurada». Dicha jugada demostró ser letal. Nada tuvo que ver con una limitación de cálculo computacional o una dimensión exponencial inalcanzable. Fue un movimiento claramente premeditado y creativo. La audiencia que observaba la partida enmudeció. Deep Mind ni se inmutó. En un ataque de humanización sentimental, la asociación de Go condecoró a la máquina con el número uno del ránking mundial. Máquinas y humanos iniciaban la convivencia. Empezaba la era del aprendizaje automático.