Explicar la noticia de hace unos pocos días sobre AlphaGo Zero, el último avance en el algoritmo que fue capaz de ganar con gran ventaja a los tres mejores jugadores del mundo de Go, el llamado «ajedrez asiático», con unas reglas aparentemente muy sencillas pero con posibilidades combinatorias enormemente complicadas, puede ser relativamente complicado en el mundo occidental, donde la popularidad de este juego es relativamente escasa.
La noticia fue publicada originalmente por DeepMind, la compañía adquirida por Google en 2014, y bien reflejada tanto por MIT Tech Review como por The Atlantic, que se centran en explicar la diferencia entre el hito obtenido por AlphaGo Zero frente al llevado a cabo en enero de 2016 por AlphaGo. Las explicaciones pueden ayudar a entender algunos conceptos básicos de machine learning, y cómo esta disciplina podría evolucionar en el futuro.
Como ya comenté en su momento, lo que AlphaGo obtuvo cuando venció a los mejores jugadores del mundo fue un desarrollo de deep learning seguido de reinforcement learning: tras entrenar originalmente al algoritmo con todas las partidas de Go registradas en la historia del juego disponibles, se obtuvo una máquina capaz de imitar a los mejores jugadores, capaz de predecir sus jugadas en un 57% de las ocasiones, pero incapaz, por lo general, de mejorar su rendimiento en una partida. Para lograrlo, se planteó entrenar a esa máquina con nuevas partidas inventadas por sí misma mediante combinatoria, dando lugar a jugadas previamente inexistentes, no llevadas a cabo anteriormente, con probabilidades muy bajas y no contempladas nunca – y por tanto, no anticipables – por jugadores humanos, pero que fueron las que, en último término, lograron decidir algunas de las partidas definitivas. AlphaGo logró ganar a los mejores jugadores humanos gracias a haber probado anteriormente espacios combinatorios que, sencillamente, nunca habían sido probados anteriormente en ninguna partida, y que podían, a pesar de su bajísima probabilidad, dar lugar a estrategias ganadoras.
¿Qué aporta, sobre esto, AlphaGo Zero? Sencillamente, eliminar la primera fase, la del aporte del registro histórico de partidas de Go jugadas por humanos. Para obtener este nuevo algoritmo, que ha sido capaz de vencer al anterior AlphaGo por cien partidas a cero, se partió, como su nombre indica, desde cero. Un algoritmo con las reglas del juego definidas, que comienza desde ahí a probar movimientos en partidas que juega contra sí mismo. Si tienes una suscripción, lo puedes leer en Nature. Tras el adecuado número de iteraciones, muchos millones de partidas, ese algoritmo, que nunca ha recibido información sobre partidas jugadas con humanos, supera al anterior, lo que elimina la necesidad, en problemas que puedan ser homologados a este – problemas estables con entornos altamente predecibles – de partir de una amplia cantidad de datos históricos.
¿Qué debería llevarnos a pensar un hito como este? Para un directivo, significa que tendría que empezar a pensar qué operaciones en su cadena de valor o en su día a día pueden caer dentro de este tipo de situaciones: espacios combinatorios muy amplios, pero que generan resultados predecibles en torno a reglas conocidas y bien definidas. Obviamente, no se trata de la solución a todos los problemas, pero sí posiblemente a algunos. Es el momento de empezar a plantearnos este tipo de cuestiones: qué problemas podemos resolver mediante algoritmos que aprenden a partir de datos históricos, recogidos en nuestros ficheros transaccionales, en nuestros CRMs o en nuestros ERP a lo largo de años de operativa, y cuáles pueden solucionarse sin necesidad de esos datos, simplemente definiendo bien las reglas y entrenando al algoritmo desde un espacio combinatorio limpio, desde cero.
La alternativa no es poca cosa: en la inmensa mayoría de las ocasiones, la mayor inversión en tiempo y recursos en los proyectos de machine learning, en torno a un 80%, tiene que ver con la recolección de datos hoy almacenados en modelos relacionales, con su transformación y con su preparación. Si para algunos proyectos podemos partir de cero, la situación en términos de reducción de coste y de incremento del rendimiento puede ser considerable, y puede convertirse en interesantes ventajas competitivas. Entender ese tipo de situaciones, ser capaces de pensar en términos de entrenamiento de algoritmos, y desarrollar una cierta sensibilidad sobre qué técnicas pueden servir a qué situaciones son precisamente el tipo de habilidades que las compañías tendrían que estar ahora mismo desarrollando en sus directivos, no discusiones sobre dudosos futuros apocalípticos, robots asesinos y mundos post-trabajo. De hecho, lo que queda es, precisamente, mucho trabajo por hacer.
This post is also available in English in my Medium page, “Has anybody really grasped the significance of AlphaGo Zero?»
Trato de entender que se habla de «aprender de si mismo», aunque ande flotando la limitación de que sean entornos predecibles. Empiezo a pensar que el dichoso algoritmo tiene algo más de «vida propia» de la que le concedía. Algo que puede permitirle evitar esa limitación.
La mejora no es baladí. Sobre todo teniendo en cuenta que Zero parte de la nada (solo las reglas del juego) y que, solo jugando contra sí misma, aprende en pocos días hasta el punto de ganar a los mejores jugadores del mundo y también de batir 100-0 a la versión anterior de AlphaGo
Los grandes jugadores de Go humanos dicen que algunos movimientos de Zero parecen alienígenas.
Además, AlphaGo Zero necesita un orden de magnitud menos de potencia computacional que la versión anterior, que a su vez ganó al campeón del mundo Ke Jie en mayo por 3-0.
No estaría mal aplicar esta línea de desarrollo, por ejemplo, al ajedrez. Para ver si supera a los programas actuales, basados en ramificaciones de jugadas lo más rápidas y profundas posibles, y en podas de ramas que conlleven una gran probabilidad de ser perdedoras.
Lo que entiendo es que AlphaGo Zero aprende solo, jugando contra sí mismo, pero solamente después de jugar varios millones de partidas consigue ganar.
Y claro, con mas de 5 millones de partidas jugadas ya tiene en su memoria un histórico muy importante, mayor que el de cualquier ser humano jugador de Go a lo largo de toda su vida. Y es por eso que no es necesario alimentarle de partidas previamente.
Esto marca un antes y un después. Hasta ahora las máquinas aprendían de nosotros, éramos los humanos los que le decíamos a la máquina «en esta foto hay un gato, en esta otra no lo hay». En algunas tareas llegaban a ser mejores que nosotros, pero el ser humano seguía siendo el maestro, la medida de todas las cosas.
Esto se acabó. Ahora, en algunos casos, la máquina puede obtener mejores resultados si no aprende de los humanos, sino que aprende por sí misma partiendo de cero. Y además lo hace a una velocidad de vértigo. En cuestión de días no solo supera a la Humanidad, sino también a aquellas IAs que fueron nuestros alumnos. Para el desarrollo de todo su potencial, para la máquina somos un estorbo.
Las aplicaciones prácticas son innumerables. Podemos pasar en muy poco tiempo de unas máquinas que son extremadamente torpes y lentas para coger objetos, sobre todo si están mezclados con otros, a que sean extremadamente hábiles y rápidas en esa labor y en otras muchas. De hecho la clave va a estar en el desarrollo de los simuladores necesarios para que la máquina pueda entrenarse a toda velocidad, sin las limitaciones del mundo físico.
Sin duda es un buen avance pero aquí radica la mayor dificultad: «simplemente definiendo bien las reglas y entrenando al algoritmo desde un espacio combinatorio limpio».
Este «simplemente» me ha chirriado por completo. Creo que la gran dificultad de aplicar la Inteligencia Artificial (IA) y el Machine learning, es que las reglas «del juego» y la combinatoria no son sencillas. En el ajedrez sí: reglas fáciles, claras y sin eufemismos ni dobles intenciones.
Los humanos tenemos doble moral, una ética relativa, tomamos decisiones erróneas a través del cerebro reptiliano. ¿Como planteas todas estas incertidumbres como variables y como reglas del juego? Ni incluso en el tema económico, donde el reciente ganador del premio Nobel de Economía ha demostrado que somos irracionales.
A no ser que hagamos IA’s más humanas que los humanos (como hizo la Tyrell corporation) no sé hasta qué punto un robot puede aportar valor añadido más allá de repetir operaciones muy rápidamente y memorizar muchos datos.
Como bien dices, queda mucho trabajo por hacer y, desde mi punto de vista, no hay que hacer un robot que «gane» a un humano, sino un robot que tenga «sus mismos defectos» para que puedan jugar en un mismo entorno, con unas mismas reglas y mismas variables. Tienen que, metafóricamente, hablar el mismo idioma.
excepcional artículo, que me lleva a recordar´algunas de las premisas de la reingeniería de procesos de los ’90: partir de un folio en blanco para evitar prejuicios y malos hábitos en el diseño de soluciones inteligentes, basándonos en el conocimiento y no tnto en los datos.