Pregunta

Quiero implementar un agente de Aprendizaje de refuerzo Connect Four. No estoy seguro de cómo hacerlo y cómo debería verse. Estoy familiarizado con los aspectos teóricos del aprendizaje de refuerzo, pero no sé cómo deben implementarse.

¿Cómo se debería hacer? ¿Debo usar TD (lambda) o Q-learning, y cómo llegan los árboles Minmax a esto? ¿Cómo funcionan mis funciones Q y V (calidad de acción y valor del estado)? ¿Cómo puntúa esas cosas? ¿Cuál es mi política base que mejora y cuál es mi modelo? Otra cosa es cómo debo salvar los estados o estadísticas (dependiendo del algoritmo de aprendizaje). ¿Debo usar redes neuronales o no? Y si es así, ¿cómo?

Estoy usando Java.

Gracias.

¿Fue útil?

Solución

Este podría ser un problema más difícil de lo que piensas, y aquí está por qué:

los espacio de acción Para el juego es la elección de la columna para dejar caer una pieza. los espacio de Estados Para el juego es una cuadrícula MXN. Cada columna contiene hasta M piezas distribuidas entre los 2 jugadores. Esto significa que hay (2M+1-1)norte estados. Para una placa estándar de 6x7, esto sale a unos 1015. Se deduce que no puede aplicar el aprendizaje de refuerzo al problema directamente. La función de valor de estado no es suave, por lo que naíve aproximación de función no funcionaría.

Pero no todo esta perdido. Por un lado, podría simplificar el problema separando el espacio de acción. Si considera el valor de cada columna por separado, según las dos columnas al lado, reduce N a 3 y el tamaño del espacio de estado a 106. Ahora, esto es muy manejable. Puede crear una matriz para representar esta función de valor y actualizarla utilizando un algoritmo RL simple, como Sarsa.

Tenga en cuenta que la recompensa para el juego está muy retrasada, por lo que es posible que desee usar trazas de elegibilidad para acelerar el aprendizaje.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top