- NeoFronteras - http://neofronteras.com -

AlphaGo gana a un campeón de go

Un algoritmo de tipo caja negra gana a un jugador profesional del go, algo que no se esperaba que pasara hasta dentro de 10 años.

Foto

El go es un juego estratégico para dos jugadores originario de la antigua China con más de 2.500 años de antigüedad. De China pasó a Corea y Japón y ha ido evolucionando durante todo este tiempo.

Consiste en ir colocando unas fichas llamadas piedras en las intersecciones de una malla de líneas. El número de líneas ha ido cambiando. Ahora el tablero consta de 19 por 19 líneas, lo que proporciona 361 posiciones distintas.

Salen las negras y los dos jugadores van colocando alternativamente piedras de su color para intentar bloquear al contrario. La estrategia del go consiste en expandir el territorio propio cuando sea posible, atacar los puntos débiles del oponente y capturar sus piedras.

Se considera como quizás el juego de dos jugadores más complejo jamás diseñado. El número de configuraciones es muy grande, mucho más que el número de átomos del Universo, algo imposible de computar.

Para poder hacernos una idea podemos comparar el ajedrez con el go teniendo en cuenta el número de posibles movimientos cada vez. En el ajedrez serían unos 20, mientras que el go serían unos 200. Aunque en el ajedrez hay fichas distintas y en el go las del mismo jugador son todas iguales.

Los programas que ganan a los juegos de mesa como el ajedrez suelen basarse en gran medida en la “fuerza bruta” y usan un algoritmo de búsqueda sistemática con evaluación de la posición mediante heurísticos, pero esta estrategia no parece muy realista para ser aplicada a este juego.

En este caso se podría usar un poco de conocimiento y así crear un programa potente como pasa con el ajedrez, pero no es apropiado usar esta estrategia en go porque el juego está más basado en patrones que en un conjunto de reglas lógicas que se puedan describir.

Muchos predecían que una computadora no podría derrotar a un maestro de go en, como mínimo, 10 años.

Google DeepMind, una compañía británica de inteligencia artificial, decidió desarrollar un programa de inteligencia artificial que jugara muy bien al go. Lo llamaron AlphaGo.

Los desarrolladores de AlphaGo pensaron que lo ideal era otra aproximación distinta a las habituales. Así que crearon un programa que aprendiera por sí mismo. Se trata de un algoritmo de “caja negra” que cuando funciona no se sabe cómo lo hace, pues nadie ha programado al detalle el programa. Los detalles están ocultos en el interior del algoritmo y son creados por las experiencias que tiene tal algoritmo.

AlphaGo se basa en un programa construido a partir de una red neuronal (simulada) de 13 capas consistente en millones de conexiones. Este tipo de redes neuronales nacen ignorantes y hay que enseñarlas a hacer su tarea. En este caso se entrenó a la red mediante tres métodos.

En el primer caso se le mostró 30 millones de movimientos jugados en partidas reales entre humanos. En el segundo caso se hizo que jugara contra el programa Pachi, que era el programa más potente del momento y que evalúa mediante Montecarlo 100000 posibilidades por cada movimiento. En el tercer método se le enseño a jugar contra sí mismo.

Tras millones de partidas, en las que se usaba el autoaprendizaje por ensayo y error, el programa desarrolló una “intuición”. Aunque esto de la “intuición” es un término demasiado humano y no es igual a cómo trabaja este programa. El caso es que le permite reconocer los patrones del juego e identificar qué movimientos le darían la mejor probabilidad de ganar.

Además, los investigadores explotaron una técnica de búsqueda especial denominada árbol de búsqueda de Monte Carlo. Esta técnica, que se viene usando desde hace años, permite esencialmente usar estadísticas o atajos para determinar el mejor movimiento en lugar de simular todos los posibles resultados a un movimiento dado, algo que en go llevaría una eternidad.

El resultado es que la red neuronal busca un mínimo en un paisaje energético multidimensional muy complicado. La mayor novedad de este programa fue combinar juntos de manera elegante todos estos ingredientes.

No obstante el algoritmo es perfectamente determinista y replicable. Una partida la jugará siempre igual si se le devuelve al estado previo que tenía antes de jugarla.

Para implementar este software los desarrolladores usaron dos sistemas. Uno con 48 CPU y 8 GPU y un sistema distribuido de 1202 CPU en 176 GPU.

Lo que no pensaban estos desarrolladores es que fuera tan bueno que fuera capaz de derrotar en 5 a 0 en octubre pasado al jugador profesional de go Fan Hui. Aunque afirma que la primera derrota se debió a que cometió un error a propósito para ver cómo reaccionaba el programa. Este jugador fue tres veces campeón europeo.

El resultado ha superado todas las expectativas de sus creadores. Esta semana se publicaba el estudio al respecto.

Ahora esperan enfrentar este programa al mejor jugador del mundo de go: Lee Sedol. Esperan celebrar las partidas correspondientes este mes de marzo en Seul. Se predice que el maestro ganará al programa, pero que se sorprenderá de lo bueno que es el mismo. El premio es un millón de dólares que, en caso de ganar la maquina, se donará a obras de caridad.

También se espera que una versión mejorada de este programa termine ganando a este jugador u otro equivalente en el futuro.

Los creadores de AlphaGo quieren aplicar lo aprendido con estas técnicas a otros problemas del mundo real, como modelos climáticos, dialogo computerizado o análisis de tratamientos para enfermedades complejas. En un futuro estos investigadores predicen que este tipo de programas podrían proporcionar respuestas a asuntos abstractos sociales que puedan ser expresados como un juego, como en política o en negociaciones internacionales sobre el clima.

Sin embargo, antes de que dejemos en manos de las computadoras “intuitivas” la decisión de cómo se deben poner los remaches en el ala de un avión (o el futuro del clima terrestre), en lugar de en las de un ingeniero, sin ni siquiera saber cómo toman las decisiones por dentro, este tipo de máquinas tendrán que ganarse nuestra confianza.

El logro se vende como la primera vez que se simula algo así como un “intuición”, pero esto puede ser discutible. Es un algoritmo totalmente predecible y alejado, por tanto, del comportamiento humano o de tipo oráculo, como lo llaman en Ciencias de la Computación.

¿Qué será lo próximo? ¿Podría una computadora lo suficientemente “inteligente” desarrollar en el futuro un sentido del bien y el mal, como muchas veces se ha debatido?

Copyleft: atribuir con enlace a http://neofronteras.com/?p=4863 [1]

Fuentes y referencias:
Artículo original [2]
Foto:NeoFronteras.