Dê pequenos passos na aprendizagem por reforço

Conteúdo

Introdução

Vamos resolver os ambientes do Cartpole, Lunar Lander e Pong da OpenAI com o algoritmo STRENGTH.

o Aprendizado por reforço es posiblemente la rama más genial de la inteligencia artificial. Já demonstrou suas proezas: surpreender o mundo, venceu os campeões mundiais em jogos de xadrez, Go e incluso DotA 2.

Neste artigo, Eu analisaria um algoritmo bastante rudimentar e mostraria como até mesmo ele pode atingir um nível de desempenho sobre-humano em certos jogos.

Aprendizagem por reforço oferece with projetando “Agentes” que interage com um “Meio Ambiente” e aprenda por si mesmo como “separar” o meio ambiente por tentativa e erro sistemáticos. Um ambiente pode ser um jogo como xadrez ou corrida, ou pode até ser uma tarefa como resolver um labirinto ou alcançar um objetivo. O agente é o bot que realiza a atividade.

1jrwddpm1lz8eatlkukkt-g-1197737

Um agente recebe “recompensas” ao interagir com o meio ambiente. O agente aprende a realizar o “Ações” necessário para maximizar a recompensa que você recebe do meio ambiente. Um ambiente é considerado resolvido se o agente acumular algum limite de recompensa predefinido. Essa conversa nerd é como ensinamos bots a jogar xadrez sobre-humano ou andróides bípedes a andar.

ALGORITMO FORTALECIDO

REINFORCE pertenece a una clase especial de algoritmos de aprendizaje por refuerzo llamados algoritmos de gradiente de políticas. Uma implementação simples deste algoritmo envolveria a criação de um Política: um modelo que assume um estado como entrada e gera a probabilidade de realizar uma ação como saída. Uma política é essencialmente um guia ou folha de dicas para o agente que informa qual ação tomar em cada estado.. Mais tarde, a política é repetida e ligeiramente modificada em cada etapa até obtermos uma política que resolva o meio ambiente.

La política suele ser una neuronal vermelho que toma el estado como entrada y genera una distribución de probabilidad en el espacio de acción como salida.

Política: Exemplo

O objetivo da política é maximizar o "Recompensa esperada".

Cada política gera a probabilidade de realizar uma ação em cada estação do ambiente.

Política 1 vs política 2 – Trajetórias diferentes

O agente obtém amostras dessas probabilidades e seleciona uma ação a ser executada no ambiente. No final de um episódio, sabemos as recompensas totais que o agente pode obter se seguir essa política. Repropagamos a recompensa por meio da rota que o agente seguiu para estimar o “recompensa esperada” em cada estado para uma determinada política.

10pe4hhootwki5lljxzv47w-5225362

Aqui, a recompensa com desconto é a soma de todas as recompensas que o agente recebe naquele futuro, descontadas por um fator Gama.

1piymd_6px1euk21zadxzka-5954891

A recompensa com desconto em qualquer estágio é a recompensa que você receberá na próxima etapa + uma soma com desconto de todas as recompensas que o agente receberá no futuro.

O fator de desconto é calculado para cada estado propagando as recompensas.

Para a equação acima, é assim que calculamos a recompensa esperada:

1r086if2zz_hx89wowmkfoa-1118659

De acordo com a implementação original do algoritmo STRENGTH, a recompensa esperada é a soma dos produtos de um registro de probabilidades e recompensas descontadas.

Etapas do algoritmo

As etapas envolvidas na implementação do REINFORCE seriam as seguintes:

  1. Inicialize uma política aleatória (um NN que assume o estado como entrada e retorna a probabilidade de ações)
  2. Use a política para jogar as N etapas do jogo: registrar probabilidades de ação, da política, a recompensa do meio ambiente, a ação, amostrado pelo agente
  3. Calcule a recompensa com desconto para cada etapa por retropropagação
  4. Calcule a recompensa esperada G
  5. Ajuste os pesos da política (erro de propagação reversa em NN) para aumentar G
  6. Repita de 2

Veja a implementação usando Pytorch em meu Github.

População

Eu testei o algoritmo em Pong, CartPole e Lunar Lander. Leva uma eternidade para treinar em Pong e Lunar Lander: mais de 96 horas de Treinamento cada uno en una GPU en la nube. Existem várias atualizações para este algoritmo que podem torná-lo convergir mais rápido, que não discuti ou implementei aqui. Confira os Modelos de Ator Crítico e a Otimização de Política Futura se você estiver interessado em saber mais.

Carrinho

1wlhepk4me-s334ngw8mhqg-5416157

Estado:

Posição horizontal, velocidade horizontal, ângulo do pólo, velocidade angular

Comportamento:

Empurre o carro para a esquerda, Empurre o carro para a direita

Jogo aleatório de política:

1ty7qktykcnzoo1b8j-ie8a-6249674

Reprodução aleatória: recompensa total 18

Política de agentes treinados com REINFORCE:

1i2fwnr2iyevctybt6vm5uq-9680510

Agente treinado – Recompensa total 434

Lander lunar

1muxe2ynxy8ierbjt4uxuzw-9306370

Agente de jogo aleatório

Estado:

O estado é uma matriz de 8 vetor. Não tenho certeza do que eles representam.

Comportamento:

0: não fazer nada

1: carro de bombeiros esquerdo

2: Viatura de bombeiros

3: viatura de bombeiros certa

Política de agentes treinados com REINFORCE:

1pbsjgwjyxcy5tz-8zwhjka-3069322

Lunar Lander treinado com REINFORCE

Fedor

Isso foi muito mais difícil de treinar. Treinado em um servidor de nuvem GPU por dias.

Estado: Imagem

Comportamento: Mover paleta para a esquerda, mover paleta para a direita

1rtvh57xmxnv3pkkzih1q1w-1060950

Agente treinado

A aprendizagem por reforço progrediu aos trancos e barrancos além do REFORÇO. Meu objetivo neste artigo era 1. aprender os fundamentos da aprendizagem por reforço e 2. mostram como esses métodos simples podem ser poderosos para resolver problemas complexos. Eu adoraria experimentá-los em alguns “jogos” para ganhar dinheiro como negociar ações … Acho que esse é o Santo Graal entre os cientistas de dados.

Repositório Github: https://github.com/kvsnoufal/reinforce

Ombros de gigantes:

  1. Algoritmos de gradiente de política (https://lilianweng.github.io/lil-log/2018/04/08/policy-gradient-algorithms.html)
  2. Derivando REINFORCE (https://medium.com/@thechrisyoon/deriving-policy-gradients-and-implementing-reinforce-f887949bd63)
  3. Curso de Aprendizagem por Reforço Udacity (https://github.com/udacity/deep-reinforcement-learning)

Sobre o autor

photo_noufal-4824971

Noufal kvs

Trabalho na Dubai Holding, Emirados Árabes Unidos como cientista de dados. Você pode entrar em contato comigo em [e-mail protegido] o https://www.linkedin.com/in/kvsnoufal/

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.

Datapeaker