Я найкраще здогадуюсь, що це було зроблено для скорочення часу на обчислення, інакше нам доведеться з'ясувати значення q для кожної дії, а потім вибрати найкраще.
Це не має реального впливу на час обчислення, крім незначного збільшення (за рахунок додаткової пам’яті, що використовується двома мережами). Ви можете кешувати результати цільової мережі, я думаю, але це, мабуть, не варто для більшості середовищ, і я не бачив реалізації, яка це робить.
Я щось пропускаю?
Це пов'язано зі стабільністю алгоритму Q-навчання при використанні наближення функції (тобто нейронної мережі). Використання окремої цільової мережі, що оновлюється кожні стільки кроків із копією останніх вивчених параметрів, допомагає утримати ухил від завантажувального завантаження від домінування в системі чисельно, викликаючи розбіжність оцінених значень Q.
Уявіть, що одна з даних (at S, A, R, S'
) спричиняє погіршення в даний час поганої завищеної оцінки Q(S', A')
. Можливо, S', A'
його ще не відвідували, або значення R
побаченого поки що вище середнього, лише випадково. Якщо зразок (S,A)
зіткнувся кілька разів під час повторної повторної роботи, воно щоразу погіршуватиметься, оскільки оновлення до Q(S,A)
базується на R + max_a Q(S',a)
. Фіксація цільової мережі обмежує шкоду, яку можуть нанести такі завищені оцінки, надаючи навчальній мережі час конвергенції та втратити більше своїх початкових ухилів.
У цьому відношенні використання окремої цільової мережі має дуже подібне призначення, як і для повторного відтворення. Він стабілізує алгоритм, який інакше має проблеми з конвергенцією.
Також можна мати DQN з "подвійним навчанням" для вирішення окремого питання: Максимізація зміщення. У цьому випадку ви можете побачити реалізацію DQN з 4 нейронних мереж.