Aprendendo com Preferências Humanas

De Dario Amodei, Paul Christiano e Alex Ray

Um passo para a construção de sistemas de IA seguros é eliminar a necessidade de os humanos escreverem funções de objetivo, uma vez que usar um indicador simples para um objetivo complexo, ou errar um pouco no objetivo complexo, pode levar a um comportamento indesejável e até perigoso. Em colaboração com a equipe de segurança da DeepMind, desenvolvemos um algoritmo que pode inferir o que os humanos desejam, informando qual dos dois comportamentos propostos é o melhor.

Apresentamos um algoritmo de aprendizado que utiliza pequenas quantidades de feedback humano para resolver ambientes de aprendizado por reforço modernos. Sistemas de aprendizado de máquina com feedback humano  foram explorados antes, mas amplificamos a abordagem para poder trabalhar em tarefas muito mais complicadas. Nosso algoritmo precisou de 900 bits de feedback de um avaliador humano para aprender a dar um salto mortal, uma tarefa aparentemente simples que é fácil de julgar, mas difícil de especificar.

Nosso algoritmo aprendeu a dar um salto mortal usando cerca de 900 bits individuais de feedback do avaliador humano.

O processo geral de treinamento é um ciclo de feedback de três etapas entre o humano, a compreensão do objetivo pelo agente e o treinamento de aprendizado por reforço.

Nosso agente de IA começa agindo aleatoriamente no ambiente. Periodicamente, dois videoclipes de seu comportamento são dados a um humano, e o humano decide qual dos dois clipes está mais próximo de cumprir seu objetivo – neste caso, um salto mortal para trás. A IA constrói gradualmente um modelo do objetivo da tarefa, encontrando a função de recompensa que melhor explica os julgamentos do ser humano. Em seguida, usa aprendizado por reforço para aprender como atingir esse objetivo. À medida que o seu comportamento melhora, continua a pedir feedback humano sobre pares de trajetórias onde está mais incerto sobre qual é o melhor, e refina ainda mais a sua compreensão do objetivo.

Nossa abordagem demonstra uma eficiência de amostra promissora; como afirmado anteriormente, o vídeo do salto mortal exigiu menos de 1.000 bits de feedback humano. Demorou menos de uma hora do tempo de um avaliador humano, enquanto em segundo plano a política acumulou cerca de 70 horas de experiência geral (simulada a um ritmo muito mais rápido do que em tempo real). Continuaremos a trabalhar na redução da quantidade de feedback de um humano precisa fornecer.  Você pode ver uma versão acelerada do processo de treinamento no vídeo a seguir.

[Acesse o vídeo na página original.]

Testamos nosso método numa série de tarefas nos domínios da robótica simulada e do Atari (sem ter acesso à função de recompensa: logo, no Atari, sem ter acesso à pontuação do jogo). Nossos agentes podem aprender com o feedback humano para alcançar um desempenho forte e às vezes sobre-humano em muitos dos ambientes que testamos. Na animação a seguir você pode ver agentes treinados com nossa técnica jogando diversos jogos de Atari. A barra horizontal no lado direito de cada quadro representa a previsão de cada agente sobre quanto um avaliador humano aprovaria seu comportamento atual. Essas visualizações indicam que os agentes treinados com feedback humano aprendem a valorizar o oxigênio no Seaquest, antecipam recompensas no Breakout e Pong ou descobrem como se recuperar de acidentes no Enduro.

Seaquest
Breakout
Pong
Enduro

Observe que não há necessidade de o feedback se alinhar com a função normal de recompensa do ambiente: podemos, por exemplo, treinar nossos agentes para se manterem exatamente empatados com outros carros no Enduro, em vez de maximizar a pontuação do jogo ultrapassando-os. Às vezes também descobrimos que aprender com feedback é melhor do que aprender por reforço com a função de recompensa normal, porque o ser humano molda a recompensa melhor do que quem escreveu a recompensa do ambiente.

Desafios

O desempenho do nosso algoritmo é tão bom quanto a intuição do avaliador humano sobre quais comportamentos parecem corretos; portanto, se o humano não tiver uma boa compreensão da tarefa, ele poderá não oferecer tanto feedback útil. Da mesma forma, em alguns domínios, o nosso sistema pode fazer com que os agentes adotem diretivas que enganem os avaliadores. Por exemplo, um robô que deveria agarrar itens, em vez disso, posicionou seu manipulador entre a câmera e o objeto de modo que só parecesse agarrá-lo, como mostrado abaixo.

Resolvemos esse problema específico adicionando indícios visuais (as linhas brancas grossas na animação acima) para facilitar a estimativa da profundidade pelos avaliadores humanos.

A pesquisa descrita nesta postagem foi feita em colaboração com Jan Leike, Miljan Martic e Shane Legg da DeepMind. Nossas duas organizações planejam continuar a colaborar em tópicos que abordam a segurança da IA ​​a longo prazo. Acreditamos que técnicas como esta são um passo em direção a sistemas de IA seguros e capazes de aprender objetivos centrados no ser humano, e podem complementar e ampliar abordagens existentes, como reforço e aprendizagem por imitação. Esta postagem representa o trabalho realizado pela equipe de segurança da OpenAI; se você estiver interessado em trabalhar em problemas como esse, junte-se a nós!

Nota de rodapé

Em comparação, levamos duas horas para escrever nossa própria função de recompensa (abaixo) para fazer um robô dar um salto mortal para trás e, embora tenha sucesso, é muito menos elegante do que aquele treinado simplesmente por feedback humano (acima). Acreditamos que há muitos casos em que o feedback humano poderia nos permitir especificar uma meta específica de forma mais intuitiva e rápida do que seria possível elaborando manualmente o objetivo.

Você pode replicar esse salto mortal na gym com a seguinte função de recompensa para Hopper:

def reward_fn(a, ob):
backroll = -ob[7]
height = ob[0]
vel_act = a[0] * ob[8] + a[1] * ob[9] + a[2] * ob[10]
backslide = -ob[5]
return backroll * (1.0 + .3 * height + .1 * vel_act + .05 * backslide)


Tradução: Luan Marques

Link para o original.

Deixe um comentário