Mi mejor conjetura es que se ha hecho para reducir el tiempo de cálculo, de lo contrario tendríamos que encontrar el valor q para cada acción y luego seleccionar la mejor.
No tiene un impacto real en el tiempo de cálculo, aparte de un ligero aumento (debido a la memoria adicional utilizada por dos redes). Usted podría almacenar en caché los resultados de la red de destino, supongo, pero es probable que no valdría la pena para la mayoría de los entornos, y no he visto una aplicación que no hace eso.
¿Me estoy perdiendo de algo?
Tiene que ver con la estabilidad del algoritmo de Q-learning cuando se utiliza la aproximación de funciones (es decir, la red neuronal). El uso de una red de destino separada, actualizada cada tantos pasos con una copia de los últimos parámetros aprendidos, ayuda a evitar que el sesgo fuera de control domine el sistema numéricamente, lo que hace que los valores de Q estimados diverjan.
Imagine que uno de los puntos de datos (en S, A, R, S'
) causa una sobreestimación actualmente pobre para Q(S', A')
empeorar. Quizás S', A'
ni siquiera haya sido visitado todavía, o el valor de lo R
visto hasta ahora es más alto que el promedio, solo por casualidad. Si (S,A)
aparece una muestra de repetición de la experiencia varias veces, empeoraría cada vez, porque la actualización Q(S,A)
se basa en R + max_a Q(S',a)
. La fijación de la red objetivo limita el daño que pueden causar tales sobreestimaciones, lo que le da tiempo a la red de aprendizaje para converger y perder más de su sesgo inicial.
A este respecto, el uso de una red de destino separada tiene un propósito muy similar para experimentar la repetición. Estabiliza un algoritmo que de otro modo tiene problemas para converger.
También es posible tener DQN con "doble aprendizaje" para abordar un problema separado: sesgo de maximización. En ese caso, puede ver implementaciones DQN con 4 redes neuronales.