Reprodução priorizada, o que o Importance Sampling realmente faz?

10

Não consigo entender o objetivo dos pesos de amostragem de importância (IS) na reprodução priorizada (página 5) .

É mais provável que uma transição seja amostrada a partir da reprodução da experiência, quanto maior o seu "custo". Meu entendimento é que o 'IS' ajuda a abandonar sem problemas o uso da repetição priorizada depois que treinamos por tempo suficiente. Mas o que usamos em vez disso, amostragem uniforme?

Acho que não consigo perceber como cada componente desse coeficiente está afetando o resultado. Alguém poderia explicar isso em palavras?

WEu=(1N1P(Eu))β

Em seguida, é usado para amortecer o gradiente, que tentamos obter das transições.

Onde:

  • WEu é "IS"
  • N é o tamanho do buffer do Experience Replay
  • P (i) é a chance de selecionar a transição , dependendo de "quão gordo é seu custo".Eu
  • β começa em 0 e é arrastado cada vez mais perto de 1 a cada nova época.

O meu entendimento desses parâmetros também está correto?

Editar Algum tempo depois que a resposta foi aceita, encontrei uma fonte adicional, um vídeo que pode ser útil para iniciantes - Simulações de MC: 3.5 Importance Sampling


Editar Como @avejidah disse no comentário à sua resposta " é usado para calcular a média das amostras pela probabilidade de serem amostradas" . 1/N

Para entender por que é importante, suponha que esteja fixo em 1, temos 4 amostras, cada uma com seguinte maneira:βP(Eu)

0.1  0.2   0.3     0.4

Ou seja, a primeira entrada tem 10% de escolha, a segunda é 20% etc. Agora, invertendo-as, obtemos:

 10   5    3.333   2.5

Média de (que no nosso caso é ) obtemos:1/N1/4

2.5  1.25  0.8325  0.625     ...which would add up to '5.21'

Como podemos ver, eles estão muito mais próximos de zero do que as versões simplesmente invertidas ( ). Isso significa que o gradiente da nossa rede não será tão ampliado, resultando em muito menos variação à medida que treinamos nossa rede.10,5,3,333,2.5

Portanto, sem esse , tivemos a sorte de selecionar a amostra menos provável ( ), o gradiente seria escalado 10 vezes. Seria ainda pior com valores menores, por exemplo, chance , se nossa repetição da experiência tiver muitos milhares de entradas, o que é bastante comum.1N0,10,00001

Kari
fonte

Respostas:

11

O DQN sofre intrinsecamente de instabilidade. Na implementação original, várias técnicas são empregadas para melhorar a estabilidade:

  1. uma rede de destino é usada com parâmetros que ficam atrás do modelo treinado;
  2. as recompensas são cortadas no intervalo [-1, 1];
  3. os gradientes são cortados no intervalo [-1, 1] (usando algo como Huber Loss ou recorte de gradiente);
  4. e mais relevante para sua pergunta, um grande buffer de reprodução é usado para armazenar transições.

Continuando no ponto 4, o uso de amostras totalmente aleatórias a partir de um grande buffer de reprodução ajuda a correlacionar as amostras, porque é igualmente provável que você faça transições de centenas de milhares de episódios no passado, assim como experimente novos. Mas quando a amostragem prioritária é adicionada à mistura, a amostragem puramente aleatória é abandonada: obviamente há um viés em relação às amostras de alta prioridade. Para corrigir esse viés, os pesos correspondentes às amostras de alta prioridade são muito pouco ajustados, enquanto os correspondentes às amostras de baixa prioridade permanecem inalterados na relatividade.

Intuitivamente, isso deve fazer sentido. As amostras que têm alta prioridade provavelmente serão usadas no treinamento muitas vezes. Reduzir o peso dessas amostras frequentemente vistas basicamente diz à rede: "treine essas amostras, mas sem muita ênfase; elas serão vistas novamente em breve". Por outro lado, quando uma amostra de baixa prioridade é vista, os pesos do IS basicamente informam à rede: "essa amostra provavelmente nunca será vista novamente, sendo totalmente atualizada". Lembre-se de que essas amostras de baixa prioridade têm um baixo erro de TD e, portanto, provavelmente não há muito a ser aprendido com elas; no entanto, eles ainda são valiosos para fins de estabilidade.

Na prática, o parâmetro beta é recozido até 1 durante a duração do treinamento. O parâmetro alfa pode ser recozido simultaneamente, tornando a amostragem priorizada mais agressiva e, ao mesmo tempo, corrigindo mais fortemente os pesos. E, na prática, a partir do artigo que você vinculou, manter um alfa fixo (.6) enquanto recozia o beta de 0,4 a 1 parece ser o ponto ideal para a amostragem baseada em prioridades (página 14).

Como observação lateral, da minha própria experiência pessoal, simplesmente ignorar os pesos de IS (ou seja, não corrigir nada) resulta em uma rede que treina bem no início, mas depois a rede parece superestimar, esquece o que aprendeu (também conhecido como esquecimento catastrófico) e tanques. No Atari Breakout, por exemplo, as médias aumentam durante os primeiros 50 milhões de quadros, então as médias são completamente reservadas. O artigo que você vinculou discute um pouco isso e fornece alguns gráficos.

avejidah
fonte
Obrigado! Eu tenho uma preocupação de por que os autores precisariam equilibrar1N quando eles já têm 1P(Eu)(dentro do peso 'IS'). Não é1P(Eu)já com base no tamanho da coleção, afinal?
Kari
2
De nada. Para responder à pergunta no comentário, não,1N não é rolado para o 1P(Eu). P(Eu)é a probabilidade de selecionar a amostra i. Isso é calculado usandoprEuoEukprEuok Ou seja, a prioridade da amostra é sobre a soma de todas as prioridades. (Onde as prioridades são geralmente calculadas como(td_error+ε)α) Sem entrar em muitos detalhes, o1Nexiste a média (palavra-chave) das amostras pela probabilidade de serem amostradas.
avejidah
1
@ user3180 O ponto de importância da amostragem não é obter um estimador imparcial do retorno esperado - é enviesado por sua própria natureza. O ponto é que algumas amostras têm mais impacto no treinamento do que outras e, portanto, devem ser amostradas com mais frequência. A ponderação corrige o viés diminuindo os ajustes de peso em relação às prioridades das amostras. Esse peso se torna cada vez mais importante à medida que a rede começa a convergir, de modo que o recozimento é usado. Ignorar a ponderação ou corrigir completamente o viés é algo que o papel PER cobre (consulte a figura 12).
Avejidah
2
@ user3180 Em relação à sua segunda pergunta sobre o uso do peso total (β = 1): Eu suspeito que, nesse caso, você geralmente ainda verá um benefício no PER, mas geralmente o treinamento será mais lento do que com o recozimento beta. Lembre-se de que existem dois parâmetros, α e β, e mesmo se você fixar β em 1, o parâmetro α ditará quantas amostras são priorizadas. Ou seja, as amostras ainda são extraídas de maneira tendenciosa e, mesmo que a polarização seja totalmente corrigida, a solução sobre a qual sua rede converge será diferente do caso uniforme. Novamente, veja a figura 12 no documento PER.
avejidah 25/02/19
1
@ user3180 Não tenho certeza se posso fornecer uma boa resposta matemática; no entanto, a razão prática é que, ao priorizar os trens da rede em um conjunto de dados que difere do caso uniforme. Com 0 <α <= 1, as amostras são priorizadas, portanto, são não uniformes e tendenciosas. Claro, você pode ajustar os pesos para corrigir esse viés, mas as amostras ainda são drasticamente diferentes do caso uniforme. O treinamento em um conjunto diferente de amostras produz uma solução diferente, independentemente dos ajustes de peso.
Avejidah
0

Tenho uma dúvida. Como papel PER,

Por motivos de estabilidade, sempre normalizamos os pesos em 1 / maxi wi, para que eles redimensionem a atualização apenas para baixo

Portanto, o fator 1 / N não se torna ineficaz? por exemplo, considere a última amostra,

case 1 without N : 0.25/10 = 0.25
case 2 with N=4; 0.625/2.5 = 0.25.

tão,

Wi = pow(N,-beta) * pow(Pi, -beta)
Wmax = pow(N,-beta) * pow(Pmin,-beta)

normalizando,

Wi/Wmax will cancel out the pow(N, -beta).

Por favor, ajude-me se meu entendimento estiver errado.

Karthikeyan Nagarajan
fonte
Você ainda precisa disso. Por exemplo, considere ter 100 entradas e um valor máximo de alguma entrada como, digamos, 5. Agora, imagine mudar para 1 trilhão de entradas.
Kari
Desculpe, eu não peguei você. Eu atualizei com a fórmula. Verifique e deixe-me saber sua resposta.
Karthikeyan Nagarajan