miércoles, 6 de diciembre de 2017

AlphaZero derrota a StockFish 8 tras tan sólo 4 horas de auto-aprendizaje

AlphaZero, un programa informático de Google basado en redes neuronales, ha logrado derrotar a StockFish 8, uno de los motores de ajedrez más potentes del mundo. Para lograrlo, tan sólo ha necesitado conocer las reglas del juego y 4 horas de entrenamiento consigo mismo.


AlphaGo saltó a la fama hace un par de años por ser el primer programa de Inteligencia Artificial capaz de derrotar a un jugador profesional de Go (uno de los juegos más complejos del mundo, computacionalmente al menos, más aún que el ajedrez), concretamente al campeón surcoreano Lee Sedol.

Hace poco más de un mes, DeepMind (la empresa creadora de AlphaGo, propiedad de Google) desarrolló AlphaGo Zero, una aplicación que fue capaz de vencer a su predecesora, AlphaGo, tras jugar consigo mismo durante 40 días, con las reglas del juego como único conocimiento previo.

Ayer se dio a conocer el desarrollo de AlphaZero, una generalización del algoritmo empleado en AlphaGoZero, válido por tanto para otros propósitos distintos de ganar al Go.      Publicación del artículo     Artículo en .pdf

Pues bien, AlphaZero ha logrado derrotar a StockFish tras tan sólo 4 horas de auto-aprendizaje (es decir, jugando contra sí mismo).

Tabla extraída de  arXiv:1712.01815v1
El resultado del match a 100 partidas (50 con cada color, a un ritmo de 1 minuto finish por jugada) fue de 64 a 36, saliendo AlphaZero totalmente invicto del encuentro.
Para quien no lo conozca, StockFish es un motor de ajedrez de código abierto (alojado en GitHub) que en 2016 se proclamó campeón del TCEC (Top Chess Engine Championship). En definitiva, uno de los mejores motores de ajedrez del mundo).

En primer lugar, parece justo aclarar que las condiciones en las que se jugó el match no fueron las óptimas para StockFish:
  • StockFish compitió sobre un ordenador de 64 núcleos, cuando él está optimizado para correr en ordenadores de un sólo núcleo; mientras que AlphaZero corría sobre otro hardware distinto (probablemente, el óptimo para él).
  • No está todavía confirmado, pero parece que StockFish no usó la tabla de finales Syzygy.
    Syzygy es una 'base de datos' de finales de 6 piezas que tiene precalculados todos los finales en los que quedan 6 piezas o menos sobre el tablero; lo que permite guiar a quien la use (persona u programa de ordenador) a través de cualquier final de estas características sin necesidad de cálculo alguno (ganando la partida si es que el final puede ganarse, o entablándola en el caso en el que éste sea el mejor resultado posible para esa posición).
    StockFish no es especialmente fuerte jugando finales, al no estar preparado para ello debido precisamente a la existencia de las citadas tablas de finales.
  • El ritmo de juego, 1 minuto finish por jugada, tampoco fue el óptimo para que StockFish mostrara todo su potencial.
  • La versión de StockFish utilizada no es la última disponible (aunque las mejoras alcanzadas durante el último año de desarrollo de StockFish no son significativas).
Tras estas aclaraciones de rigor, sólo cabe decir que el hecho de que AlphaZero (con tan sólo 4 horas de aprendizaje jugando contra sí mismo) haya logrado vencer a un programa de código abierto tan fuerte y con tantas horas de desarrollo detrás como StockFish, es simple y llanamente impresionante.

Objetivamente no lo puedo presentar como un hito para la Inteligencia Artificial, ya que el verdadero logro fue que AlphaGo Zero lograra vencer a AlphaGo hace algo más de un mes. La generalización del algoritmo de AlphaGo Zero era sin duda uno de los pasos más esperados en este campo, que no hace sino confirmar el potencial del aprendizaje por refuerzo (Reinforcement Learning, RL) dentro del Machine Learning.

Sin embargo, esta cómoda victoria de AlphaZero sobre StockFish 8 va a convertirse sin lugar a dudas en uno de los más importantes hitos ajedrecísticos de los últimos tiempos.

AlphaZero ha logrado, con tan sólo 4 horas de aprendizaje, convertirse en uno* de los programas de ajedrez más fuerte del mundo.

*(concedámosle a StockFish, Houdini, Komodo, etc. el beneplácito de la duda)


Eduardo Cáceres de la Calle