¿Qué conocimiento necesito para escribir un programa simple de IA para jugar un juego?


8

Soy un graduado de B.Sc. Uno de mis cursos fue 'Introducción al aprendizaje automático', y siempre quise hacer un proyecto personal en este tema.

Recientemente escuché sobre diferentes entrenamientos de IA para jugar juegos como Mario, Go, etc.

¿Qué conocimiento necesito adquirir para entrenar un programa simple de IA para jugar un juego? ¿Y qué juego recomiendas para un principiante?

Esto es lo que sé hasta ahora en Machine Learning:

  • Introducción al curso y al aprendizaje automático. Algoritmo K-Nearest Neighbour y K-means Algoritmo
  • Inferencia estadística
  • Modelo de mezcla gaussiana (GMM) y maximización de expectativas (EM)
  • Modelo probablemente aproximadamente correcto (PAC), incluidos los límites de generalización y la selección del modelo
  • Algoritmos básicos de hiperplano: Perceptron y Winnow.
  • Máquinas de vectores de soporte (SVM)
  • Granos
  • Impulso de alumnos débiles a alumnos fuertes: AdaBoost
  • Perceptrón de margen
  • Regresión
  • PCA
  • Árboles de decisión
  • Decisión árboles poda y bosques al azar

Respuestas:


8

Hay múltiples formas de abordar la resolución de problemas de juego. Algunos juegos pueden resolverse mediante algoritmos de búsqueda, por ejemplo. Esto funciona bien para juegos de cartas y juegos de mesa hasta cierto nivel de complejidad. Por ejemplo, el Deep Blue de IBM fue esencialmente una búsqueda rápida y heurística de movimientos óptimos.

Sin embargo, probablemente el algoritmo de aprendizaje automático más genérico para entrenar a un agente para que realice una tarea de manera óptima es el aprendizaje por refuerzo . Técnicamente no es un algoritmo, sino una familia extendida de algoritmos relacionados que resuelven una formalización específica del problema de aprendizaje.

Informalmente, el refuerzo de aprendizaje (RL) se trata de encontrar soluciones óptimas a los problemas definidos en términos de un agente que pueda observar el estado de un entorno , tomar medidas en ese entorno y experimentar recompensas que de alguna manera están relacionadas con el estado y la acción. Los solucionadores de RL deben diseñarse para hacer frente a situaciones donde las recompensas se reciben más tarde que cuando se tomaron acciones importantes, y esto generalmente se logra mediante el algoritmo que aprende una expectativa interna de recompensas posteriores asociadas con pares de estado y / o acción de estado.

Aquí hay algunos recursos para estudiar el aprendizaje por refuerzo:

Encontrará que el tema en sí es bastante grande a medida que se necesitan variaciones cada vez más sofisticadas de los algoritmos a medida que el problema a resolver se vuelve más difícil.

Los juegos iniciales para estudiar el aprendizaje por refuerzo pueden incluir:

  • Tik-tac-toe (también conocido como ceros y cruces): esto se puede resolver fácilmente mediante la búsqueda, pero es un problema simple de juguete para resolver usando técnicas básicas de RL.

  • Laberintos: en la literatura de aprendizaje de refuerzo, hay muchos ejemplos de juegos del "mundo de cuadrícula" en los que un agente se mueve en pasos N, E, S y W en un tablero pequeño que puede estar lleno de peligros y objetivos.

  • Blackjack (también conocido como 21)

Si desea trabajar con agentes para jugar videojuegos, también querrá aprender sobre redes neuronales y probablemente con cierto detalle: necesitará redes neuronales profundas y convolucionales para procesar gráficos de pantalla.

Un recurso relativamente nuevo para RL es OpenAI Universe . Han hecho mucho trabajo para agrupar entornos listos para entrenar a los agentes, lo que significa que puede concentrarse en estudiar los algoritmos de aprendizaje, en lugar del esfuerzo de configurar el entorno.


Con respecto a su lista de habilidades actuales: ninguna de ellas es directamente relevante para el aprendizaje por refuerzo. Sin embargo:

  • Si puede comprender las matemáticas y la teoría de su curso anterior, entonces también debería ser capaz de comprender la teoría del aprendizaje por refuerzo.

  • Si ha estudiado cualquier técnica de aprendizaje supervisado en línea o por lotes, puede utilizarlas como componentes dentro de un marco RL. Por lo general, se pueden usar para aproximar una función de valor del estado del juego, en función de los comentarios de éxitos y fracasos hasta el momento.


7

Depende en gran medida del tipo de juego y la información sobre el estado del juego que está disponible para su IA.

Algunos de los IA de juego más famosos de los últimos años se basan en el aprendizaje de refuerzo profundo (por ejemplo, Jugar Atari con Aprendizaje de refuerzo profundo ), que es el aprendizaje de refuerzo normal (por ejemplo, Q-learning) con una red neuronal profunda como aproximación de la función de valor de recompensa. Estos enfoques reciben los píxeles sin procesar del juego más los puntos del jugador, y generan las acciones de un pad de juego, como un humano. Para hacer algo así, debe dominar el aprendizaje por refuerzo (vea el libro seminal de Sutton y Barto ) y el aprendizaje profundo (vea el libro de Ian Goodfellow et al. ), Y luego cómo fusionarlos en el aprendizaje por refuerzo profundo (busque "refuerzo" aprendizaje "en cualquier lista curada de trabajos de aprendizaje profundo como este)

Sin embargo, si la información sobre el juego que está disponible para su IA está más estructurada que eso (por ejemplo, posición del jugador, descripción del entorno), puede hacerlo bien con enfoques más clásicos en los que descompone su juego en problemas manejables y resuelve cada uno algorítmicamente, por ejemplo, buscando con A * .


3

Lo que estás buscando se llama aprendizaje por refuerzo . En mi universidad, hay un curso completo (153h=45h) solo para presentar a los estudiantes este tema. Aquí están mis apuntes (principalmente alemanes) sobre planificación probabilística . Diría que este es definitivamente un tema avanzado para el aprendizaje automático.

Topcis para aprender sobre

  • Procesos de decisión de Markov (MDP)
    • Iteración de política y valor
    • Proyecto: Piedra-Papel-Tijera / Tic-Tac-Toe
  • Procesos de decisión de Markov parcialmente reversibles
    • Proyecto: Black Jack
  • Aprendizaje de refuerzo
    • Q-Learning
    • SARSA

Otros juegos simples

Otros recursos

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.