Cómo hacer que Q-learning con ANN funcione para un simple juego de mesa

Será muy difícil tratar de resolver Connect Four con redes neuronales artificiales y q-learning, si se utiliza el método original del primer documento de juegos de Atari de DeepMind. La razón de esto es que la relación entre estados y valores q es bastante fluida con los juegos de Atari, pero no es muy fluida con Connect Four. Y el uso de redes neuronales se aproxima a la función del valor q suponiendo que existe esta suavidad.

Por ejemplo, con los juegos de Atari, un pequeño cambio en el estado (la imagen) no cambiará drásticamente la acción óptima (botón del joystick) para aplicar. La acción óptima es a menudo la misma entre dos cuadros, y el pequeño cambio en la imagen no cambia drásticamente qué acción se debe aplicar. Si estás tratando de disparar a extraterrestres con una nave espacial, entonces si el extraterrestre está a un píxel hacia arriba y a la derecha, no cambiará drásticamente si debes dispararlo o no en ese momento.

Sin embargo, con Connect Four, cambiar el estado en una pequeña cantidad cambia drásticamente la acción óptima. Por ejemplo, imagina que es la mitad de un juego y sueltas un disco en la primera columna. Luego imagine que, en cambio, había dejado caer el disco en la segunda columna. La acción óptima del oponente puede ser muy diferente en estos dos estados. Si bien el estado en sí es solo ligeramente diferente, la acción óptima que debe tomar el oponente puede haber cambiado drásticamente en función de si el disco se cayó en la primera o segunda columna.

Pero las redes neuronales suponen que hay suavidad entre la entrada y la salida, y por lo tanto suponen que un pequeño cambio de estado solo causará un pequeño cambio en los valores q. Este no es el caso en Connect Four, y es la razón por la cual su método no funcionará.

Una alternativa es utilizar el aprendizaje q tabular, donde hay un valor q distinto para cada par de estado-acción. Sin embargo, para un juego Connect Four estándar, esto daría como resultado 3 ^ (6 * 7) = 10 ^ 20 estados, lo cual es demasiado alto para que una computadora razonable pueda manejarlo.

Sin embargo, la solución utilizada por DeepMind en su método AlphaGo probablemente funcionaría para usted. Este método combina el aprendizaje de refuerzo profundo con árboles de búsqueda, para que el aprendizaje sea manejable. AlphaGo tampoco es tan fluido como Connect Four, por lo que leer este documento puede darle algunas ideas sobre cómo puede avanzar.

Aquí hay un ejemplo simple usando Keras: Usando Keras y Deep Q-Network para jugar FlappyBird. ¡Espero que esto ayude!

Feliz de ayudar y también capaz de ayudar en una base de consultoría, solo comuníquese conmigo.

Esencialmente, buscará la implementación de Deep Q (DQN), utilizando la experiencia de reproducción y la red de destino para agregar algo de estabilidad al aprendizaje del algoritmo. Hay algunos buenos recursos disponibles si desea probarlo, keras-rl es uno de mis favoritos y he obtenido excelentes resultados: matthiasplappert / keras-rl