Desenvolvimento

5 fev, 2019

Criando um zoológico de agentes Atari-Playing para catalisar a compreensão do aprendizado de reforço profundo

Publicidade

Esta pesquisa foi realizada com a ajuda valiosa de colaboradores do Google Brain e OpenAI.

Alguns dos avanços mais empolgantes da IA ​​surgiram recentemente no campo do aprendizado por reforço profundo (RL profundo), onde redes neurais profundas aprendem a realizar tarefas complicadas a partir de sinais de recompensa.

O RL funciona de maneira semelhante ao modo como você pode ensinar um cachorro a realizar um novo truque: recompensas são oferecidas para reforçar o melhor comportamento.

Recentemente, agentes de RL profundos excederam o desempenho humano em benchmarks como videogames clássicos (como 2600 jogos do Atari), o jogo de tabuleiro Go e jogos de computador modernos como o DOTA 2.

Uma configuração comum (que nosso trabalho visa) é que um algoritmo aprenda a jogar um único videogame, aprendendo apenas com pixels brutos, guiado por aumentos na pontuação do jogo.

Olhando para além dos videogames, acreditamos que o RL tem um grande potencial para aplicações benéficas do mundo real. Isto é verdade tanto na Uber (por exemplo, na melhoria das recomendações da Uber Eats ou para aplicações em carros autônomos), e nos negócios e na sociedade como um todo.

No entanto, atualmente há muito mais pesquisas focadas em melhorar o desempenho de RL profundo (por exemplo, quantos pontos um agente recebe em um jogo) do que em entender os agentes treinados por RL profundo (por exemplo, se pequenas mudanças no jogo em que um agente está treinado vai catastroficamente confundir isso).

Entender os agentes que criamos nos ajuda a desenvolver segurança e confiança neles, o que é necessário antes de colocar RL em situações sensíveis do mundo real.

Esse insight motivou o projeto de pesquisa descrito aqui: fazer com que a pesquisa para entender o RL profundo seja mais fácil de se conduzir.

Em particular, criamos e deixamos de código aberto um repositório de agentes treinados do Atari Learning Environment/Ambiente de Aprendizagem Atari, juntamente com ferramentas para entender e analisar seu comportamento.

O Ambiente de Aprendizagem Atari

Antes de introduzir o Zoológico de Atari, vamos primeiro mergulhar rapidamente no Ambiente de Aprendizagem Atari (ALE), do qual o Zoológico faz uso. O ALE (introduzido por este artigo do JAIR de 2013) permite que os pesquisadores treinem agentes de RL para jogar em um emulador Atari 2600.

Por que Atari? O Atari 2600 é um console clássico de jogos e os seus jogos proporcionam naturalmente diversos desafios de aprendizagem.

Alguns jogos são relativamente simples (como o Pong), enquanto outros exigem o equilíbrio entre interesses concorrentes de curto e longo prazo (como o Seaquest, onde para ter sucesso você precisa gerenciar o suprimento de oxigênio do seu submarino enquanto atira em peixes para coletar pontos).

Outros ainda exigem explorar ativamente grandes áreas do mundo do jogo antes de coletar quaisquer recompensas (como em Montezuma’s Revenge ou Pitfall).

Frame
Observation
RAM

Na primeira figura, acima, o quadro real de 210 × 160 RGB produzido pelo emulador Atari no jogo Seaquest. Na segunda, as observações 84 × 84 abaixo da amostra em tons de cinza consumidas pela política de redes neurais profundas, que incluem não apenas o estado atual do jogo, mas também os últimos timesteps/três passos de tempo, e na terceira, 24 bits do estado da RAM Atari 2600 [eixo horizontal] mostrado em 2000 passos de tempo [eixo vertical] de avaliação de políticas no Seaquest.

O que é alimentado na maioria das redes neurais RL profundas que jogam jogos ALE não é a imagem RGB 210 × 160 vinda diretamente do emulador Atari (Figura 1; esquerda), mas uma versão de escala de cinza ligeiramente pré-processada de quatro quadros recentes (Figura 1; centro).

Além disso, um elemento interessante da ALE é que ela também fornece acesso ao estado da RAM do Atari 2600 (Figura 1; à direita), que consiste em apenas 1024 bits e gerencia para representar de forma compacta e completa o estado completo do jogo (usaremos essas informações posteriormente para destacar as diferenças sobre como os diferentes algoritmos de RL profundos aprendem a jogar).

Se você está curioso para brincar com o ALE, confira estes tutoriais.

Reduzindo o atrito na pesquisa para entender o RL profundo

Um grande atrito que complica a comparação dos produtos dos algoritmos de RL profundos é que, muitas vezes, é preciso um cálculo significativo e hardware dispendioso para treinar agentes de RL profundos do zero, especialmente em muitas tarefas.

Por exemplo, existem mais de 50 jogos no Atari Learning Environment. Agravando os requisitos computacionais, os algoritmos de RL são estocásticos, o que significa que, para entender o quão bem eles trabalham, em média, é necessário executar cada algoritmo várias vezes.

Mas se cada pesquisador ou laboratório fizer todas essas muitas execuções de forma independente, e depois jogar fora os resultados (o que quase sempre acontece), é um desperdício, e somente pesquisadores com os recursos necessários podem participar na análise de agentes de RL profundos.

Não há necessidade de continuar treinando novamente esses mesmos algoritmos repetidamente – é por isso que hospedar um zoológico de modelos salvos faz sentido.

Outra fonte de atrito é que não é fácil coletar agentes de diferentes algoritmos de RL e analisá-los em um framework comum. Os algoritmos são frequentemente implementados de diferentes maneiras, armazenados de maneiras diferentes, e apenas raramente são modelos fáceis de carregar após o treinamento para análise posterior.

Como resultado, poucos estudos compararam agentes de RL profundos de diferentes algoritmos em qualquer métrica além do desempenho bruto, porque apenas números de desempenho são publicados universalmente. Mas isso é uma questão de conveniência e não de ciência – que interessantes semelhanças e diferenças entre os algoritmos estamos perdendo?

Uma fonte final de atrito é que ferramentas de análise comuns (como incorporações de estado t-SNE ou visualizações maximizadoras de ativação que ajudam a iluminar o papel de neurônios individuais) frequentemente precisam ser tediosamente reimplementadas, o que desperdiça tempo do pesquisador.

Embora tenha havido alguma pesquisa inicial promissora sobre o entendimento de RL profundo, devido à soma total desses atritos acreditamos que há muito menos progresso do que poderia haver.

Apresentando o Zoológico de Atari

Para tornar mais fácil para os pesquisadores conduzirem esse tipo de ciência, nós executamos uma seleção de algoritmos comuns de RL profundo em escala em todos os jogos ALE para criar e lançar uma coleção de modelos pré-treinados: um zoológico modelo de Atari.

O conceito de um “zoológico modelo” é mais familiar no campo de visão de máquina, onde é comum baixar pesos para arquiteturas de rede populares (como AlexNet ou ResNet) treinados em conjuntos de dados de grande escala como IMAGEnet.

Além de liberar os dados brutos de modelos treinados, também deixamos de código aberto um software que permite analisar facilmente esses modelos (e que se integra suavemente com uma versão anterior do modelo de RL profundo).

Este software permite comparar e visualizar agentes treinados produzidos por diferentes algoritmos de RL profundos.

Para demonstrar o potencial deste zoológico e software, temos publicado um artigo (no workshop de RL profundo na NeurIPS 2018), que inclui algumas descobertas preliminares intrigantes e sugestões em muitas questões inexploradas que o zoológico pode ajudar a resolver.

O restante deste artigo destaca os recursos de nossa biblioteca por meio de histórias do que descobrimos até agora enquanto o usamos.

Estudo de caso 1 – Autodetecção de neurônios no Seaquest e três maneiras de visualizá-los

Houve anteriormente um grande trabalho de compreensão e visualização de modelos de classificação de imagens (para uma introdução acessível, veja este vídeo descrevendo o Toolbox de Visualização Profunda, ou qualquer uma das publicações interativas no distill.pub, como este).

Uma descoberta intrigante dessa linha de pesquisa é que as redes neurais profundas geralmente aprendem recursos significativos de alto nível a partir de pixels brutos, à medida que as informações passam por camadas mais profundas da rede neural.

Por exemplo, embora nunca seja dito o que é um rosto humano, as redes de classificação de imagens geralmente têm neurônios que respondem seletivamente a elas.

Uma questão interessante para o RL profundo é se as representações de alto nível similares surgem ou não. Por exemplo, existem neurônios que respondem apenas a agentes importantes em jogos?

Para permitir explorar esta questão, criamos uma ferramenta no software do Zoológico do Atari para visualizar como a informação procede através de uma profunda rede de política de RL profundo (inspirada na Deep Visualization Toolbox).

A esperança é espiar a caixa-preta de uma rede neural de muitos milhões de parâmetros e obter insights sobre o comportamento da rede e o que exatamente ela aprendeu.

Por exemplo, no vídeo abaixo, que mostra um agente treinado pelo algoritmo Ape-X para jogar Seaquest (melhor visualizado em tela cheia), notamos que alguns neurônios na terceira camada da rede pareciam estar rastreando a posição do submarino que o jogador controla:

Visualizando a rede neural de um agente RL profundo enquanto ele joga Seaquest.

Abaixo, nós aumentamos o zoom em todos os neurônios da terceira camada de convolução:

E aqui, nós aumentamos o zoom em um único neurônio de sub-detecção:

Para ajudar a validar esse insight de forma mais exaustiva, recorremos a outra ferramenta no software do Zoológico do Atari, que identifica automaticamente quais patches de imagem do jogo mais estimulam um determinado neurônio.

Figura 2: São mostradas as seis observações na avaliação de um agente no Seaquest que ativaram ao máximo o neurônio sub-detectado. A caixa vermelha destaca o patch de imagem específico responsável por estimular o neurônio ao máximo.

Os resultados mostraram que, de fato, na prática, esse neurônio estava rastreando a posição do submarino – com efeito, a rede neural aprendeu a reconhecer seu próprio “corpo virtual” nesse mundo de jogo.

Para dar um passo adiante, fizemos uso de mais uma ferramenta, um framework de interpretabilidade de rede neural chamado Lucid.

Geralmente usado para visualizar modelos de visão de máquina em publicações informativas no distill.pub, o Lucid é fácil de usar de dentro do software do Zoológico do Atari.

A ideia básica é criar alucinações, imagens otimizadas a partir do zero para excitar neurônios específicos da rede neural. Essas imagens artificiais fornecem uma visão sobre o que é a entrada idealizada de um neurônio – a que ele responderá ao máximo.

Figura 3 – Esquerda: uma imagem otimizada do zero para ativar ao máximo o neurônio sub-detectado. O resultado é uma telha da tela com gotas que lembram o submarino do jogador. Direita: o resultado de alimentar a imagem alucinada de volta à rede – o neurônio sub-detectado (mostrado com seta) demonstra alta ativação em todo o mapa de recursos.

Neste caso, como visto acima, a imagem da alucinação corrobora a história geral. Curiosamente, quando tomadas individualmente, qualquer um desses pedaços de evidências seria anedótico.

No entanto, investigando através de múltiplas lentes independentes, podemos ganhar confiança em nossa compreensão de um recurso de rede neural particular.

Estudo de caso 02 – Diferentes algoritmos de RL profundo aprendem estilos de jogo distintos? (apresentando três maneiras de explorar a questão)

De longe, a maneira mais comum de comparar algoritmos de RL profundos é observar seu desempenho objetivo: em média, o algoritmo X tende a produzir soluções de maior pontuação do que o algoritmo Y?

No entanto, esta é uma lente limitada, porque ao implantar um agente no mundo real, há muitas questões relevantes que vão além da pontuação: a política do agente é extremamente frágil (pode pelo menos lidar com pequenas variações de situações)?

Aprendeu uma representação significativa do mundo do jogo? Faz o que pretendemos ou encontrou uma lacuna na função de recompensa? É arriscado ou avesso ao risco? Agressivo ou subjugado?

Como uma exploração inicial nesse espírito, examinamos a questão de se algoritmos diferentes tendem a ter seu próprio estilo de soluções (por exemplo, um método de gradiente de política como o A2C aprende a jogar de uma maneira fundamentalmente diferente de um algoritmo evolucionário como o OpenAI ES)?

Novamente, recorremos à diversidade de ferramentas do software do Zoológico do Atari para analisar essa questão de diferentes ângulos.

Primeiro, podemos examinar os pesos aprendidos das redes neurais.

Embora, em geral, seja difícil raciocinar sobre o que uma rede neural aprendeu observando seus pesos, os pesos da primeira camada, que se conectam diretamente à entrada, fornecem uma exceção à regra.

Esses pesos de primeira camada representam as entradas que mais estimulam esses neurônios, o que nos dá uma ideia a que tipo de recursos eles estão prestando atenção.

Por exemplo, no ALE, as entradas são imagens e os pesos da primeira camada (filtros aprendidos de uma camada convolucional), quando visualizados, mostram quais recursos de imagem de baixo nível a rede está digitando.

Figura 4: Os pesos dos filtros da primeira camada são visualizados para redes neurais treinadas por diferentes algoritmos de RL profundos no jogo Seaquest do Atari. Cada fileira representa os pesos dos filtros que alimentam um neurônio de primeira camada diferente (F1 a F6), e cada coluna representa quadros do jogo ao longo do tempo – a coluna mais à esquerda é o quadro T-3 e alcançamos o quadro representando a situação atual (Agora) como a coluna mais à direita.

Curiosamente, descrito na Figura 4, acima, os filtros aprendidos pelos algoritmos baseados em gradiente (A2C, Ape-X, Rainbow e DQN) geralmente têm estrutura espacial e às vezes se assemelham a detectores de borda.

Além disso, a intensidade dos pesos geralmente decai significativamente, pois são consideradas conexões com quadros mais antigos. Em outras palavras, a rede neural é mais atenta ao presente).

No entanto, os filtros aprendidos pelos algoritmos evolutivos (GA e ES) demonstram menos estrutura e não demonstram claramente uma preferência pelo quadro atual. Como mostrado nos gráficos abaixo, mostramos que essa tendência vale estatisticamente pela média de quão fortes são os pesos, sobre os jogos e os neurônios da primeira camada:

Figura 5: Os métodos de RL profundo baseados em gradiente parecem prestar mais atenção ao presente do que ao passado, enquanto os métodos evolutivos não.

Este resultado sugere que os métodos evolutivos podem estar aprendendo fundamentalmente diferentes tipos de representações do que os métodos baseados em gradientes. Podemos, então, explorar empiricamente essa hipótese, examinando as soluções aprendidas em um determinado jogo ALE, possibilitado pelo software Zoológico do Atari.

Aqui, criamos uma grade de vídeos que visualiza simultaneamente várias soluções para cada algoritmo, permitindo um rápido levantamento dos comportamentos resultantes. Abaixo, nós mostramos um vídeo para o jogo Seaquest:

Acima vemos uma grade de vídeos que permite explorar rapidamente os tipos de soluções que cada método tende a gerar para determinados jogos.

Observe que um vídeo gerado de forma semelhante destaca quão difíceis os jogos de exploração difícil, como o Pitfall, são para algoritmos de RL profundos (veja nossa publicação recente em Go-Explore).

A partir do vídeo acima, fica claro que neste jogo, os algoritmos que estão diretamente procurando por políticas (A2C, ES e GA) estão todos convergindo para o mesmo ótimo local (neste caso, indo para o fundo do oceano e ficando lá até que eles fiquem sem oxigênio). Por outro lado, os algoritmos baseados em valor e fora da política (DQN, Rainbow e Ape-X) aprendem estratégias mais sofisticadas.

Assim, enquanto no início deste artigo descobrimos que os algoritmos evolutivos podem aprender diferentes tipos de representações neurais internas, este exemplo do Seaquest destaca que eles (ES e GA) ainda podem convergir para soluções qualitativamente similares como métodos baseados em gradiente (A2C).

Em vez de analisar muitos vídeos, também podemos usar a redução de dimensionalidade para obter uma visão holística das estratégias aprendidas a partir de uma única imagem, mostrada na Figura 6, abaixo.

A ideia é usar o popular algoritmo t-SNE para incorporar os estados de RAM que os agentes treinados por diferentes algoritmos alcançam, em um único espaço bidimensional.

Figura 6: Apoiando o que vimos no vídeo da grade acima, notamos aqui que os pontos A2C e ES cobrem grande parte das áreas sobrepostas do gráfico, enquanto os pontos roxos do Ape-X focam em partes distintas do espaço de estados.

Nosso artigo mergulha mais fundo em outras ferramentas e estudos sobre como automatizar esse tipo de pergunta. Por exemplo, inclui um estudo que treina modelos de visão para distinguir qual algoritmo gerou uma observação de imagem específica. Quão confuso é o modelo treinado em um conjunto de testes (ou seja, quantos erros ele faz) destaca quais algoritmos acabam visitando partes similares do espaço de estado.

No geral, este estudo de caso fornece mais exemplos dos tipos de descobertas que podem ser descobertas explorando o Zoológico do Atari.

O que esperamos e conclusões

O artigo que escrevemos para apresentar o Zoológico do Atari apenas arranha a superfície dos tipos de análises que poderiam ser realizadas com ele. Acreditamos que provavelmente existem muitas propriedades intrigantes de agentes de RL profundos esperando para serem descobertos, o que este zoológico modelar pode tornar mais fácil de descobrir (assim como zoológicos modelares para visão ajudaram a revelar a onipresença de imagens contraditórias e enganosas).

Esperamos adicionar mais algoritmos de RL profundos ao zoológico (como o IMPALA) e receber com satisfação as contribuições da comunidade de novas ferramentas de análise (como mapas de saliência e técnicas de visualização aprimoradas).

Trabalhos futuros poderiam explorar a adição de redes recorrentes ao zoológico, ou redes treinadas com motivação intrínseca e objetivos auxiliares, ou treinadas por novos tipos de RL como o Go-Explore (para ver se tais redes aprendem representações internas mais ou menos ricas).

Também intrigante seria expandir o zoológico para incluir domínios 3D mais complicados, como o VizDoom ou o DMLab.

Embora a principal razão para a criação do zoológico tenha sido encorajar a pesquisa para entender o RL profundo, os modelos treinados também podem ser úteis para transferir pesquisas de aprendizado (por exemplo, explorar como alavancar com sucesso o treinamento em um jogo para aprender mais rapidamente a jogar outro) e os dados que os modelos geram poderiam ser usados ​​para explorar a aprendizagem ou usar modelos de jogos da Atari para RL baseada em modelo (veja esses trabalhos de pesquisa, por exemplo).

Concluindo, estamos empolgados em apresentar um novo recurso à comunidade de RL profundo e estamos ansiosos para ver os tipos de perguntas de pesquisa que o zoológico permite que a comunidade busque.

Esperamos que você baixe e explore nosso pacote de software, que inclui os notebooks da Jupyter para ajudá-lo a começar rapidamente (ou veja o notebook da colab aqui).

Além disso, por meio de ferramentas on-line da Web, você também pode procurar vídeos de agentes atuando e explorando suas ativações neurais.

***

Este artigo é do Uber Engineering. Ele foi escrito por Felipe Petroski Such, Vashisht Madhavan, Rosanne Liu, Rui Wang, Yulun Li, Jeff Clune e Joel Lehman. A tradução foi feita pela Redação iMasters com autorização. Você pode conferir o original em: https://eng.uber.com/atari-zoo-deep-reinforcement-learning/