Blog IA: 1. Introducción al blog, IA y el juego GO.

Hola! Como muchos sabrán, trabajo en un emprendimiento en el mundo de la tecnología, la salud y la innovación. Desde siempre me ha gustado y me he estado informando sobre los avances tecnológicos y uno de los temas que se ha llevado mi especial -y dispersa- atención es la Inteligencia Artificial y el motivo de este blog no es más que poder canalizar lo aprendido, comentarles aquellos avances y en cierta medida “traducir” algunas cosas que quizá no se comprendan y más que nada compartir y tratar de inspirar un debate en esta área ya que no sólo la tecnología es un tema acá, sino las implicancias sociales, morales, éticas y que de todas formas cambiarán la sociedad y el mundo.

Pero para empezar! ¿Qué es la inteligencia artificial? Es básicamente a modo general el concepto de “la inteligencia de las computadoras”, aquellas en las que se han programado para que puedan hacer tareas independientemente de los humanos y esto implica poder recopilar datos de su entorno, analizarlos y “tomar decisiones” para obtener los resultados para los cuales fue programado.

Esto ya lo hemos visto a diario en nuestras vidas, con cada búsqueda de google, este empieza a “adivinar” qué es lo que quieres o andas buscando y según las palabras te entrega un resultado más o menos apropiado para lo que querías. Esto no solo lo hace con ese texto, sino con tus búsquedas anteriores, tus intereses y las búsquedas de otros usuarios, así mejora los resultados que despliega en cada búsqueda. Y para realizar todo ese proceso no hay una persona involucrada detrás, es sólo información y la máquina, quien procesa la tuya, analiza y entrega lo que buscas, ese es un pequeño ejemplo de I.A.

Hay varias cosas que pueden saber sobre la I.A. me gustaría leer en los comentarios cómo podría orientarlos o qué es lo que más les intriga del tema!
Cada post quiero relacionarlo a una “noticia” y generar un debate final con una pregunta.
(algunas noticias no son tan nuevas, pero a pesar de que todo esto avanza tan rápido, los temas siguen siendo absolutamente contingentes)
go

En el día de hoy, partiré con cómo la Inteligencia Artificial le ganó a los Campeones mundiales del ancestral juego de mesa GO, el juego de origen Chino, cuyo objetivo es en un tablero de 19×19 lineas(361 posiciones), colocar tus piedras para lograr rodear la mayor cantidad de área del tablero. Es un juego de a 2, con piezas blancas y negras, donde requiere mucha estrategia y lógica para ganar al oponente.
Todo bien hasta acá, nos pueden dar las reglas y podemos jugarlo, el problema viene cuando le damos lo mismo a un computador, y pensamos “el computador puede procesar más rápido que nosotros las jugadas y por eso nos puede ganar” ERROR.

El desafío de “ganar a la fuerza” este tipo de juegos es la cantidad de posibilidades que hay en cada jugada, con cada jugada surge una nueva infinidad de nuevos movimientos posibles, cada jugada desde su inicio tiene 1/361 posibilidades, la siguiente 1/360, 1/359… y así, por lo que en unos pocos movimientos todo se complica exponencialmente.

En los primeros 10 movimientos del juego, la cantidad de posibles jugadas son del orden de 10²⁸, es decir un uno acompañado de 28 ceros.

En Go, el nivel de posiciones válidas en un juego es del orden de 10^171, más que todos los átomos del universo observable (10^80)

Y para ponerlo en perspectiva de tecnología el Super computador más rápido del planeta(2016), puede procesar 93 Petaflops, con casi 41.000 procesadores, 10.600.000 núcleos y aún así, ese número de operaciones por segundo está en el orden de 10^15  muy lejos de poder resolver el juego «por la fuerza».

Los inputs son las posibles siguientes jugadas y cada una de las capas son las posibles jugadas de tu oponente y luego tu posible respuesta, así ponderando estas opciones, finalmente los outputs que son los resultados de estos.

Entonces, ¿cómo una computadora puede ganarle?

(acá puedo entrar en una explicación mucho más compleja, matemática y detallada, pero usaré KISS -keep it simple, stupid-)
Básicamente se entrenó a la computadora, así como a una persona cuando entrena, ¿qué es lo que hace? repite, repite y repite… y cuando hace algo bien, se premia y repite esa forma y cuando hace algo mal, se corrige. Básicamente a la computadora se le va diciendo cuales «jugadas » o resultados son buenos y cuales son malos, de esa forma y con muchas partidas la computadora va mejorando, a este método se le llama entrenamiento supervisado.

Bueno, bueno, pero aprendió y ahora debe ganarle a un profesional que también estudió el juego y esas jugadas, ¿como es que lo hace para ganar?
La magia está en el (MCTS) Monte Carlo Tree Search (Árbol de búsqueda de Monte Carlo), este método se basa en el azar, -QUEEEE? EL AZAR?- Si, la computadora procesa las siguientes «X» posibles jugadas al azar y sus resultados (recuerden que son MILLONES DE JUGADAS, por lo que NO puede probarlas todas, ni siquiera un 0,00000…00001%), pero como tiene un buen poder de cómputo puede probar varias en pocos segundos, luego según cada uno de los resultados locales (de cada simulación al azar) va haciendo una ponderación de cual tiende a ser mejor (localmente) y así según las todas jugadas simuladas que se repitan, las ponderará mejor y con esta información podrá salir con un movimiento, que a lo largo del juego va aprendiendo de sus propios caminos y cada vez es menos al azar y más táctico -quizá, no sé si sea la palabra correcta-. A fin de cuentas y en la medida que continúa el juego va mejorando ese % de caminos positivos, por lo que va «ganando el juego» con mayor seguridad.

Captura de pantalla 2017-07-18 a la(s) 01.47.16.jpg
Elige un camino, avanza en su profundidad, encuentra un resultado y vuelve al punto inicial para comunicar sus resultados.

El objetivo de este método es darte más de un 50% de probabilidades de ganar (recordemos que es un juego de a 2, 50-50 de ganar) por lo que cada jugada ha de ser un 51% mejor que la de su oponente (con un 51% mejor, ya le ganamos, no?).

Captura de pantalla 2017-07-18 a la(s) 01.34.57.jpg
Mapa de confianza de la máquina en el transcurso del juego, pueden ver que en la medida que transcurren las jugadas, la computadora va «sintiéndose» cada vez más segura de ganar. En la flecha verde, la máquina tenía un nivel de confianza tan alto que iba a ganar que jugó «una pieza sin sentido» algo así como sentenciar su victoria con una jugada random. 

Este gráfico es muy interesante, por el siguiente otro gráfico:

Captura de pantalla 2017-07-18 a la(s) 01.37.26.jpg
El gráfico indica que en un comienzo iba ganando AlphaGo, pero el jugador profesional Lee Sedol había hecho una jugada arriesgada (poco después del 60) que más tarde traería consecuencias y la «confianza» de ganar de la máquina se redujo drásticamente al darse cuenta de esas consecuencias (cerca del 100). «ohhh cómo no lo vi» y este juego lo perdió la máquina.

Es curioso que incluso la «habilidad» de saber si va a perder o no un juego está programada o puede ser graficada de alguna forma, según los resultados que va calculando.

Finalmente preguntarles… Largo o Ancho? 😏

Digamos que tenemos 100 posibles movimientos siguientes (ancho) y a su vez, cada uno de los movimientos tiene otros 50 posibles caminos «en profundidad» del juego. Recuerden que si elijo un camino (50-1), luego tengo (100-1) posibles movimientos, y avanzando en profundidad [(100-1)-1] tengo 98 movimientos posibles y así.

 ¿Qué elección será mejor? ¿más profundo o más ancho? Captura de pantalla 2017-07-18 a la(s) 02.07.17.jpgarbol

Ambos árboles. Podemos partir por su raíz, seguir al tronco, ir a cada una de sus ramas y terminar analizando hoja a hoja o podemos partir por hojas de varias partes del árbol, ir a sus ramas, ver que esas ramas llegan al tronco y que de ese tronco se llega a la raíz.

Algunas fuentes y recursos:
https://www.tastehit.com/blog/google-deepmind-alphago-how-it-works/
https://deepmind.com/research/alphago/
video : https://www.youtube.com/watch?v=b9H9AtbxpPM
https://techcrunch.com/2017/05/23/googles-alphago-ai-beats-the-worlds-best-human-go-player/
https://en.wikipedia.org/wiki/AlphaGo
http://www.yisongyue.com/teaching.php

3 comentarios sobre “Blog IA: 1. Introducción al blog, IA y el juego GO.

  1. Muy interesante el tema del Go, lo he jugado y siempre quedo con una sensación distinta en comparación a los juegos de competencia clásicos. En mi opinión somos seres codificables, pero en nuestro propio contacto simplisimo encontramos belleza, algo que nos inspira casi a nivel sobrehumano. La tecnología permite tener cada vez menores casis. El día que predigamos el sentido y sus caminos, podrá aparecer una jugada arriesgada humana que cambie el curso? Dejo esta pregunta abierta, aunque sabemos, poco importa porque somos un polvo en el espacio 😛 (que entiende harto de otros polvos)

    Me gusta

Deja un comentario