Por que o DQN requer duas redes diferentes?


12

Eu estava passando por essa implementação do DQN e vejo que nas linhas 124 e 125 foram inicializadas duas redes Q diferentes. Pelo meu entendimento, acho que uma rede prediz a ação apropriada e a segunda rede prediz os valores Q de destino para encontrar o erro de Bellman.

Por que não podemos apenas criar uma única rede que simplesmente preveja o valor Q e usá-lo nos dois casos? Meu melhor palpite é que isso foi feito para reduzir o tempo de computação, caso contrário, teríamos que descobrir o valor q para cada ação e selecionar o melhor. Essa é a única razão? Estou esquecendo de algo?

Respostas:


9

Meu melhor palpite é que isso foi feito para reduzir o tempo de computação, caso contrário, teríamos que descobrir o valor q para cada ação e selecionar o melhor.

Não tem impacto real no tempo de computação, exceto um pequeno aumento (devido à memória extra usada por duas redes). Suponho que você poderia armazenar em cache os resultados da rede de destino, mas provavelmente não valeria a pena para a maioria dos ambientes, e eu não vi uma implementação que faça isso.

Estou esquecendo de algo?

Tem a ver com a estabilidade do algoritmo Q-learning quando se usa aproximação de funções (isto é, a rede neural). O uso de uma rede de destino separada, atualizada a cada passo com uma cópia dos parâmetros aprendidos mais recentes, ajuda a impedir que o viés de fuga de bootstrap domine o sistema numericamente, causando divergência nos valores estimados de Q.

Imagine que um dos pontos de dados (at S, A, R, S') cause uma superestimação atualmente ruim para Q(S', A')piorar. Talvez S', A'nem tenha sido visitado ainda, ou o valor do Rvisto até agora seja superior à média, apenas por acaso. Se uma amostra (S,A)surgisse várias vezes na reprodução da experiência, ela pioraria novamente a cada vez, porque a atualização para Q(S,A)é baseada em R + max_a Q(S',a). A correção da rede de destino limita o dano que essas superestimações podem causar, dando à rede de aprendizado tempo para convergir e perder mais de seu viés inicial.

Nesse sentido, o uso de uma rede de destino separada tem um objetivo muito semelhante ao de repetir. Ele estabiliza um algoritmo que, de outra forma, tem problemas de convergência.

Também é possível ter um DQN com "aprendizado duplo" para resolver um problema separado: Viés de maximização. Nesse caso, você pode ver implementações de DQN com 4 redes neurais.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.