Como funciona a IA híbrida para jogos e quais são suas vantagens

Dando continuidade ao tema anteriormente levantado em nosso blog sobre inteligência artificial em jogos vamos discutir o quão aplicável é o aprendizado de máquina e em que formato. Compartilhando minhas experiências e as soluções escolhidas com base nelas compartilhou o especialista em IA da Apex Game Tools, Jakob Rasmussen.

Como funciona a IA híbrida para jogos e quais são suas vantagens

Nos últimos anos, muito se tem falado sobre como o aprendizado de máquina pode transformar radicalmente a indústria de jogos, já que essa tecnologia se mostrou disruptiva em muitas outras aplicações digitais. Mas não devemos esquecer que os jogos são muito mais complexos do que um simulador de direção, um programa de controle de drones ou algoritmos de reconhecimento facial em imagens.

Enquanto a indústria de jogos ainda se apoia em métodos tradicionais de IA, como máquinas de estados finitos, árvores de comportamento e—cada vez mais recentemente—IA baseada em utilidade (sistemas baseados em utilidade). Essa IA é muitas vezes chamada de design-based (inteligência artificial de design) ou sistemas especialistas. Porém, está se tornando cada vez mais evidente—especialmente para os jogadores—que esses sistemas são cada vez menos adequados para criar oponentes verdadeiramente avançados que possam imitar o comportamento dos jogadores. Isso é particularmente verdadeiro para soluções criativas. Isso pode ser explicado pelo fato de que os desenvolvedores de inteligência artificial não conseguem levar em conta todas as táticas e estratégias de comportamento possíveis e implementá-las com sucesso em sistemas tradicionais de IA. Para os jogadores, isso frequentemente resulta em uma experiência de jogo monótona e previsível contra um oponente cuja linha de comportamento é facilmente memorizável.

Esse resultado é causado por várias razões, mas uma das principais é a incapacidade da IA de aprender. Portanto, ao criar uma inteligência artificial para oponente, é natural considerar a transição para o aprendizado de máquina, que já se provou eficaz em muitas outras aplicações. No entanto, existem algumas nuances a serem consideradas. Assim, a IA dos jogos deve ser capaz de se adaptar a qualquer situação e aproveitar as vantagens que ela oferece, além de se ajustar a diferentes estilos de jogo de oponentes—jogadores humanos e outras IAs.

Como está a situação agora

A empresa britânica DeepMind, especializada no desenvolvimento de inteligência artificial, recentemente demonstrou como a IA pode aprender a jogar jogos, compreender suas regras e encontrar maneiras de avançar ou vencer — embora, por enquanto, apenas em exemplos de jogos simples, como os primeiros jogos. Atari — como xadrez e o jogo japonês go. Os resultados obtidos para eles mostram que a inteligência artificial é capaz de formar uma avaliação adequada do que acontece no campo. Quanto à adaptação da IA a diferentes estilos de jogo do oponente, os resultados ainda não são tão impressionantes.

Hoje em dia, redes neurais já aprenderam a reconhecer imagens e conduzir veículos. No entanto, essas funções podem ser implementadas também com arquiteturas relativamente simples, mesmo que o resultado final seja bastante profundo e extenso. Por exemplo, a IA para reconhecimento de imagens no Facebook tem uma profundidade de cerca de 100 camadas, o que a torna semelhante ao cérebro biológico — em termos de quantidade e complexidade das interconexões entre neurônios que formam uma grande rede.

IA de Jogo

No que diz respeito à aplicação do aprendizado de máquina na indústria de jogos, existem várias limitações que nem sempre permitem o uso desse tipo de arquitetura. Estas incluem requisitos de sistema, especialmente relacionados ao CPU, que determinam a capacidade do computador de processar estruturas complexas de jogos e sua adequação para storytelling e gameplay.

Assim, muitos jogos não conseguem fornecer a infraestrutura necessária para implementar sistemas complexos de inteligência artificial, muito menos um cluster de servidores, como existe, por exemplo, nas redes de reconhecimento de imagens do Facebook. Às vezes, múltiplas IAs precisam operar simultaneamente — não apenas em computadores, mas também em dispositivos móveis e outras plataformas menos potentes. Tudo isso impõe limitações ao tamanho e à complexidade da arquitetura de aprendizado de máquina, já que todos os cálculos ainda precisam ser realizados dentro de um intervalo de 1 ou 2 milissegundos. É claro que é possível usar várias tecnologias de otimização e distribuição de carga entre os quadros, mas ainda assim não é possível eliminar completamente essas limitações.

A dificuldade do jogo pode trazer sérios problemas para a IA. Em jogos como StarCraft II, por exemplo, a mecânica é muito mais complexa do que em jogos da Atari. Portanto, não se deve esperar que, com uma determinada taxa de quadros e requisitos de sistema conhecidos, o aprendizado de máquina consiga compreender todo o estado do jogo e interagir com ele. Assim como um jogador frequentemente se guia por sua intuição nos estágios iniciais do jogo, a IA também deve aprender a processar inicialmente o estado do jogo para simplificar seu progresso posterior. Por exemplo, em um dos últimos API para StarCraft II nos mapas, é exibida apenas a informação que os desenvolvedores consideraram importante: em um caso, a IA utilizou uma versão reduzida de todo o território do mapa; no segundo, assim como o jogador, ela podia mover a câmera, e sua percepção era limitada às informações exibidas na tela.

Como funciona a IA híbrida para jogos e quais são suas vantagens
Visualização do jogo da IA AlphaStar contra um jogador em StarCraft II: na captura de tela estão as observações de entrada "cruas", a atividade da rede neural, algumas de suas possíveis ações e coordenadas, assim como o resultado previsto da partida.

Este é um aspecto especialmente relevante no caso dos jogos. Muitas vezes, métodos tradicionais de resolução de problemas de aprendizado de máquina não se aplicam à inteligência artificial em jogos. Por exemplo, geralmente não é necessário que o AI vença ou faça tudo o que é possível para garantir a vitória, como acontecia nos jogos da Atari. Frequentemente, o papel da IA é tornar a experiência de jogo mais envolvente. Ela pode precisar representar um papel e se comportar da maneira que se espera do personagem que controla. Assim, as IAs em jogos estão mais conectadas ao design de jogos e à narrativa, e devem possuir as ferramentas necessárias para gerenciar seu comportamento em busca de um objetivo. O aprendizado de máquina puro nem sempre é adequado para isso - e, portanto, é necessário procurar algo diferente.

Problemas práticos de aprendizado de máquina

Esses problemas surgiram ao desenvolver inteligência artificial baseada em aprendizado de máquina para Unleash, onde a IA deve agir como jogadores comuns - ou seja, ser tão flexível e astuta quanto eles.

Assim como Starcraft II, Unleashed é muito mais complexo do que xadrez e go da Atari. O gameplay é intuitivo e fácil de aprender, mas para realmente se destacar, habilidades específicas de gerenciamento da meta são necessárias. O jogador deve criar labirintos, enviar monstros contra os inimigos e pensar em sua estratégia em economia, ataque e defesa de estruturas durante todo o jogo. Para isso, é preciso blefar e antecipar os movimentos dos oponentes, além de gerenciar a meta psicológica - é isso que transforma o pôquer em algo mais do que um simples jogo estatístico.

Como funciona a IA híbrida para jogos e quais são suas vantagens
Captura de tela de Unleashed

Na busca pela arquitetura mais adequada para esses objetivos, inicialmente tecnologias como neuroevolução e aprendizado profundo foram integradas ao jogo em quase sua forma original, para verificar como se comportariam em estado bruto como um oponente de IA.

Foi horrível.

Logo ficou claro que eram muitos os problemas globais a serem resolvidos em Unleashed, para os quais o aprendizado de máquina é difícil de se adaptar.

Um deles é a construção de um labirinto eficaz. Assim como em muitos jogos cujo objetivo é a defesa de torres, os jogadores precisam construir um labirinto ao redor dela, pelo qual os monstros irão tentar passar. Eles, por sua vez, devem ser eliminados com as armas posicionadas pelo labirinto. Idealmente, o labirinto deve ser o mais longo possível, para que se consiga infligir 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, é aconselhável posicioná-las no labirinto antes das demais. A particularidade de Unleash é que não existe um labirinto perfeito: no jogo há tantos tipos de monstros que, de uma forma ou de outra, algum deles passará livremente por alguma parte do labirinto. Qualquer labirinto deve ser adaptado para novos monstros que são acionados por outros jogadores. Portanto, não era suficiente apenas ensinar a inteligência artificial a construir labirintos — era necessário ensiná-la a criar labirintos eficazes para diferentes cenários que podem ser encontrados tanto na versão inicial quanto na final do jogo.

Além disso, a IA precisava aprender a prever quais monstros apareceriam no labirinto. Isso é uma espécie de problema reverso em relação à construção do labirinto. Assim como em muitos outros jogos, em Unleash não basta apenas aumentar o exército e enviá-lo para as linhas inimigas: também é necessário espionar a defesa adversária e estruturar as tropas de modo a atacar os pontos fracos do inimigo da maneira mais eficaz possível. O exército de monstros deve interagir entre si de maneira a conseguir romper o labirinto com mais sucesso. Às vezes, também é necessário liberar os monstros em uma ordem específica, dependendo de suas funções e papéis. Isso também aumenta o número de combinações diferentes.

Finalmente, uma vez que o jogador deve tanto criar labirintos quanto reunir um exército de monstros, a IA também precisa aprender a encontrar um equilíbrio entre ataque e defesa. Também vale a pena considerar que quanto mais o jogador aumenta seu exército de monstros e construí labirintos, mais recursos ele precisa para isso. Portanto, uma estratégia de ataque adequada é extremamente importante tanto para a economia durante o jogo quanto para a vitória. E para garantir a competitividade, a IA deve ser capaz de alocar recursos de modo a criar um exército poderoso de monstros, sem comprometer a força do labirinto. Investir ao máximo em monstros pode ser economicamente vantajoso, mas isso aumenta o risco de o labirinto ser capturado pelos monstros do adversário. Por outro lado, se optar por reforçar a defesa do labirinto, isso pode prejudicar sua economia. Nenhuma dessas opções levará à vitória. Assim, o problema de otimização em Unleashed acaba sendo mais complexo do que em jogos como xadrez ou Starcraft, e envolve a necessidade de sacrificar algo e projetar seu retorno a várias jogadas à frente.

À medida que a inteligência artificial avança, surgem muitos problemas anteriormente não considerados. No início, a IA frequentemente alcançava um certo nível de desenvolvimento, no qual começava a entender alguns aspectos do jogo — por exemplo, qual arma no labirinto é eficaz contra tipos específicos de monstros ou quais monstros têm melhor desempenho em determinadas partes do labirinto. No entanto, o aprendizado era lento e resultava na formulação de estratégias repetitivas.

A necessidade de abordagens paralelas

Enquanto o treinamento de IA baseado em aprendizagem de máquina evoluía lentamente e de forma não muito eficaz, outras etapas de testes e desenvolvimento exigiam IA melhor e IA concorrentes mais confiáveis. Para isso, foi utilizada a arquitetura Utility, que permite a criação de IAs específicas para testes e verificação da qualidade do jogo, testes internos e balanceamento de armas e monstros, bem como criação de labirintos e monstros específicos. No entanto, durante o desenvolvimento de Unleash, os criadores também aprimoraram suas habilidades em sua conclusão, e depois decidiram usar o conhecimento adquirido para desenvolver uma Utility IA mais complexa. Assim, ficou claro que muitos problemas enfrentados por sistemas de inteligência artificial baseados em aprendizagem de máquina podem ser facilmente resolvidos com sistemas Utility que utilizam os conhecimentos embutidos neles, e vice-versa.

Por exemplo, labirintos mais eficientes são melhor construídos com a ajuda de Utility IAs, baseadas em bancos de dados resultantes de testes internos. É possível descrever e programar facilmente um algoritmo para a construção de labirintos e a disposição de armas de uma maneira que facilite a defesa de uma torre contra monstros específicos para um jogador real. No entanto, a criação de um exército de monstros com base no conhecimento sobre a base do inimigo apresentou-se como uma tarefa complexa para tais IAs, devido à quantidade de condições e combinações diferentes que precisam ser consideradas, o que era impressionante. Com esse tipo de arquitetura de IA, a busca por conjuntos adequados de monstros levaria um tempo infinito. Portanto, sob as condições impostas, o aprendizado profundo seria a solução ideal para essa tarefa.

Criação de IAs híbridas

Assim, foi decidido combinar duas abordagens e, assim, criar um sistema híbrido de inteligência artificial baseado em aprendizado de máquina e Utility. A ideia era que, onde era necessário processar uma enorme quantidade de combinações e estados do jogo, ou onde era preciso ensiná-lo algo, o aprendizado de máquina fosse utilizado. Para outras tarefas, onde era melhor confiar na experiência pessoal dos desenvolvedores, foram empregadas sistemas Utility. A vantagem dessa abordagem também reside no fato de que, se necessário, é possível controlar melhor o comportamento da IA, garantindo que ela siga mais precisamente o objetivo definido. Por exemplo, pode-se usar Utility IA para garantir um equilíbrio entre ataque e defesa, criando assim diferentes níveis de agressividade, ou é possível criar diferentes configurações de labirintos para diferentes IAs, para formar estilos de jogo individuais. Também é possível definir certos sistemas de valores para as redes neurais, a fim de desenvolver diferentes preferências ao selecionar monstros aéreos ou terrestres, e assim adicionar individualidade a cada IA. Há muitas outras opções para a implementação de soluções de design, e todas elas destacam os pontos fortes de cada tipo de arquitetura de IA.

A abordagem híbrida também foi uma resposta a outra questão que surgiu para a equipe de desenvolvedores durante o desenvolvimento da inteligência artificial para o Unleash: deve-se aplicar uma única e global rede neural profunda baseada em aprendizado de máquina para considerar todos os dados de entrada e saída, ou é melhor projetar a IA com uma estrutura hierárquica?

Como funciona a IA híbrida para jogos e quais são suas vantagens
Duas arquiteturas usadas no Unleash: à esquerda — uma grande rede neural profunda com sua própria arquitetura única, à direita — um sistema hierárquico, onde cada rede tem sua própria tarefa.

E ainda assim, desejaria criar uma abordagem comum para o sistema de inteligência artificial, cuja arquitetura não fosse baseada na experiência própria dos desenvolvedores. Contudo, quanto mais entradas havia no jogo, mais a rede neural se expandia. Não era possível separar o treinamento da IA e ensiná-la a focar em um único aspecto: ou defesa ou ataque. Havia receios de que uma abordagem mais geral resultaria em um aumento significativo no número de cálculos.

Assim, surgiu a ideia de criar uma arquitetura hierárquica, onde cada tarefa específica seria executada por uma rede neural especializada. De acordo com essa ideia, primeiro, a inteligência artificial precisa decidir sobre a alocação de recursos entre ataque (aumentar o exército de monstros) e defesa (construir um labirinto). Assim que faz isso, ela avança para o próximo nível de acordo com sua escolha e ganha acesso à parte necessária do estado do jogo, após o que toma decisões detalhadas sobre quais monstros escolher e qual arma instalar no labirinto.

Conclusão e próximos passos

Com uma abordagem híbrida, a IA Utility com redes baseadas em aprendizado de máquina incorporadas lembra uma arquitetura hierárquica. E esta, por sua vez, assemelha-se ao cérebro biológico, onde diferentes centros nervosos são responsáveis por tarefas específicas.

Atualmente, a IA do oponente em Unleash é muito difícil de vencer: eles são capazes de se adaptar a qualquer situação no jogo, — mas os desenvolvedores podem alterar suas configurações à vontade. Na opinião do autor do artigo, com o passar do tempo, a abordagem híbrida deve se tornar mais comum e surgir em muitos outros jogos. Talvez um dia possamos integrar a inteligência artificial baseada em aprendizado de máquina de forma pura ao processo do jogo. Mas, claramente, isso ainda requer tempo. Enquanto isso, o objetivo é encontrar uma arquitetura que se ajuste automaticamente às tarefas que enfrenta e descubra maneiras otimizadas de resolvê-las.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster