Como funciona uma IA de jogos híbridos e quais são suas vantagens

Na continuação do tópico sobre inteligência artificial de jogos que foi levantado em nosso blog, falaremos sobre como o aprendizado de máquina é aplicável a ele e de que forma. Jacob Rasmussen, especialista em questões de IA no Apex Game Tools, compartilhou sua experiência e as soluções selecionadas com base em ele.



Nos últimos anos, tem havido muita conversa de que o aprendizado de máquina mudará radicalmente a indústria de jogos, porque essa tecnologia já se tornou uma inovação em muitas outras aplicações digitais. Mas não esqueça que os jogos são muito mais complicados do que um simulador de direção de carro, um programa de controle de drones ou algoritmos de reconhecimento de rosto em uma imagem.

Até o momento, na indústria de jogos, ainda é habitual usar métodos tradicionais de IA, como o método da máquina de estados finitos, árvores de comportamento e - mais recentemente - IA baseada em utilitários (sistemas baseados em utilidades). Essas AIs também são chamadas de sistemas baseados em design (inteligência artificial de design) ou sistemas especializados. Mas está se tornando cada vez mais óbvio - e para os jogadores em primeiro lugar - que esses sistemas são cada vez menos adequados para criar oponentes verdadeiramente avançados que possam imitar o comportamento dos jogadores. Isto é especialmente verdade para soluções criativas. Isso pode ser explicado pelo fato de que os desenvolvedores de inteligência artificial não são capazes de levar em consideração todas as possíveis táticas e estratégias de comportamento e implementá-las com sucesso nos sistemas tradicionais de IA. Para os jogadores, isso costuma ser chato e previsível jogar com um oponente cujo comportamento é fácil de lembrar.

Muitas razões levam a esse resultado, mas uma das principais é a incapacidade da IA ​​de aprender. Portanto, ao criar a inteligência artificial do inimigo, a decisão sobre a transição para o aprendizado de máquina, que já se provou em muitas outras aplicações, vem à mente por si mesma. Mas existem várias nuances que valem a pena considerar. Portanto, a IA do jogo deve ser capaz de se adaptar a qualquer situação e usar as vantagens que ela oferece, além de se adaptar aos diferentes estilos de jogo dos rivais - jogadores ao vivo e outras IA.


Como estão as coisas agora


A empresa britânica DeepMind, envolvida no desenvolvimento da inteligência artificial, mostrou recentemente como a IA pode aprender a jogar de forma independente, aprender suas regras e encontrar maneiras de passar ou vencer o jogo - no entanto, até agora, apenas no exemplo de jogos simples, como os primeiros jogos da Atari - por exemplo, o xadrez e o jogo de lógica japonês terminam. Os resultados obtidos para eles mostram que a inteligência artificial é capaz de formar para si uma avaliação adequada do que está acontecendo em campo. Se falarmos sobre a adaptação da IA ​​a vários estilos de jogo do oponente, os resultados não são tão impressionantes.

Atualmente, as redes neurais já aprenderam a reconhecer imagens e dirigir carros. Mas essas funções podem ser realizadas com a ajuda de arquiteturas relativamente simples, mesmo que, como resultado, sejam bastante profundas e volumosas. Portanto, a IA para reconhecimento de imagem no Facebook tem uma profundidade de cerca de 100 camadas, razão pela qual se assemelha a um cérebro biológico - no número e na complexidade do relacionamento entre os neurônios que formam uma grande rede.


Game AI


Quanto à aplicação do aprendizado de máquina na indústria de jogos, existem várias limitações, pelas quais nem sempre é possível usar esse tipo de arquitetura. Isso inclui requisitos de sistema, em particular relacionados à CPU, que determinam a capacidade de um computador processar estruturas complexas de jogos e sua adequação à narrativa e à jogabilidade.

Assim, verifica-se que em muitos jogos para a implementação de um complexo sistema de inteligência artificial, não é possível organizar o hardware necessário e ainda o cluster de servidores, que existe, por exemplo, para redes de reconhecimento de imagens no Facebook. Às vezes, várias IAs precisam trabalhar ao mesmo tempo - não apenas em computadores, mas também em dispositivos móveis e em outras plataformas menos produtivas. Tudo isso impõe restrições ao tamanho e complexidade da arquitetura de aprendizado de máquina, porque todos os cálculos também devem ser realizados com uma duração de quadro da ordem de 1 ou 2 milissegundos. Obviamente, você pode usar várias tecnologias de otimização e balanceamento de carga entre quadros, mas ainda não consegue se livrar dessas limitações.

Problemas sérios para a IA podem causar a complexidade do jogo. De fato, em jogos como StarCraft II, a mecânica do jogo é muitas vezes mais complicada do que nos jogos da Atari. Portanto, você não deve esperar que, para uma determinada frequência de quadro e com requisitos de sistema conhecidos, o aprendizado de máquina certamente lide com o estudo de todo o estado do jogo e seja capaz de interagir com ele. Como um jogador é frequentemente guiado pela intuição nos estágios iniciais do jogo, a IA deve aprender a processar o estado do jogo para simplificar sua passagem. Por exemplo, em uma das APIs mais recentes do Starcraft II nos mapas, apenas as informações que os desenvolvedores consideravam importantes eram exibidas: em um caso, a IA usava uma visão reduzida de todo o território do mapa, no segundo - como um jogador, ele podia mover a câmera e, em seguida, sua percepção era limitada a informações. na tela.

imagem
Visualização do jogo AlphaStar AI contra um jogador no StarSraft II: a captura de tela mostra as observações brutas de entrada, a atividade da rede neural, algumas de suas possíveis ações e coordenadas, bem como o resultado esperado da partida

Este é um aspecto particularmente relevante no caso de jogos. Geralmente, os métodos geralmente aceitos para solucionar problemas de aprendizado de máquina não são aplicáveis ​​à inteligência artificial dos jogos. Por exemplo, geralmente ele não é obrigado a vencer ou fazer tudo ao seu alcance para vencer, como foi o caso dos jogos da Atari. Mais frequentemente, o papel da IA ​​é tornar o jogo que passa mais emocionante. Pode ser necessário que ele desempenhe um papel e se comporte como sugere o personagem do personagem por quem ele é responsável. Assim, as IAs de jogos estão mais ligadas ao design e à narrativa de jogos e devem ter as ferramentas necessárias para controlar seu comportamento e alcançar seus objetivos. O aprendizado de máquina puro nem sempre é adequado para isso - o que significa que você precisa procurar outra coisa.


Problemas práticos de aprendizado de máquina


Esses problemas surgiram no desenvolvimento da inteligência artificial baseada em aprendizado de máquina para o Unleash , onde as IAs deveriam se comportar como jogadores comuns - ou seja, ser tão flexíveis e engenhosas.

Como Starcraft II, Unleashed é muito mais complexo que o xadrez e é usado pela Atari. A jogabilidade é intuitiva e fácil de aprender, mas para ser realmente bem-sucedida, você precisa de certas habilidades de gerenciamento de meta. O jogador deve construir labirintos, colocar monstros nos inimigos e pensar em sua estratégia em economia, ataque e defesa de estruturas ao longo do jogo. Para fazer isso, ele precisa blefar e calcular os movimentos de outras pessoas, além de gerenciar uma meta psicológica - é ela quem faz do poker algo mais do que apenas um jogo estatístico.

imagem
Captura de tela de Unleashed

Em busca da arquitetura mais adequada para esses propósitos, tecnologias como neuroevolução e aprendizado profundo foram introduzidas no jogo pela primeira vez de forma quase inalterada, e verificamos como elas se mostrariam cruas como uma IA inimiga.

Foi horrível.

Logo ficou claro que o Unleashed precisava resolver muitos problemas globais difíceis de se adaptar ao aprendizado de máquina.

Um deles é a construção de um labirinto eficaz. Como em muitos jogos cujo objetivo é proteger a torre, aqui os jogadores precisam construir um labirinto em torno dela, através do qual os monstros irromperão. Eles, por sua vez, devem ser eliminados com a ajuda de armas colocadas em um labirinto. Idealmente, o labirinto deve ter o maior tempo possível para causar dano suficiente aos monstros e impedi-los de alcançar a torre. Para alguns tipos de armas, os monstros são mais vulneráveis ​​do que para outros, portanto, para maior eficácia, eles devem ser colocados no labirinto mais cedo do que todos os outros. A peculiaridade de Unleash é que não há labirinto perfeito: existem tantos tipos de monstros no jogo que, de um jeito ou de outro, eles passam livremente por qualquer parte do labirinto. Qualquer labirinto deve ser adaptado para novos monstros lançados por outros jogadores. Assim, era necessário não apenas ensinar inteligência artificial para construir labirintos - era necessário ensiná-lo a criar labirintos eficazes para vários cenários, que só podem ser encontrados nas versões inicial e posterior do jogo.

Além disso, a IA precisou aprender a descobrir quais monstros apareceriam no labirinto. Este é um tipo de problema inverso no que diz respeito à construção do labirinto. Como em muitos outros jogos, em Unleash não basta construir um exército e enviá-lo para o campo do inimigo: você também precisa espionar a defesa do inimigo e estruturar seu exército de forma a atingir os pontos de dor do inimigo da maneira mais eficiente possível. O exército de monstros deve interagir entre si de maneira a conseguir atravessar o labirinto com mais sucesso. Às vezes, também é necessário liberar monstros em uma determinada ordem, dependendo de suas funções e funções. Isso também aumenta o número de combinações diferentes.

Finalmente, como o jogador deve criar labirintos e montar um exército de monstros, a IA também precisa aprender a encontrar equilíbrio no ataque e na defesa. Também vale a pena considerar que, quanto mais o jogador constrói o exército de monstros e mais ele constrói o labirinto, mais recursos ele precisa para isso. Portanto, a estratégia correta de ataque é extremamente importante tanto para a economia durante o jogo quanto para a vitória nela. E para garantir a competitividade, a IA deve ser capaz de dispor de recursos de forma a criar um poderoso exército de monstros, sem comprometer a força do labirinto. Investir em monstros ao máximo pode ser econômico, mas isso aumenta o risco de monstros inimigos pegarem o labirinto. Se você apostar no fortalecimento da proteção do labirinto, isso pode prejudicar sua economia. Nenhum desses cenários levará à vitória. Portanto, o problema de otimização em Unleashed é maior do que no caso de xadrez ou Starcraft, e inclui a necessidade de sacrificar algo e calcular seu lucro vários passos à frente.

À medida que a inteligência artificial é treinada, muitos problemas não contabilizados aparecem. Então, no início, a IA frequentemente alcançava um certo nível de desenvolvimento, no qual ele começou a entender alguns aspectos do jogo - por exemplo, quais armas no labirinto são eficazes contra tipos específicos de monstros ou quais monstros melhor passam em determinadas seções do labirinto. Mas o aprendizado foi lento e levou ao desenvolvimento de estratégias uniformes.


A necessidade de abordagens paralelas


Enquanto o aprendizado de IA baseado em aprendizado de máquina se desenvolveu lentamente e sem sucesso, outros estágios de teste e desenvolvimento exigiram melhor IA e IAs rivais mais robustas. Para implementá-los, foi usada a arquitetura Utility, com a qual você pode criar IAs especiais para testar e verificar a qualidade do jogo, testes no jogo e equilibrar armas e monstros, além de criar labirintos e monstros específicos. No entanto, durante o desenvolvimento do Unleash, os próprios criadores aprimoraram suas habilidades em passá-lo e, em seguida, decidiram usar o conhecimento adquirido para criar um Utilitário de IA mais complexo. Portanto, ficou claro que muitos problemas que surgem em sistemas de aprendizado artificial baseados em aprendizado de máquina podem ser facilmente resolvidos com a ajuda de sistemas utilitários que usam seu conhecimento e vice-versa.

Por exemplo, é melhor criar labirintos mais eficazes usando o Utility AI, com base em bases de conhecimento compiladas a partir de testes internos. Você pode facilmente descrever e programar o algoritmo para a construção do labirinto e a localização das armas nele, de maneira que seria mais fácil defender a torre de monstros específicos para um jogador vivo. Mas a criação de um exército de monstros baseado no conhecimento da base inimiga foi uma tarefa difícil para essas IAs, já que o número de diferentes condições e combinações que devem ser levadas em consideração foi incrível. Com esse tipo de arquitetura de IA, encontrar conjuntos adequados de monstros levaria um tempo infinitamente longo. Então, dadas as restrições dadas, o aprendizado profundo seria a solução ideal para essa tarefa.


Criação de IA híbrida


Então, decidiu-se combinar as duas abordagens e, assim, criar um sistema híbrido de inteligência artificial baseado no aprendizado de máquina e no utilitário. A idéia era que, onde era necessário processar um grande número de combinações e estados do jogo, ou onde era necessário treiná-lo com alguma coisa, o aprendizado de máquina era usado. Para outras tarefas, onde é melhor confiar na experiência pessoal dos desenvolvedores, os sistemas Utility estavam envolvidos. A vantagem dessa abordagem também reside no fato de que, se necessário, é possível controlar melhor o comportamento da IA, a fim de garantir sua aderência mais exata a um determinado objetivo. Por exemplo, você pode usar o Utility AI para garantir um equilíbrio entre ataque e defesa e, assim, criar diferentes níveis de agressão, ou criar diferentes configurações de labirinto para diferentes IAs para criar estilos de jogo individuais para elas. Você também pode definir certos sistemas de valores para as redes neurais para formar várias preferências ao recrutar monstros aéreos ou terrestres e, assim, adicionar personalidade às IAs individuais. Existem muitas outras opções para implementar decisões de design e todas enfatizam os pontos fortes de um tipo específico de arquitetura de IA.

A abordagem híbrida também respondeu a outra pergunta que a equipe de desenvolvimento enfrentou no processo de desenvolvimento de inteligência artificial para o Unleash: vale a pena aplicar uma única rede neural profunda global baseada no aprendizado de máquina para levar em consideração todos os dados de entrada e saída, ou é melhor projetar AIs com uma estrutura hierárquica?

imagem
Duas arquiteturas usadas no Unleash: à esquerda, uma grande rede neural profunda com sua própria arquitetura unificada; à direita, um sistema hierárquico no qual cada rede tem sua própria tarefa

No entanto, eu gostaria de criar uma abordagem comum para o sistema de inteligência artificial, na arquitetura em que os desenvolvedores não colocariam sua própria experiência. No entanto, quanto mais entradas eram feitas no jogo, mais a rede neural crescia. Ao mesmo tempo, era impossível separar o treinamento da IA ​​e ensinar-lhes apenas uma coisa: defesa ou ataque. E temia-se que uma abordagem mais geral levasse a um aumento significativo no número de cálculos.

Daí surgiu a idéia de criar uma arquitetura hierárquica na qual cada tarefa específica seria executada por uma rede neural especializada. De acordo com essa idéia, a primeira inteligência artificial deve tomar uma decisão sobre a distribuição de recursos para ataque (aumento do exército de monstros) e defesa (construção do labirinto). Assim que ele faz isso, ele passa para a próxima camada de acordo com sua escolha e obtém acesso à parte necessária do estado do jogo, após o que toma decisões detalhadas sobre quais monstros escolher e quais armas instalar no labirinto.


Conclusão e próximos passos


Na abordagem híbrida do Utility, a IA com redes habilitadas para aprendizado de máquina se assemelha a uma arquitetura hierárquica. E, por sua vez, é semelhante a um cérebro biológico no qual diferentes centros nervosos são responsáveis ​​por sua tarefa.

Agora, a IA inimiga em Unleash é muito difícil de derrotar: eles são capazes de se adaptar a qualquer situação no jogo - mas, ao mesmo tempo, os desenvolvedores podem alterar suas configurações a seu critério. Segundo o autor do artigo, com o tempo, a abordagem híbrida deve se tornar mais difundida e aparecer em muitos outros jogos. Talvez um dia seja possível introduzir inteligência artificial baseada no aprendizado de máquina em sua forma mais pura na jogabilidade. Mas, obviamente, isso ainda levará tempo. Enquanto isso, o objetivo é encontrar uma arquitetura que se adapte aos desafios que enfrenta e encontre maneiras ideais de resolvê-los.

Source: https://habr.com/ru/post/pt473932/


All Articles