En inteligencia artificial se recuerda el año 1997 porque Deep Blue (IBM) venció a Gary Kasparov, campeón del mundo de ajedrez. El año 2016 será recordado porque AlphaGo (Google DeepMind) ha vencido a Fan Hui (dan 2), campeón europeo de Go. En marzo luchará contra Lee Sedol (dan 9), el jugador de Go más fuerte del mundo. Aunque todos los expertos esperan AlphaGo pierda, todos temen que en un futuro torneo en 2017 acabe venciendo. El algoritmo tipo caja negra que usa AlphaGo ha sido publicado en Nature.
Hoy en día los programas de ajedrez son más fuertes que los humanos, pero juegan un ajedrez diferente, menos bello, menos humano, basado en el uso de la fuerza bruta en lugar de una estrategia planificada. Con los programas de Go acabará pasando lo mismo, jugarán sin cometer errores y vencerán siempre que el jugador humano cometa un error. En pocos años los programas de Go sólo competirán contra otros programas y los humanos sólo los usarán para entrenarse.
El artículo es David Silver et al., “Mastering the game of Go with deep neural networks and tree search,” Nature 529: 484–489 (28 Jan 2016), doi: 10.1038/nature16961; más información en Elizabeth Gibney, “Google AI algorithm masters ancient game of Go,” News, Nature 529: 445–446 (28 Jan 2016), doi: 10.1038/529445a; la opinión de jugadores expertos en Elizabeth Gibney, “Go players react to computer defeat,” News, Nature (28 Jan 2016), doi: 10.1038/nature.2016.19255; no me gusta el sensacionalismo del editorial “Digital intuition,” Nature 529: 437 (28 Jan 2016), doi: 10.1038/529437a, pues el algoritmo de AlphaGo es todo lo contrario a la intuición humana.
En español puedes leer a “La inteligencia artificial de Google derrota al campeón europeo de Go”, Agencia SINC, 27 Ene 2016; Javier Salas, “La inteligencia artificial conquista el último tablero de los humanos”, Materia, El País, 27 Ene 2016; Teresa Guerrero, “La máquina vuelve a ganar al hombre”, Ciencia, El Mundo, 27 Ene 2016; y muchos más.
Los algoritmos de optimización basados en redes de neuronas artificiales son algoritmos tipo “caja negra” (black box). Cuando funcionan bien, nadie comprende el porqué. La clave es la fase de aprendizaje, en la que se entrena la red con cierto número de ejemplos para que almacene una serie de representaciones internas (patrones) asociadas a dichos ejemplos. La red bien entrenada generaliza dichos ejemplos (reconoce patrones diferentes a los que almacenó como próximos a alguno de ellos) y gracias a ello es capaz de realizar de forma eficiente cierta tarea (como resolver un problema de optimización o evaluar un movimiento en un juego como el Go). A diferencia de los algoritmos estadísticos de optimización, hoy en día no es posible reconstruir el proceso seguido por la red (hay estudios que han intentado hacerlo mediante técnicas de análisis de sensibilidad, pero por ahora no han tenido éxito).
Se considera que el Go es un juego más difícil que el ajedrez porque su árbol de búsqueda es mayor. Siendo b el número de movimientos legales en cada posición y d el número total de movimientos, el ajedrez tiene b ≈ 35 y d ≈ 80, mientras que el Go alcanza b ≈ 250 y d ≈ 150. El resultado es que un algoritmo de búsqueda sistemática con evaluación de la posición mediante heurísticos (como se suele usar en ajedrez) no es factible. La opinión de algunos expertos en inteligencia artificial (así lo afirma el artículo en Nature) es que faltaban unos diez años para que un programa venciera a un campeón humano.
AlphaGo usa una red de neuronas artificiales con trece capas ocultas para evaluar los posibles movimientos. En el entrenamiento de la red se han usado tres fases. Una primera fase de aprendizaje supervisado (para que la red aprenda de partidas jugadas por humanos expertos). Se han usado 30 millones de posiciones del KGS Go Server, logrando que la red prediga el movimiento de los expertos un 57,0% de las veces (otros programas de Go no superan un 44,4%). Una segunda fase de aprendizaje con refuerzo (para que la red aprenda de partidas jugadas contra otros programas de Go). AlphaGo ha jugado contra el programa Pachi (el más fuerte hasta ahora, que evalúa mediante Montecarlo 100 000 posibilidades para cada movimiento) y ha vencido el 85% de las partidas (otros programas que usan aprendizaje supervisado solo logran vencer a Pachi un 12% de las partidas). Y una tercera fase, también de aprendizaje con refuerzo, en la que AlphaGo se ha enfrentado contra sí mismo (en 30 millones de movimientos).
Al final del entrenamiento la red es capaz de evaluar qué movimientos son más prometedores a la hora de ganar. Para recorrer el árbol de búsqueda se usa un algoritmo de Montecarlo (como en la mayoría de los programas que juegan al Go) que genera movimientos aleatorios siguiendo una distribución de probabilidad sesgada gracias a la evaluación que ofrece la red de neuronas artificiales (en lugar de un heurístico como otros programas que juegan al Go). La red generaliza los patrones aprendidos a la hora de evaluar nuevos movimientos. Su evaluación permite la poda del árbol de búsqueda (se descartan movimientos poco prometedores) y sesga la búsqueda en profundidad (se prefieren los movimientos mejor evaluados por la red).
En el torneo contra Fan Hui se jugaron cinco partidas y en todas ganó AlphaGo. En la primera Hui cometió un error torpe (él afirma que de forma intencionada, para ver la fuerza del programa). Le sorprendió que AlphaGo no dudara y que le diera un palizón (le ganó por 2,5 puntos). En las siguientes partidas jugó lo mejor que pudo, tratando de no cometer ningún error. Para un humano es difícil evitar los errores. AlphaGo no comete errores (aunque juega sin estrategia, por pura fuerza bruta guiada por la red de neuronas artificiales). Las cuatro partidas siguientes se jugaron hasta que Hui sintió que había cometido un error, momento en que se rindió (abandonó porque estimó que AlphaGo acabaría ganándole). El resultado es que, por primera vez en la historia del Go, un programa ha sido capaz de vencer a todo un campeón europeo.
El editorial de Nature habla de “intuición digital” porque nadie sabe cómo funciona la “caja negra” de AlphaGo (cómo generaliza la red de neuronas artificiales). En mi opinión es excesivo clasificar de intuitivo el mecanismo de generalización de patrones de la red. El uso de redes de neuronas artificiales en algoritmos de aprendizaje con refuerzo es muy antiguo y nunca se ha hablado de que muestren ningún tipo de intuición. Afirmar que los algoritmos tipo “caja negra” funcionan pensando sin pensar (“thinking without thinking” escribe el editor) me parece sensacionalista.
No podemos reconstruir los pasos seguidos por la red para generalizar los patrones que tiene almacenados porque la red busca un mínimo en un paisaje energético multidimensional muy complicado. Pero el algoritmo es perfectamente determinista y replicable. Cuando hablamos de intuición humana nunca pensamos en estos términos. En informática el concepto de intuición se describe mejor mediante el concepto de óraculo. Ni yo, ni los autores del artículo en Nature, nos atrevemos a afirmar que AlphaGo use la red de neuronas artificiales como oráculo para el algoritmo de Montecarlo (como sugiere el editor de Nature).
La versión de AlphaGo que ha vencido a Fan Hui usa 40 hebras de búsqueda, 48 CPU y 8 GPU (también se ha implementado una versión distribuida que usa 40 hebras de búsqueda, 1202 CPU y 176 GPU). El resultado es el programa de Go más fuerte en la actualidad capaz de ganar el 99,8% de las partidas que ha jugado contra otros programas de Go (en concreto, Crazy Stone, Zen, Pachi, Fuego y GnuGo, eso sí, limitando a cinco segundos el tiempo para cada movimiento). En concreto, ha ganado 494 de las 495 partidas jugadas.
El torneo contra Fan Hui, un jugador profesional de Go que ha sido campeón europeo en 2013, 2014 y 2015 se jugó entre el 5 y el 9 de octubre de 2015. AlphaGo ganó las cinco partidas a Fan Hui. La primera vez que un programa de Go logra vencer a un jugador profesional en un torneo. La prueba de fuego será en marzo de 2016, cuando AlphaGo se enfrente a Lee Sedol. Todo el mundo espera que el humano le dé un palizón, pero todo el mundo teme que se repita lo que pasó con Kasparov y que en un futuro torneo, una versión mejorada de AlphaGo, acabe venciéndole. Sólo el tiempo dirá que ocurre…
La entrada Los algoritmos de caja negra de AlphaGo fue escrita en La Ciencia de la Mula Francis.