Por que normalizamos as recompensas com desconto ao fazer o aprendizado de reforço do gradiente de políticas?

11

Estou tentando entender a abordagem do gradiente de política para resolver o problema da cartpole . Nesta abordagem, estamos expressando o gradiente da perda referente a cada parâmetro de nossa política como uma expectativa da soma dos gradientes de nosso gradiente de política para todas as ações em uma sequência, ponderada pela soma das recompensas com desconto nessa sequência:

θeu(θ)=E[G(S0 0:T,UMA0 0:T)t=0 0Tθeuogπθ(UMAt|St)]

e estimamos isso usando uma média empírica em todas as amostras de um episódio - o que faz sentido intuitivamente.

Mas a parte menos intuitiva é que vi uma prática comum para normalizar vantagens entre os episódios em várias implementações (e, de fato, funciona melhor). Então, depois de calcularem, eles não usariam diretamente a vantagem, mas a normalizariam; por exemplo, aqui eles fazem depois de cada episódio:

discounted_epr = discount_rewards(epr)
discounted_epr -= np.mean(discounted_epr)
discounted_epr /= np.std(discounted_epr)

qual é a justificativa para isso - tanto na teoria quanto na intuição? Parece-me que, se um episódio é longo e, como tal, possui grandes vantagens, vale a pena aprender mais com esse episódio do que com um episódio de 3 movimentos. o que estou perdendo?

ihadanny
fonte
Você pode encontrar esta resposta útil: stackoverflow.com/a/56464156/6541879
sg3.14

Respostas:

12

Em geral, preferimos normalizar os retornos para fins de estabilidade. Se você elaborar as equações de retropropagação, verá que o retorno afeta os gradientes. Assim, gostaríamos de manter seus valores em um intervalo conveniente específico. Não seguimos essa prática por garantias teóricas, mas por razões práticas. O mesmo acontece com o recorteQfunções de valor no Q-learning combinadas com NNs. Obviamente, existem algumas desvantagens nessas abordagens, mas em geral o algoritmo se comporta melhor, pois a retropropagação não leva os pesos da sua rede a valores extremos. Por favor, dê uma olhada neste excelente post de Andrej Karpathy (anexo a parte relacionada à sua pergunta como um bloco de notas ) que fornece informações adicionais:

Funções de vantagem mais gerais. Também prometi um pouco mais de discussão sobre os retornos. Até agora, julgamos a bondade de cada ação individual com base em ganhar ou não o jogo. Em uma configuração de RL mais geral, receberíamos alguma recompensarta cada passo do tempo. Uma escolha comum é usar uma recompensa com desconto, para que a “recompensa eventual” no diagrama acima se torneRt=k=0 0γkrt+k, Onde γé um número entre 0 e 1 chamado fator de desconto (por exemplo, 0,99). A expressão afirma que a força com a qual incentivamos uma ação amostrada é a soma ponderada de todas as recompensas posteriormente, mas as recompensas posteriores são exponencialmente menos importantes. Na prática, também pode ser importante normalizá-los. Por exemplo, suponha que calculemosRtpara todas as 20.000 ações no lote de 100 lançamentos de jogos Pong acima. Uma boa idéia é "padronizar" esses retornos (por exemplo, subtrair média, dividir por desvio padrão) antes de inseri-los no backprop. Dessa forma, estamos sempre incentivando e desencorajando aproximadamente metade das ações executadas. Matematicamente, você também pode interpretar esses truques como uma maneira de controlar a variação do estimador de gradiente de política. Uma exploração mais aprofundada pode ser encontrada aqui.

Constantinos
fonte
Eu não estava familiarizado com a notação para cotação em bloco e não queria que o OP se perdesse no longo blog. Vou editar a resposta. Desculpas por isso!
Constantinos
Você poderia, por favor, explicar por que faz sentido normalizar EM CADA EPISÓDIO INDIVIDUALMENTE? Eu elaborei a pergunta aqui ai.stackexchange.com/questions/10196/… e gostaria muito de receber uma resposta Obrigado!
Gulzar
0

Você pode achar úteis as seguintes referências:

  • Seção 4.1.2 Normalização da vantagem : Eles mencionam que normalizar a vantagem é um truque útil para o treinamento. Geralmente resulta em aprendizado mais rápido.
  • Aprendendo valores em várias ordens de magnitude : eles fornecem um algoritmo para normalização de recompensas e experimentações detalhadas nos ambientes Atari. A idéia básica é que as recompensas podem variar em uma grande variedade de magnitudes, e os aproximadores de função usados ​​em RL (como redes neurais) geralmente não são invariantes à escala da entrada. Portanto, a normalização se torna um passo fundamental. Verifique este documento para obter mais detalhes.
sg3.14
fonte