Una computadora vence a un jugador de Go profesional

El juego del Go ha sido considerado durante años como un reto extremadamente difícil para la Inteligencia Artificial, situándose a un nivel de complejidad muy por encima del Ajedrez. El 7 de Agosto de 2008, el programa Mogo, que funciona sobre una supercomputadora, fue capaz de batir al jugador de Go profesional Myungwan Kim, en un tablero de 19×19, noticia que se ha convertido en un logro histórico para la Inteligencia Artificial.

Si bien ya hace años que las computadoras pueden jugar al Ajedrez al nivel de los profesionales, el Go se ha mostrado como un reto más duro y complejo debido a varias diferencias claves con respecto al Ajedrez:
  • El tablero es demasiado largo (19×19, con 361 intersecciones), lo cuál genera una explosión combinatoria imposible de manejar, ni con la mejor de las heurísticas. De hecho, en tableros simples de 5×5, ya se consiguió resolver este juego en el año 2002.
  • Las piezas tienen más grados de libertad que las del Ajedrez, ya que los movimientos del Go no se limitan por las regla del juego.
  • Si bien en el Ajedrez, a medida que avanza la partida se van eliminando piezas y, con ello, cortándose la explosión combinatoria de movimientos, en el Go se van añadiendo posibilidades según avanza la partida.
  • Las técnicas utilizadas en el Ajedrez computacional no son transladables al Go. Como ejemplo, si bien en el Ajedrez se puede utilizar un simple conteo de las piezas como un punto de apoyo en las exploraciones de su árbol de búsqueda, en el Go un simple conteo no sirve de nada, ya que las posiciones dependen más de los grupos que hay formados, de las conexiones entre piezas, etc.
  • Otras diferencias importantes son los problemas para generar una función de evaluación o la no existencia de tablas de finales de juego.

Toda esta complejidad, ha permitido evolucionar un campo dentro de la Inteligencia Artificial, el denominado “Go computacional”, que se encarga de desarrollar técnicas y programas capaces de jugar al Go como si fueran expertos humanos.

Si bien hasta la fecha ningún programa había sido capaz de derrotar a ningún jugador de Go profesional en un tablero estándar (19×19), el pasado 7 de Agosto, el programa MoGo (que funciona sobre una máquina con 800 procesadores a 4.7Ghz, con una potencia total de 15 Teraflops) derrotó a Myungwan Kim, quién dijo del programa: “ha jugado realmente bien, con una potencia de entre 2 y 3 dan, aunque ha realizado movimientos propios de un jugador 5 dan”. Esta noticia marca un hito en el campo del Go Computacional y supone un interesante avance en el campo de la Inteligencia Artificial.

[José Carlos Cortizo Pérez]

Bookmark and Share
Etiquetas:

Si te gustó esta entrada anímate a escribir un comentario o suscribirte al feed y obtener los artículos futuros en tu lector de feeds.

Comentarios

Seguro que esta vez usaron Linux….jaja es broma…aunque posiblemente si….ya que windows no puede con tantos procesadores

Si se usó un cluster con 800 procesadores, windows imposible. Por muchísimas razones.

Oye… que ni con linux escalas a 800 procesadores tan tranquilamente. Probablemente hayan utilizado un modelo de programacion distribuida (e.g. MPI), que es como decir que son 800 maquinillas por separado y comunicandose por la red (probablemente fueran diversas maquinas con algunos procesadores cada una).

Otra cosa es llamar a esto _inteligencia_ artificial. Pues es artificial, pero de inteligente no tiene nada. Por lo que se, se utilizo el algoritmo de monte carlo (http://en.wikipedia.org/wiki/Monte_Carlo_method), que es casi como probar todas las posibles combinaciones. Así pues, no hace falta inteligencia para ello, solo no descontarse de que combinaciones has probado y cuales no :)

Algunas precisiones:

1. El programa jugo con la máxima ventaja posible que se da en el juego de Go (9 piedras), como comparación es que te dieran la dama en ajedrez desde el principio.

2. Claro que linux puede con 800 procesadores, mirar los cluster beowulfs y las distribuciones rocks. Además donde creen que se instala MPI o cualquier otro método de paso de mensajes?

3, Finalmente para los críticos de la AI hasta los algoritmos evolutivos más evolucioandos son absolutamente equivalentes a un Montecarlo o al simple algoritmo de euclides de encontrar números primos, o es que existe aún algún algoritmo capaz de hacer algo para lo cuál no se programo?

Si queréis aprender a jugar a Go desde cero os invito a seguir mis clases que se desarrollan desde un tablero de 9×9, luego 13×13 y finalmente 19×19. Es todo un proceso lento que te permite saber si te gusta realmente el Go. Soy un jugador medio. Mi link está en catalán: http://gollumclub.blogspot.com

"El Go es presente puro. Es silencio, es pausa, es el momento sostenido. Es un mundo de sensaciones, de emociones, de decisiones y dilemas… El Go es vida. Es un microuniverso lleno de historias diferentes en cada partida. Es un arte, una filosofía de vida, un aprendizaje constante, una escuela de amigos."

La "gracia" de la Inteligencia Artificial es que, realmente, no es inteligencia, por eso la coletilla de artificial. La mayoría de las técnicas utilizadas en el campo son estadísticas, heurísticas, etc. Es decir, con muy poca "inteligencia", pero lo importante es que producen la sensación (desde fuera) de un comportamiento inteligente.

Por cierto, el comentario del método de Monte Carlo es una simplificación un tanto excesiva. Monte Carlo es un método de optimización utilizado cuándo resulta inviable obtener la mejor solución; en ese sentido es muy similar a los algoritmos genéticos, ya que busca la mejor solución que pueda encontrar sin dedicar un tiempo infinito a los cálculos.

Luego si explora todas las posibilidades es hacer un backtracking y seleccionar cual sería el mejor movimiento, no?

"Si bien en el Ajedrez, a medida que avanza la partida se van eliminando piezas y, con ello, cortándose la explosión combinatoria de movimientos, en el Go se van añadiendo posibilidades según avanza la partida."

Esta frase es bastante incoherente ya que en Go conforme vas jugando cada vez hay menos huecos libres y, por tanto, cada vez hay menos posibilidades donde jugar; al contrario de lo que da a entender la frase.

Hay mas inteligencia en este algoritmo que en muchos de los post que ha puesto mas de uno aquí, a demás para que lo sepas tu cuando tomas una decisión tambien miras las diferentes combinaciones hasta encontrar una solución satisfactoria.

Me gustaria saber quien de aquí relamente a jugado al GO i no solo se ha dedicado a trolear….

Este tipo de anuncios reflejan la valoración de esfuerzos puntuales y no de logros sostenidos. Ganar UN partido de go (o cualquier juego) no es tán complicado como… soportar la revancha del jugador humano. El punto es qué tan capaz es un jugador de aprender de su oponente, y el Go es particularmente desafiante en este aspecto porque brinda oportunidades para "formular teorías" sobre el comportamiento del oponente, verificarlas, y corregir el comportamiento propio en forma acorde (en otras palabras, de poner en juego la capacidad de aprender). De hecho, hay toda una categoría de jugadas que son "preguntas", muchas "de libro" y otras no tanto, y es frecuente que al comentarse una partida se diga sobre una jugada "negras pregunta con C10" – de hecho, a cualquier shodan de go le basta esta coordenada C10 para imaginarse una situación típica "de libro" para la que C10 es una pregunta.

En realidad, si se lograse el cometido no importaría tanto el método en cuestión (Montecarlo, reglas heurísticas, etc.). El término IA ha sido usado comercialmente para "respaldar" muchos avances tecnológicos, como la invensión del… mouse. A menos que hubieran dos soluciones distintas al mismo problema, que puedan compararse en términos de esfuerzo, complejidad o mera elegancia, la crítica al métdo es irrelevante. De hecho, nosotros sabemos poco y nada de los algoritmos que usa nuestro cerebro, y apenas podemos notar el esfuerzo que nos insume resolver un problema a partir del cansancio resultante, y excepcionalmente a consciencia de los recursos cognitivos y "de procesamiento" que ponemos en juego. Lo que podemos decir en todo caso es cuándo un comportamiento "parece" ser inteligente. Para el caso, es probable que a algun lector este comentario le "parezca" inteligente… lo que no certifica la existencia de inteligencia alguna, ni de quien escribe ni de quien lee :-) .

Respecto a los 800 procesadores… vaya uno a saber, la tecnología no se reduce a Linux y Windows, hay miles de sistemas operativos diseñados a la medida del hardware y para poder abordar problemas puntuales como el procesamiento paralelo masivo, y con requerimientos a medida para que los compiladores aprovechen los recursos eficientemente, como para especular a partir de lo que los mortales podemos ver sobre la mesa de nuestro escritorio. De hecho, el cerebro bien podría ser uno de estos arreglos estrambóticos de procesadores con su sistema operativo tan único y raro que uno no intentaría siquiera compararlo con Linux o Windows para argumentar (por enésima vez) respecto al problema cotidiano que tenemos como usuarios de eso que vemos sobre el escritorio.

Má allá del anuncio peridístico, sabemos muy poco de este evento. Habría que ver si hay alguna publicación resultante que describa el proceso para que sea repetible.

Para nosotros, la parte más interesante de la noticia es que el jugador humano comente que la computadora hacía constantemente movimientos de un jugador de Dan 3 y, en algunos momentos, de Dan 5. Es decir, el logro es conseguir que la computadora vaya adquiriendo mayor nivel de juego, lo cuál supone un camino más que interesante.

Con respecto al término IA, en este mismo blog hemos sido muy críticos con el mismo ;) Hablar de IA no es hablar de inteligencia real, si no de comportamiento inteligente, es decir, que si solo vemos las acciones de la máquina y tratamos de no tomar conciencia de que es una máquina, tengamos la sensación que "algo inteligente" la está moviendo. Y esa sensación de "algo inteligente" se puede conseguir de mil maneras: búsquedas, heurística, estadística, etc.

La IA no es mas que una serie de algoritmos que simulan inteligencia "real", la persona que observa el juego o incluso la que juega con la "maquina" puede pensar que lo esta haciendo con un humano…

Lo curioso aqui es observar que… en nuestro propio caso (humano "inteligente") ¿ Qué es lo que ralemente pasa (en nuestra cabeza)?

¿Cómo garantizamos que en realidad no estamos siendo "victimas" de un ingenioso "megaAlgoritmo" biologico, que nos da la sensacion de "inteligencia", en otras palabras; despues de todo la palabra tal [inteligencia] se define como la capacidad de resolver problemas…

Entonces como tu humano garantizas que no eres una especie de biomaquina (?) en tal caso que es lo que a nosotros nos hace inteligentes (?) nuestro procesador llamado cerebro (?)

Como podemos criticar a la maquina de que "realmente" no es inteligente, solamente se defica a resolver problemas y los resuelve muy rapido… Mi pregunta es: ¿ Que tal si nosotros como humanos tampoco somos inteligentes… solo nos dedicamos a resolver problemas y algo mas sorprendente aun es a crearlos para luego resolverlos….

En si… Yo pienso que la maquina si es inteligente

Por cierto para el que pregunte… claro que soy jugador de Go, de nivel muy por debajo del 9kyuu pero mi intencion es aumentarlo seriamente.

oK antes que nada juego al GO nivel 11 kyu y ajedrez nivel 2150 ( >20 min ), y si supieran un poco ; ahm no se quiza Minimax , podacion alfa-beta , redes neuronales , o heuristicas de accesibilidad ; que es el inicio del todo …podrian opinar un poco mejor.

Se dice que la maquina es la tonta mas rapida , no piensan ; puedes "simular" que adquieren conocimiento … pero nunca sera asi , toman decisiones , generan mundo para ello o simplemente integran BD`s dedicadas a proveer material para calculo , con algoritmos.

Seria noticia que le ganara sin handicap ; independientemente de los procesadores , SO , ETC.

Escribe un comentario

(requerido)

(requerido)