Actualmente estoy leyendo sobre aprendizaje automático y me preguntaba cómo aplicarlo para jugar Connect Four .
Mi intento actual es un clasificador multiclase simple que utiliza un modelo de función sigmoide y el método uno contra todos.
En mi opinión, las características de entrada deben ser el estado (disco del jugador 1, disco del jugador 2, vacío) de los campos de cuadrícula 7x6 = 42.
La salida sería el número de la fila para colocar el disco. Debido a que es un número discreto entre 1 y 7, supongo que esto puede tratarse como un problema de clasificación multiclase.
Pero, ¿cómo genero ejemplos de capacitación utilizables en el aprendizaje supervisado?
El objetivo principal es ganar el juego, pero el resultado obviamente no se conoce al hacer todos menos el último turno. Si solo dejo que dos jugadores que deciden aleatoriamente qué hacer juegan unos contra otros miles de veces, ¿será suficiente simplemente tomar todos los turnos realizados por el ganador de cada ronda de juego como ejemplos de entrenamiento? ¿O tengo que hacer esto de una manera completamente diferente?
Editar: Como se sugiere en los comentarios, leí un poco sobre el aprendizaje por refuerzo. Por lo que sé, Q-Learning debería hacer el truco, es decir, tengo que aproximar una función Q del estado actual y la acción a tomar para ser la recompensa acumulativa máxima que comienza en ese estado. Luego, cada paso sería elegir la acción que resulte en el valor máximo de Q. Sin embargo, este juego tiene demasiados estados para hacer esto, por ejemplo, como una tabla de búsqueda. Entonces, ¿cuál es una forma efectiva de modelar esta función Q?