2017/08/14

OpenAI derrota campeões de Dota 2


O Dota 2 é um dos mais populares jogos nas arenas de eSports, mas os jogadores profissionais humanos têm que começar a preocupar-se com bem mais que os oponentes de carne e osso, pois um bot da OpenAI já conseguiu vencer alguns dos melhores jogadores do mundo deste jogo.

O feito foi conseguido durante o torneio de Dota 2 da Valve, com o bot da OpenAI (startup apoiada por Elon Musk) a ter necessitado de apenas duas semanas de aprendizagem para chegar ao ponto a que chegou - sendo que durante esse tempo terá acumulado experiência equivalente a várias "vidas" de um jogador humano, dizem os seus criadores.

Embora o Dota 2 seja um jogo tradicionalmente jogado em modo 5-contra-5, por agora o bot fez apenas confrontos de 1-contra-1, mas tendo derrotado repetidamente os melhores jogadores humanos, com manobras que surpreendentemente pareciam... humanas.

Ao contrário de outros bots "impossíveis de derrotar" em jogos, aqui estamos perante bots que têm que jogar o jogo apenas com a mesma informação que um jogador humano teria, sem acesso privilegiado a dados que auxiliassem a sua vitória. E, considerando toda as infinitas possibilidade de jogo e o facto de ocorrer em tempo-real, é uma tarefa que se torna o desafio bastante mais complicado que os jogos de xadrez ou até de Go.

Elon Musk bem que tem alertado para os riscos das inteligências artificiais se poderem tornar uma ameaça para os humanos. A ver pela "cabazada" dada em Dota 2... acho que já o são! :)





13 comentários:

  1. Eu não jogo destas coisas, mas assim de repente não me parece um desafio muito justo. Há com certezas vantagens táticas humanas que a AI teria que tentar anular, mas a maior parte do jogo depende de fatores "técnicos" como timing e posicionamento, algo que na minha opinião o computador consegue fazer muito melhor. É como dizer a uma AI num FPS para quando disparar apontar sempre para a cabeça. É óbvio que a vantagem está do lado do computador.

    ResponderEliminar
    Respostas
    1. Isso seria nos "bots" normais. Aqui tens um que tem que jogar como um humano, ou seja, tem que olhar para o "ecrã" e ver apenas aquilo que um humano vê. Isso que dizes de "apontar para a cabeça" implica que ele seja capaz de determinar o que é um jogador oponente no meio da confusão de todo o cenário, saber o que é a cabeça, disparar, etc.

      Eliminar
    2. Mas então estás a falar de analisar pixéis em vez de código? Novamente, podemos falar da dificuldade técnica que existe em criar algoritmos para AI capazes de determinar ações baseadas nos pixéis, mas aquilo a que me refiro é que um computador será certamente melhor em questões de timing e posicionamento em que por exemplo o humano tem que fazer um múltiplos cliques com o rato em que 1 pixel ao lado fará diferença e no caso do computador acertará sempre no pixel certo.

      Eliminar
    3. Estás a esquecer-te do "pormenor" base de tudo isto: não estamos a lidar com um bot programado por alguém que lhe deu todas as tácticas para ganhar, estamos a lidar com um sistema que aprendeu por si.

      Eliminar
  2. Hmm, eu contraponho que não me estou a esquecer :) Deixa-me citar o meu primeiro post "assim de repente não me parece um desafio muito justo".
    Ora, de facto não discuto a dificuldade técnica do obtido pelo bot. A forma como foi criado, utilizando apenas o "ecrã", aprendendo e evoluindo pela análise dos próprios jogos, etc.

    O meu argumento é que há coisas que os computadores conseguem fazer muito melhores que humanos. Neste jogo é preciso controlar timings de ataques, é preciso controlar posicionamentos e enquanto o computador vê todos os pormenores e reage com a precisão de 1pixel em milisegundos o humano nunca será tão preciso e tão rápido.

    ResponderEliminar
    Respostas
    1. Certo, mas já viste o jogo? Aqui não é questão de poderes ganhar com "headshots", é estratégia pura, e não há nenhuma regra fixa que pudesses programar para ganhar a jogadores profissionais, que facilmente mudam de táctica para se adaptar ao oponente.

      Eliminar
    2. Então devolvo a pergunta :) Já experimentaste jogar o jogo? Tem várias características de skill física e não mental. É preciso clicar num pixel para mover o bicho para uma certa posição e depois clicar em algo (um bicho ou um objeto) para interagir com ele e isto repete-se de segundo a segundo. Ter a capacidade de nunca falhar o pixel onde se quer clicar parece-me uma vantagem. Para além do clique precisas temporizar o momento em que matas lá o bicho e isso é baseado em todos os bichos que andam lá à volta a atacar, no tempo entre ataques, no tempo que demora o ataque a chegar ao destino. Novamente, parece-me que o computador terá muita vantagem em analisar todas estas situações em simultâneo em relação a um humano e adapta-se constantemente.

      PS: A propósito, só para esclarecer que não estou do contra. Acho fantástico o que eles conseguiram criar, mas não está-me a fazer confusão o aspeto técnico da jogabilidade porque não me parece justo. Parece-me equivalente a pôr um computador com acesso a todas a informação do google a competir contra um humano num quem quer ser milionário.

      Eliminar
    3. A precisão do posicionamento de pouco serve quando jogares as unidades erradas para tentar defender um ataque do oponente que é "desconhecido" e ao qual não podes reagir de forma instantânea mas tem que ser antecipada.

      A complexidade é muito maior do que pensar que se trata de um simples aimbot. :)

      Eliminar
    4. Sem dúvida, sem dúvida. Há muitas variáveis a programar. Há muitas situações que têm que ser previstas. Estou desde o início a concordar com esse aspeto. Mas também desde o início que o meu argumento é que a máquina vai ser sempre mais rápida e precisa a executar as ações necessárias e essa precisão, neste jogo em particular, faz muita diferença. Assim, o bot contendo as mesmas táticas que o humano, a execução (que faz muita diferença) vai ser sempre muito melhor.
      O que seria de esperar é que o humano, através da tática, fosse capaz de ultrapassar a maior aptidão técnica da máquina, mas não é o caso e aí é preciso dar os parabéns à equipa por detrás da AI.

      Numa nota paralela, pergunto-me se será mais complicado ou mais fácil de criar este AI do que seria criar uma AI capaz de vencer um humano em jogos de estratégia mais complexos como por exemplo starcraft ou outros do género.

      Eliminar
    5. Penso que os únicos bots que vencem humanos em jogos de estratégia são os que usam "batotas" (ter conhecimento do que o oponente está a fazer de forma imediata, ou que têm vantagem acrescida - como mais recursos por segundo, etc.)

      Eliminar
    6. É provável que tenhas razão. Eu penso que este cenário de jogo do tipo MOBA, associado ao facto de ser 1v1 facilita a vida da máquina. Escalar para cenários mais complexos e com vários jogadores é capaz de se provar muito complicado.

      Obrigado pelo debate e agora siga que se faz tarde e temos mais que fazer.
      Viva a curiosidade :)

      Eliminar
    7. Sim, vai ser interessante ver este AI em modo vs 5 jogadores...

      Eliminar
  3. Este comentário foi removido por um gestor do blogue.

    ResponderEliminar