Извините, но я боюсь, что вам нужно немного взглянуть на математику алгоритма DDPG, чтобы понять, почему он называется "целевой сетью". DDPG минимизирует следующие потери (из оригинальной бумаги https://arxiv.org/pdf/1509.02971.pdf):
, где Q представляет ваша нейронная сеть ака. ваш "агент" и y - это так называемая цель . Он называется target , потому что вы хотите, чтобы значения вашего агента были близки к нему. Просто для пояснения: Q (s_t, a_t | theta) соответствует выходу вашего агента на шаге по времени t , заданному состоянию s , действию a и вес сети theta .
Однако, как вы можете видеть, цель y зависит от тех же (нейронных сетей) параметров, что и ваш агент. , На практике эта зависимость приводит к нестабильности при минимизации вышеуказанных потерь.
Одним из способов решения этой проблемы является использование «второй» целевой сети, где целевой сетью является либо
- замороженное состояние агентской («обычной») сети, и просто копировал из обычной сети каждые несколько фиксированных чисел шагов (например, каждые 10000 итераций). Это подход, принятый в DQN.
- или в версии с запаздыванием фактической агентской («обычной») сети, где запаздывание достигается с помощью так называемого усреднения по Поляку. То есть вместо обновления весов вашей целевой сети путем простого копирования весов обычной сети на каждой итерации вы берете какое-то средневзвешенное значение. Это подход, принятый в DDPG.
Проще говоря, целевая сеть - это не что иное, как просто отсроченная версия обычной сети.