O brasileiro que ensinou uma inteligência artificial a identificar pokémons

Matéria originalmente publicada na Motherboard.

Os computadores estão lentamente minando especialidades humanas, nos superando em alguns dos jogos mais desafiadores como o Go. Cara, até videogames e pôquer estão sendo dominados por algoritmos complexos. Era só questão de tempo até eles virem atrás de uma das mais queridas habilidades humanas: identificar corretamente pokémons.

Videos by VICE

Sim, as máquinas agora conseguem estudar e treinar até poderem ver um Machop e saber com alguma certeza que esse é um pokémon lutador. Não é tarefa fácil, já que há centenas de pokémons de 18 tipos diferentes. O segredo para essa capacidade é uma tecnologia conhecida como redes neurais.

Redes neurais artificiais são programas de computador feitos de “camadas” de neurônios conectados que rodam computações semialeatórias sobre dados de input como imagens, e se rearranjam até “aprenderem” como reconhecer os objetos nelas. Isso se chama “treinamento”, e quando o processo está completo, a rede deve conseguir reconhecer objetos não familiares que são parecidos com aqueles com que ela já treinou.

O pesquisador independente brasileiro Henrique Soares imaginou que seria interessante testar como essa tecnologia de reconhecimento de imagem lidaria com um videogame jogado pela molecada do mundo todo, e que a experiência o ajudaria a avançar suas próprias habilidades tecnológicas. E por diversão também.

“Descobri que ler livros, e até resolver alguns problemas clássicos […] são ótimas ferramentas para aprender alguma coisa”, Soares escreveu por e-mail. “Mas só aplicando essas soluções a novos problemas (mesmo problemas bobos), sou capaz de transformar esse conhecimento em habilidades para o mundo real.” Justo. Então como ele fez isso, e deu certo?

O primeiro passo de Soares foi juntar uma base de dados de sprites de Pokémon para que a rede pudesse treinar. Ele juntou milhares de sprites de personagens das primeiras cinco gerações do jogo, cobrindo centenas de criaturas. Depois de otimizar os sprites e os anotar por tipo, Soares separou 20% deles para treino e 80% para testes.

Pokémons corretamente identificados pela IA. Imagem: Journal of Geek Studies/Henrique Soares.

O computador conhecia reconhecer um tipo de pokémon apenas olhando para ele com 39% de precisão no geral. Melhor que um chute aleatório, mas não tão eficiente assim. Mas olhando um pouco mais de perto, você vai ver que a AI identificou com alta precisão alguns pokémons individuais — com mais de 90% de certeza — mas com outros teve mais dificuldade. O algoritmo também se deu melhor reconhecendo certos tipos que outros. A rede reconheceu corretamente pokémons do tipo sombrio como o Meowth em 92% das vezes, mas do tipo fantasma só 17% das vezes.

A baixa precisão pode ser atribuída ao conjunto relativamente pequeno de milhares de sprites — já que as redes neurais funcionam melhor com milhões de exemplos.

Você pode ter ficado imaginando o que a rede estava “procurando” quando decidia qual era um tipo de pokémon. É possível que a rede estivesse analisando coisas como cor e tamanho, já que muitos pokémons de água são azuis por exemplo. Mas é aí que entra a coisa mais interessantes sobre redes neurais: Não sabemos realmente como elas trabalham nos mínimos detalhes. Graças a algumas novas ferramentas de visualização, Soares conseguiu remover camadas da rede para ver como os sprites “ativavam” neurônios individuais.

Primeira camada ativada da rede neural por um sprite do Squirtle. Imagem: Journal of Geek Studies/Henrique Soares.

“Temos um centro que claramente dispara com regiões vermelhas do sprite, o que nos leva a pensar que a rede está aprendendo a discernir cores, [e] associar isso a um certo tipo”, Soares explicou por e-mail. “Mas indo mais fundo na rede e mais longe da imagem original, essas interpretações são mais e mais difíceis de fazer numa inspeção simples.”

Se você gostaria de ajudar Soares com esse trabalho, acesse a página do projeto dele no GitHub. Se você for desse tipo, né.

Siga a VICE Brasil no Facebook, Twitter e Instagram.