AlphaGo – Demostración de una IA en desarrollo Sobre la revolucionaria máquina "AlphaGo" y su método heurístico para aprender de sus errores

Estos últimos días he estado siguiendo, como muchos otros en el mundo imagino, el evento organizado por Alphabet; en concreto, por Google DeepMind, que trataba de una serie de partidas de Go entre una máquina y el campeón coreano Lee Sedol. Y en resumen, se puede decir que se ha llegado a un hito similar al de Garri Kaspárov en su época contra la máquina Deep Blue/Deeper Blue, desarrollada esta última por IBM; de hecho, AlphaGo ha vencido 4-1 al campeón Lee Sedol, en una serie de partidas que se han extendido en una semana de plazo.

AlphaGo vs Lee Sedol
AlphaGo vs Lee Sedol

Sin embargo, a priori uno que quizá no tenga demasiado conocimiento al respecto puede pensar: ¿Y qué diferencia hay entre una máquina y otra? La diferencia está en el software que ambos llevan instalado (y dicho sea de paso, su potencia, aunque este factor no sea la clave). Deep Blue consistía, básicamente, en una supercomputadora que hacía un porrón de cálculos por segundo, lo que le permitía calcular la probabilidad de todas las opciones del turno actual y de futuribles turnos, evaluando la mejor opción y tomando ese camino. Sin embargo, AlphaGo parte de un concepto totalmente diferente: el aprendizaje.

Antes de nada, hay que destacar un pequeño detalle. El Go llevaba siendo un juego inalcanzable para los programadores desde hace varios años, debido a la terrible combinatoria de movimientos, y el árbol que ésta genera.

Este sería un árbol binario, es decir, de progresión de 1-2-4-8-...-2^n nodos.
Este sería un árbol binario, es decir, de progresión de 1-2-4-8-…-2^n nodos.

Para hacer una aproximación con números totalmente arbitrarios con el ajedrez, se podría decir que el ajedrez genera una progresión de 30^n, o sea: 30 nodos en la d1 (Siguiendo la notación del dibujo de arriba; 30^1) – 900 nodos en d2 – 27000 nodos en d3 – 810000 nodos en d4, etc. Puede parecer mucho, pero si pensamos que el Go consta de un tabla 18×18, implica que en cada turno, un jugador puede poner una ficha en una de los 364 huecos restantes. Y, una progresión de, por poner un número arbitrario, 364^n, es demasiado para una máquina a nivel de cálculo, al llegar a niveles de n algo altos solo fijándonos en su escalabilidad.

Por eso, evaluando la situación anterior, debemos decir que la aproximación que IBM mostró en su época para el ajedrez era la más lógica, y de hecho, nos dio a conocer qué poder de cálculo se podía llegar a tener por aquel entonces. Pero para el Go, simple y llanamente, no valía.

Por eso, el sistema creado por DeepMind consta de diferentes elementos que facilitan el aprendizaje, obviando la “fuerza bruta”. Precisamente, se trata de un tema de redes neuronales, que resumiendo de manera muy bestia, busca simular lo que sería una red de neuronas de un cerebro, intentando adaptar los conocimientos que tiene de sus pruebas y errores para reaplicarlos a situaciones similares, pero no exactamente iguales; cosa que no se podría hacer con la “fuerza bruta”.

Además de estas redes neuronales, que “limitan”, por así decirlo, el comportamiento de las repeticiones del programa, consta también de un algoritmo frecuentemente empleado en temas de Inteligencia Artificial, y en estos casos de aprendizaje. Este algoritmo es el llamado “Árbol de búsqueda Monte Carlo”, conocido también por MCTS, por sus siglas en inglés, que se divide en 4 fases:

Los 4 pasos del MCTS
Los 4 pasos del MCTS
  1. Selección: Elige una de las ramas específicas por la que vaya a ir el programa.
  2. Expansión: Avanza dentro de la rama, hasta encontrar un caso posible.
  3. Simulación: Lleva a cabo el caso posible.
  4. Retropropagación: Vuelve al inicio del árbol, registrando en el nodo que representa el caso posible el resultado ocurrido. (Acierto / Fallo).

Por lo tanto, lo que se hace, esencialmente, es una repetición constante de este algoritmo, lo que lleva a la máquina a reconocer casos con una ratio de Acierto / Fallo mucho más marcado que otras vías, y darle preferencia para avanzar. Si queréis más información, aquí os pongo un enlace con el código utilizado, en Java o Python(Al parecer, hoy a día 19 de Marzo, han cerrado la página que mostraba las implementaciones respectivas. Esperemos que vuelvan a recolocar el servidor, sabiendo que era una implementación bastante clara del algoritmo.)

Así pues, AlphaGo no es solamente una máquina lista para machacar a jugadores asiáticos de un juego de mesa, sino que su propósito, como indica uno de los cofundadores de DeepMind Demis Hassabis en esta y otras entrevistas, es ver cómo se desarrolla esta técnica de aprendizaje, y extrapolarla a ámbitos tan variopintos como la medicina o los smartphones, por poner algún ejemplo. Por lo tanto, estas tecnologías que Google está impulsando con sus inversiones, además de dar lugar a citas célebres de nuestro querido poeta Mariano Rajoy Brey, están suponiendo un verdadero cambio en los paradigmas de la Inteligencia Artificial, pasando de algoritmos rudimentarios como el cálculo masivo de alternativas, a un algoritmo que permite a la computadora discernir entre muchas opciones, y elegir la óptima, basándose en todas sus pruebas y errores.

Con lo que, efectivamente, estamos empezando a ver un cambio cualitativo importantísimo en este ámbito, que, si lo combinamos a las iniciativas de Boston Dynamics (que quién sabe cuánto tiempo trabajarán junto a Google…), podemos llegar a sorprendernos un poquito.

Inteligencia Artificial