AlphaGo: Un nerd de un billón de neuronas

Cachivache
Cachivache Media
Published in
7 min readApr 15, 2016
Ilustración: Kalia Leon/Cachivache Media

Por: Alejandro Pérez Malagón

Go es un juego chino. Durante mucho tiempo se supuso que los mejores jugadores eran los japoneses, pero cuando en los 90 empezaron los torneos internacionales se descubrió que los coreanos los ganaban todos. Los humanos (fundamentalmente asiáticos y nerds) llevamos jugándolo unos 2500 años. Y ahora, por primera vez, no somos los que mejor lo hacemos.

Si te interesa el Go y/o la inteligencia artificial (IA) entonces ya sabrás la noticia. Google, que tiene cierta morbosa fascinación por el juego, logró entrenar a una IA capaz de derrotar a uno de los mejores jugadores en un match de 4 partidas. Nada menos que al (¿ex?) campeón mundial, el coreano Lee Sedol.

Ahora, si no te interesa el Go ni las IA probablemente dirás ¿por qué tanta bulla al respecto? ¿Acaso Deep Blue no humilló a Kasparov hace ya casi 20 años en un torneo similar de ajedrez? ¿y el ajedrez no es el juego ciencia o algo así? ¿Es que el Go es más difícil? La respuesta es sí y no. Ambos juegos son muy difíciles, pero aparentemente el chino es más intuitivo que el indio. Y tiene muchísimas más movidas posibles por cada jugada.

Cuando Edward Lasker leyó sobre el Go por primera vez, allá en el Berlín imperial de 1906, ya se destacaba como un combativo jugador amateur de ajedrez. Años después sería el único en su clase capaz de medirse de tú a tú con profesionales como Capablanca y Alekin. La noción de que otro juego de mesa pudiera rivalizar en complejidad con el juego ciencia le pareció simpática, pero ridícula. Un tiempo después conoció a un estudiante japonés que podía jugarlo y Edward comprendió que el Go era muy complejo.

El alemán empezó a entrenar y avisó a su pariente Emanuel Lasker, campeón mundial de ajedrez, que también se interesó seriamente en el juego. Unos años más tarde ambos podían derrotar a su maestro, un tal Yasugoro que tampoco crean que jugaba muy bien. El caso es que un matemático japonés, jugador amateur fuerte de Go, visitó la ciudad y los Laskers quisieron probar su fuerza contra él. El nipón les permitió hacer 9 movimientos antes de comenzar a jugar y derrotó a los ajedrecistas casi sin pensar, después de que estos jugaran consultando las movidas entre sí y considerándolas a profundidad. Después Edward escribiría “Mientras que las reglas barrocas del ajedrez solo podrían haber sido creadas por los humanos, las reglas del Go son tan elegantes, orgánicas y rigurosamente lógicas que si existen algunas otras formas de inteligencia en el universo seguramente juegan Go”.

La complejidad del Go tiene mucho que ver con la simplicidad de sus reglas, por contradictorio que suene. Y también con el tamaño del tablero. Mientras en el ajedrez todo ocurre en 64 cuadritos de colores alternos, en el Go tenemos 361 de estas figuras (una cuadrícula de 19 x 19) y cada jugador cuenta con unas 180 fichas de color blanco o color negro. Las piezas del juego ciencia están limitadas en cantidad y tipos de movimiento, mientras que todas las fichas del Go se comportan de la misma manera. Esto aumenta drásticamente la cantidad de movidas posibles, las cuales siempre superan la media centena y normalmente oscilan entre 150 y 200. En cambio, en el juego de las torres y los alfiles el promedio de jugadas posibles es 37.

Esas características provocan un aumento contundente del volumen de algo llamado “espacio de búsqueda”. En la ciencia de la computación se le llama así al conjunto de todas las posibles opciones que hay que revisar para tomar una decisión. El espacio de búsqueda del Go es mucho mayor que el del ajedrez. Las computadoras, como los humanos, intentan considerar diferentes movidas a partir de una posición determinada y tratan de analizar las posibles progresiones. Pero los humanos tenemos una ventaja sobre las computadoras: nuestra intuición.

La intuición es una forma de conocimiento que funciona de manera diferente a la lógica abstracta. Se manifiesta rápida y emotivamente, haciéndonos desconfiar o apostar por un movimiento. Esto hace que sospechemos de antemano que determinadas jugadas no tienen futuro, haciéndonos descartar casi instantáneamente gran parte de las ramificaciones del juego. Las computadoras no suelen tener nada como esto, los algoritmos de las IA tienden a analizar todas las posibles jugadas, tanto las que “parecen” buenas como las malas. Estas técnicas son conocidas como de Tipo-A o fuerza bruta.

Ese enfoque no es desastroso para el ajedrez. En 1996 Deep Blue –con sus 11.3 Giga FLOPS[1]– podía considerar 200 millones de posiciones en un segundo, suficiente para que su técnica de fuerza bruta fuera capaz de encontrar jugadas exitosas en el mar de posibilidades que debía evaluar. Pero una computadora contemporánea usando este sistema se ahogaría rápidamente en el océano del Go. Esto llevó a Piet Hut, un astrofísico con PhD que también mueve ficha en ese juego (por favor, observar el patrón nerd en sus fans) a afirmar, en 1997, que todavía faltaba un siglo para que las IAs pudieran derrotar a los jugadores como él.

De esa época a acá la computación ha progresado mucho y lo que parecía un siglo se ha comprimido a una veintena de años. En 2006 el programa alemán Deep Fritz logró vencer al campeón mundial de ajedrez Vladimir Kramnik, con un poco de ayuda de su parte. En lugar de una supercomputadora este software utilizaba un Core 2 Duo. Todos estaremos de acuerdo en que Kramnik no es Kasparov, pero tampoco Deep Fritz es Deep Blue, a pesar del Deep que comparten.

La ventaja de Fritz radica en que no utiliza exclusivamente la fuerza bruta, sino que emplea una estrategia conocida como Tipo-B. Los algoritmos Tipo-B no buscan en todas las posibles ramificaciones del juego, sino que comparan las movidas con otras similares de juegos que se han jugado antes. Si estas se mostraron desastrosas son rápidamente descartadas, mientras que si llevaron a la victoria se analizan a profundidad. Un comportamiento que se acerca más a la intuición humana, gracias al cual una de las primeras versiones de Fritz le ganó un match a Deep Blue en 1996, corriendo el software germano en una computadora mucho más mediocre.

Y ahora, ochenta y un años antes de lo previsto por Hut, aparece AlphaGo y derrota al coreano en cuestión. Lo interesante de este programa de Google es que aprende a medida que juega. Lo más disfrutable de AlphaGo es la ausencia de la palabra Deep en su nombre. Sólo a primera vista, porque AlphaGo utiliza una técnica llamada Deep Learning Neural Networks (¡diablos!, es decir, Redes Neuronales de Aprendizaje Profundo).

Las redes neuronales artificiales imitan el cerebro humano, al menos en apariencia. Tratan de modelar el comportamiento de las neuronas y sus conexiones entre sí. No es que alguien entienda demasiado bien cómo funcionan las neuronas reales, pero se asume que determinados caminos hechos de conexiones neuronales se activan ante ciertos estímulos. Los caminos que tengan potenciales más fuertes son los que determinan nuestras respuestas. Cuando una de las redes artificiales se somete a un proceso de aprendizaje profundo esto significa que se expone a grandes cantidades de información que no está clasificada, es decir que el sistema no conoce exactamente que representa.

La información va a ser clasificada en categorías por la red neuronal según sus características, pero asumiendo que estas tienen cierta jerarquía. La red neuronal aprende entonces cuál es la relación que existe entre las categorías. ¡Es algo complicado de entender, eh! Pero la idea general es que estas redes neuronales, mediante un aprendizaje no supervisado, se forman sus propios conceptos sobe el mundo, los cuales pueden ser totalmente inesperados para sus creadores.

Google está logrando, con toda la capacidad de cómputo de sus data-centers, crear redes neuronales de un tamaño nunca antes visto. Y usa toda la información de sus servicios para alimentarlas con muchos, muchos, muchos datos sin clasificar. Una de estas IAs aprendió, inesperadamente, a reconocer gatos en los videos de YouTube (extraño eh, ni que hubiera tantos gatos ahí). Lo impresionante es que nadie le explicó nunca a la IA en cuáles videos había o no felinos, ni tampoco qué cosa es un gato.

El resultado representa algo nuevo porque se usan técnicas que se habían demostrado prometedoras con anterioridad, pero en una escala nunca antes vista. Google ha utilizado 16 mil CPUs para crear redes neuronales de más de 1000 millones de conexiones entre neuronas, mientras que las redes anteriores jamás habían sobrepasado la cifra de 20 millones. Pero los humanos podemos llegar a poseer 100 billones de conexiones entre nuestras neuronas, una cifra varios órdenes de magnitud superior.

AlphaGo es una de estas redes, y jugó trillones de partidos de Go contra sí misma como parte de su entrenamiento. Se aburrió, pero eso sí, es posible que ahora mismo maneje conceptos sobre el juego totalmente ajenos para los humanos. Tampoco podría explicárselos a Mr. Lee. El “pensamiento” de estas IA es diferente al nuestro. El verdadero alcance de estos experimentos está todavía por ver. Ya aparecen voces académicas clamando que no es una verdadera IA porque solo es capaz de “aprender” a jugar Go. Pero otros opinan que la metodología utilizada puede llevar a la creación de inteligencias artificiales generalistas, o hard AIs, como han sido llamadas tradicionalmente.

Los apocalípticos de siempre piensan que una de estas IAs podría convertirse en Skynet, HAL 9000, Omnius, o The Matrix. Un ser artificial implacable, que ha llegado a la inamovible conclusión de que la humanidad debe ser eliminada. La gente normal, sin trastornos de la personalidad provocados por el cine, piensa que el futuro de estos ingenios es positivo y que avanzan hacia ser como… oh wait… no se me ocurre ningún ejemplo de una IA “buena” en la historia de la ciencia ficción hollywoodense. ¡Ah sí: Cortana! Por Dios, ¡acaben de hacer una buena película sobre Halo!

NOTAS:

[1] FLOPS: Operaciones de Punto Flotante por Segundo, es una medida de la potencia de cómputo bruta de un ordenador, las computadoras personales actuales pueden superar los 100 Giga FLOPS

--

--