¿Cómo funciona AlphaGo y por qué es diferente a DeepBlue?

Elbert Hubbar dijo una vez que “una máquina puede hacer el trabajo de 50 hombres corrientes pero ninguna máquina puede hacer el trabajo de un hombre extraordinario”. El escritor y filósofo estadounidense dejó esta cita a finales del siglo XIX pero si viviese en nuestros días seguramente tendría que rectificar, o al menos matizarla bastante.

Lo que quizá Hubbar pasó por alto es que la tecnología avanzaría tanto y tan rápido que seríamos capaces de construir “máquinas extraordinarias” capaces de superar a algunos de los hombres más extraordinarios. Han pasado exactamente 20 años desde que Deep Blue derrotó por primera vez al campeón mundial de ajedrez, Gary Kasparov y en la actualidad ningún humano es capaz ya de derrotar en el tablero a un ordenador.

De hecho, el móvil que tienes ahora mismo en tus manos posee mayor capacidad de procesamiento que Deep Blue. Veinte años después de la caída (ajedrecística) del humano contra la máquina, ya nadie puede competir con ellas y existen torneos solamente para programas informáticos en los que ni el más experimentado Maestro internacional tendría posibilidades.

Aquella primera derrota en 1996 de Kasparov contra Deep Blue, no fue la primera ocasión que una máquina batía a un humano (dos años antes el software Chinook se hacía fuerte en el juego de damas) y por supuesto, tampoco sería la última. Otros programas informáticos como Cepheus al poker o Watson en el concurso Jeopardy han vencido a los mejores jugadores humanos en sus propias especialidades.

Sin embargo, el GO aún parecía un pequeño reducto al que el poder informático todavía no tenía acceso. Los expertos consideraban que aún faltaban muchos años, incluso décadas, para que una máquina pudiese con el mejor de los jugadores de carne y hueso… se equivocaron: El programa informático AlphaGo, desarrollado por Google en su proyecto DeepMind, ha barrido del tablero a Lee Sedol, el jugador más potente del mundo.

La trayectoria del algoritmo ha sido demoledora: Ganó por 5-0 al campeón chino Fan Hui para posteriormente deshacerse cómodamente del prodigio surcoreano Lee Sedol por 4-1.

¿Por qué la victoria de Alpha Go es tan diferente?

En primer lugar por el propio juego. El GO es exponencialmente más diverso que cualquier otro juego, de hecho la mayoría lo considera como el juego más variado y difícil jamás inventado. Sus combinaciones son astronómicas: Mientras que un jugador de ajedrez tiene aproximadamente 30 posibilidades de movimientos diferentes en cada jugada, uno de GO se enfrenta ante un inmenso abanico de más de 250 posiciones cada vez que coge una piedrecita. Las posibilidades son tan abrumadoras que, tal y como dice Javier Salas en Materia, el GO permite que las fichas se dispongan en más combinaciones distintas que átomos hay en el universo.

En segundo lugar por la forma de desarrollar un programa. El GO es tan complicado que aprender lo que hacen los humanos es tan aleatorio que no sirve… En realidad podríamos decir que los humanos no saben a ciencia cierta lo que hacen: No podemos coger las partidas de un gran jugador de GO y replicarlas con un ordenador.

En el ajedrez gran parte de los  movimientos están predeterminados: las aperturas, los finales… pero en el GO se juega con elementos intuitivos y creativos imposibles de trasladar a algoritmos. Los creadores de AlphaGo no podían hacer como DeepBlue (que almacenaba millones de partidas de grandes maestros) usando exclusivamente la fuerza bruta, es decir calculando todos los posibles movimientos. El árbol de búsqueda es tan gigantesco en el GO que no es posible calcular todas las jugadas posibles.

Por tanto, AlphaGO es una perfecta combinación de diversas técnicas informáticas que, aunque ya eran conocidas previamente, se han unido de una manera sorprendentemente eficaz. Una suma de elementos que engloba dos redes neuronales artificiales con trece capas diferentes, cada una con de las cuales cuenta con 260.000 neuronas aproximadamente.

Algoritmos de aprendizaje guiado, aprendizaje con refuerzo y finalmente aprendizaje profundo (deep learning) sumados a un algoritmo de búsqueda en árbol de tipo Montecarlo que analiza las futuras combinaciones y respuestas a movimientos del adversario, devolviendo como resultado los movimientos más prometedores.

Ante la poca eficacia de la fuerza bruta en este juego, los diseñadores de AlphaGo optaron por lo más parecido a lo en una máquina se puede llamar “intuición”. Basándose en sus dos potentes redes neuronales artificiales, los algoritmos de AlphaGo analizan el tablero y toman una decisión de movimiento en función de qué probabilidades tiene de ganar.

Las dos redes neuronales artificiales de AlphaGo se dedican arduamente a dos tareas específicas: La primera red analiza la probabilidad de ganar, algo así como una estrategia general. La segunda red neuronal analiza todos los futuros movimientos posibles y cuál es la probabilidad de cada uno de ellos sea un movimiento ganador. Con esos porcentajes, el programa elije su próxima jugada.

Es un proceso de descarte de posibles jugadas. Puesto que en el GO hay tantas combinaciones, la tarea principal es reducir esos 250 movimientos posibles a un número menor con el que ya se pueda utilizar la fuerza bruta. Una vez que el programa se ha quedado con unos 20 movimientos prometedores y las posibles respuestas del adversario, AlphaGo vuelve a preguntarle a su red neuronal que vuelve a abrir el árbol de búsqueda y vuelve a reducir el número de jugadas… Así hasta llegar al  movimiento elegido.

Una vez que el adversario responde a ese movimiento, AlphaGo comienza de nuevo el proceso para evaluar y decidir su próxima jugada.

Agradecimientos a Francis Villatoro, Licenciado en Informática, Física y Doctor en Matemáticas, por su ayuda en la preparación y redacción de este artículo.