AlphaGo (y otros programas de juegos que utilizan aprendizaje por refuerzo) sin base de datos humana

datascience.stackexchange https://datascience.stackexchange.com/questions/11118

  •  16-10-2019
  •  | 
  •  

Pregunta

No soy un especialista en el tema y mi pregunta probablemente sea muy ingenua.Surge de un ensayo para comprender los poderes y las limitaciones del aprendizaje por refuerzo tal como se utiliza en el programa AlphaGo.

El programa AlphaGo se ha construido utilizando, entre otras cosas (exploración de árboles de Montecarlo, etc.), redes neuronales que se entrenan a partir de una enorme base de datos de juegos de go jugados por humanos y que luego se refuerzan permitiendo jugar versiones del mismo. programa contra sí mismo muchas veces.

Ahora me pregunto qué pasaría si intentáramos construir un programa de este tipo sin una base de datos humana, es decir.comenzando con un programa básico de Go simplemente conociendo reglas y algún método para explorar árboles, y dejándose jugar contra sí mismo para mejorar su red neuronal.¿Llegaremos, después de muchos juegos contra sí mismo, a un programa capaz de competir o vencer a los mejores jugadores humanos?Y si es así, ¿cuántos juegos (en orden de magnitud) se necesitarían para ello?O, por el contrario, ¿dicho programa convergerá hacia un actor mucho más débil?

Supongo que el experimento no se ha realizado, ya que AlphaGo es muy reciente.Sin embargo, la respuesta puede resultar obvia para un especialista.De lo contrario, cualquier suposición fundamentada me interesará.

También se puede hacer la misma pregunta para juegos "más simples".Si usamos aproximadamente las mismas técnicas de aprendizaje de refuerzo utilizados para Alphago, pero sin uso de la base de datos humanas, para un programa de ajedrez, ¿eventualmente obtendríamos un programa capaz de vencer a los mejores humanos?Y si es así, ¿a qué velocidad?¿Se ha probado esto?O si no fuera por el ajedrez, ¿qué pasa con las damas o incluso con juegos más simples?

Muchas gracias.

¿Fue útil?

Solución

No soy un experto pero parece que AlphaGo Zero responde a tu pregunta.https://deepmind.com/blog/alphago-zero-learning-scratch/

Las versiones anteriores de Alphago inicialmente entrenaron en miles de juegos humanos aficionados y profesionales para aprender a jugar Go.Alphago Zero omite este paso y aprende a jugar simplemente jugando juegos contra sí mismo, comenzando desde un juego completamente aleatorio.Al hacerlo, rápidamente superó el nivel de juego humano y derrotó a la versión de Alphago de Alphago publicada anteriormente por 100 juegos a 0.

Otros consejos

Se le hizo la misma pregunta al autor del artículo de AlphaGo y su respuesta fue que no sabemos qué pasaría si AlphaGo aprendiera desde cero (no lo han probado).

Sin embargo, dada la complejidad del juego, sería una tarea difícil entrenar un algoritmo desde cero sin conocimientos previos.Por lo tanto, al principio es razonable comenzar a construir dicho sistema actualizándolo a un nivel de Maestro utilizando el conocimiento adquirido por los humanos.

Vale la pena señalar que, aunque los movimientos humanos sesgan la selección de acciones en los nodos (estados) del árbol, este a priori tiene un factor de decadencia.Esto significa que el aumento de visitas a un estado específico reduce la fuerza del anterior para alentar al algoritmo a explorar.

Se desconoce qué tan cerca o lejos está el nivel actual de dominio de AlphaGo de la forma de jugar de un humano (¡en el torneo hizo un movimiento que un humano tenía casi cero probabilidad de realizar! - pero igualmente hizo algunos movimientos realmente malos). .Posiblemente quede por responder a todas estas preguntas implementando realmente los algoritmos de prueba correspondientes.

Debo editar mi respuesta como artículo reciente de DeepMind responde a tu pregunta.Hubo muchos avances que surgieron de toda la experiencia previa con la primera versión de AlphaGo y realmente vale la pena leerlo.

Hasta donde yo entendí, el algoritmo de AlphaGo se basa en un marco de aprendizaje por refuerzo (RL) simple, que utiliza la búsqueda de árbol de Monte-Carlo para seleccionar las mejores acciones.Además, los estados y acciones cubiertos por el algoritmo RL no son simplemente toda la configuración posible del juego (Go tiene una complejidad enorme), sino que se basan en una red de políticas y una red de valores, aprendidas de juegos reales y luego mejorado jugando juegos AlphaGo vs AlphaGo.

Entonces podríamos preguntarnos si el entrenamiento a partir de juegos reales es sólo un atajo para ahorrar tiempo o una opción necesaria para conseguir dicha eficiencia.Supongo que nadie sabe realmente la respuesta, pero podríamos hacer algunas suposiciones.En primer lugar, la capacidad humana para promover buenos movimientos se debe a una inteligencia mucho más compleja que una simple red neuronal.Para los juegos de mesa, es una mezcla entre memoria, experiencia, lógica y sentimientos.En esta dirección, no estoy seguro de que el algoritmo AlphaGo pueda construir un modelo de este tipo sin explorar explícitamente un gran porcentaje de toda la configuración del juego Go (lo cual es prácticamente imposible).Las investigaciones actuales se centran en construir representaciones más complejas de dicho juego, como la RL relacional o el aprendizaje lógico inductivo.Luego, para juegos más simples (podría ser el caso del ajedrez, pero nada seguro), diría que AlphaGo podría recuperar técnicas similares a las de los humanos jugando contra sí mismo, especialmente para las aperturas (al principio solo hay 10 movimientos disponibles).

Aún así es sólo una opinión.Pero estoy bastante seguro de que la clave para responder a su pregunta reside en el enfoque de RL que hoy en día sigue siendo bastante simple en términos de conocimiento.Realmente no somos capaces de identificar qué nos hace capaces de manejar estos juegos, y la mejor manera que hemos encontrado hasta ahora para derrotar al humano es aprender aproximadamente de él y mejorar (un poco) el modelo aprendido con cálculos masivos.

El juego autónomo competitivo sin base de datos humana es posible incluso en entornos complicados y parcialmente observados.OpenAI se está centrando en esta dirección.De acuerdo a Este artículo:

El juego autónomo garantiza que el entorno siempre tenga la dificultad adecuada para que una IA mejore.

Ésa es una razón importante para el éxito del autojuego.

OpenAI logró resultados sobrehumanos para Dota 2 1v1, el 11 de agosto de 2017, vencer a dendi 2-0 según las reglas estándar del torneo.

El robot aprendió el juego desde cero jugando por sí mismo y no utiliza el aprendizaje por imitación ni la búsqueda en árbol.Este es un paso hacia la construcción de sistemas de inteligencia artificial que logren objetivos bien definidos en situaciones complicadas y confusas que involucran a humanos reales.

No sólo los juegos, esta dirección también es prometedora para las tareas de robótica.

Descubrimos que el juego autónomo permite a las IA simuladas descubrir habilidades físicas como placar, agacharse, fingir, patear, atrapar y lanzarse en busca de la pelota, sin diseñar explícitamente un entorno que tenga estas habilidades en mente.

En el siguiente paso, amplían el método para aprender a cooperar, competir y comunicar, no limitarse solo al juego propio.

Licenciado bajo: CC-BY-SA con atribución
scroll top