De que conhecimento eu preciso para escrever um programa simples de IA para jogar um jogo?

8

Eu sou formado em Direito. Um dos meus cursos foi 'Introdução ao aprendizado de máquina', e eu sempre quis fazer um projeto pessoal nesse assunto.

Recentemente, ouvi falar sobre diferentes treinamentos de IA para jogar jogos como Mario, Go, etc.

Que conhecimento eu preciso adquirir para treinar um simples programa de IA para jogar um jogo? E qual jogo você recomenda para iniciantes?

Isso é o que eu sei no Machine Learning até agora -

  • Introdução ao curso e ao aprendizado de máquina. Algoritmo K-vizinho mais próximo e algoritmo K-means
  • Inferência estatística
  • Modelo de Mistura Gaussiana (GMM) e Maximização de Expectativas (EM)
  • Modelo provavelmente Aproximadamente Correto (PAC), incluindo limites de generalização e seleção de modelo
  • Algoritmos básicos de hiperplano: Perceptron e Winnow.
  • Máquinas de vetores de suporte (SVM)
  • Kernels
  • Estimular alunos fracos a alunos fortes: AdaBoost
  • Margin-Perceptron
  • Regressão
  • PCA
  • Árvores de decisão
  • Poda de árvores de decisão e florestas aleatórias
Niv Hoffman
fonte

Respostas:

8

Existem várias maneiras de abordar a resolução de problemas de jogo. Alguns jogos podem ser resolvidos por algoritmos de busca, por exemplo. Isso funciona bem para jogos de cartas e tabuleiro até um certo nível de complexidade. Por exemplo, o Deep Blue da IBM era essencialmente uma pesquisa rápida, orientada por heurística, para movimentos ideais.

No entanto, provavelmente o algoritmo de aprendizado de máquina mais genérico para treinar um agente para executar uma tarefa de maneira ideal é o aprendizado por reforço . Tecnicamente, não é um algoritmo, mas uma família extensa de algoritmos relacionados que resolvem uma formalização específica do problema de aprendizagem.

Informalmente, o Aprendizado por Reforço (RL) consiste em encontrar soluções ótimas para problemas definidos em termos de um agente que pode observar o estado de um ambiente , executar ações nesse ambiente e experimentar recompensas que, de alguma forma, estão relacionadas ao estado e à ação. Os solucionadores de RL precisam ser projetados para lidar com situações em que as recompensas são recebidas mais tarde do que quando ações importantes foram tomadas, e isso geralmente é alcançado pelo algoritmo que aprende uma expectativa interna de recompensas posteriores associadas aos pares de estado e / ou estado-ação.

Aqui estão alguns recursos para estudar a Aprendizagem por Reforço:

Você verá que o assunto em si é bastante amplo, pois são necessárias variações cada vez mais sofisticadas dos algoritmos, à medida que o problema a ser resolvido se torna mais difícil.

O início de jogos para estudar o aprendizado por reforço pode incluir:

  • Tik-tac-toe (também conhecido como nada e cruzamentos) - isso pode ser resolvido facilmente usando a pesquisa, mas cria um problema simples de brinquedo a ser resolvido usando técnicas básicas de RL.

  • Labirintos - na literatura de aprendizado por reforço, há muitos exemplos de jogos do "mundo da grade", nos quais um agente se move em etapas N, E, S, W em um pequeno quadro que pode ser preenchido com perigos e objetivos.

  • Blackjack (tcp 21)

Se você deseja trabalhar com agentes para jogar videogame, também vai querer aprender sobre redes neurais e provavelmente com alguns detalhes - você precisará de redes neurais profundas e convolucionais para processar os gráficos da tela.

Um recurso relativamente novo para RL é o OpenAI Universe . Eles fizeram muito trabalho para empacotar ambientes prontos para treinar agentes, o que significa que você pode se concentrar no estudo dos algoritmos de aprendizado, em oposição ao esforço de configurar o ambiente.


Em relação à sua lista de habilidades atuais: Nenhuma delas é diretamente relevante para o aprendizado por reforço. Contudo:

  • Se você conseguir entender a matemática e a teoria do curso anterior, também deverá entender a teoria do aprendizado por reforço.

  • Se você estudou alguma técnica de aprendizado supervisionado on-line ou em lote, elas podem ser usadas como componentes dentro de uma estrutura de RL. Normalmente, eles podem ser usados ​​para aproximar uma função de valor do estado do jogo, com base no feedback de sucessos e falhas até agora.

Neil Slater
fonte
7

Depende muito do tipo de jogo e das informações sobre o estado do jogo disponível para sua IA.

Alguns dos mais famosos AIs de jogos dos últimos anos são baseados no aprendizado por reforço profundo (por exemplo, Playing Atari with Deep Reinforcement Learning ), que é o aprendizado por reforço normal (por exemplo, Q-learning) com uma rede neural profunda como aproximação da função de valor da recompensa. Essas abordagens recebem os pixels brutos do jogo mais os pontos do jogador e produzem as ações de um game pad, como um humano. Para fazer algo assim, você precisa dominar o aprendizado por reforço (veja o livro seminal de Sutton e Barto ) e o aprendizado profundo (veja Ian Goodfellow et al. Livro ) e, em seguida, como fundi-los no aprendizado por reforço profundo (procure por "reforço aprendizagem "em qualquer lista com curadoria de trabalhos de aprendizagem profunda como esta)

No entanto, se as informações sobre o jogo que estão disponíveis para a sua IA forem mais estruturadas que isso (por exemplo, posição do jogador, descrição do ambiente), você poderá se dar bem com abordagens mais clássicas, em que decomponha seu jogo em problemas tratáveis ​​e resolva cada um algoritmicamente, por exemplo, pesquisando com A * .

ncasas
fonte
3

O que você está procurando é chamado Aprendizado por Reforço . Na minha universidade, há um curso completo (153h=45h) apenas para apresentar aos alunos esse tópico. Aqui estão minhas notas de aula (principalmente em alemão) para o planejamento probabilístico . Eu diria que este é definitivamente um tópico avançado para aprendizado de máquina.

Topcis para aprender sobre

  • Processos de decisão de Markov (MDPs)
    • Iteração de Política e Valor
    • Projeto: Pedra-Papel-Tesoura / Tic-Tac-Toe
  • Processos de decisão de Markov parcialmente obversíveis
    • Projeto: Black Jack
  • Aprendizagem por reforço
    • Q-Learning
    • SARSA

Outros jogos simples

Outros recursos

Martin Thoma
fonte