Почему DQN требует двух разных сетей?

12

Я проходил эту реализацию DQN и вижу, что в строке 124 и 125 были инициализированы две разные сети Q. Из моего понимания я думаю, что одна сеть предсказывает соответствующее действие, а вторая сеть предсказывает целевые значения Q для нахождения ошибки Беллмана.

Почему мы не можем просто создать единую сеть, которая просто предсказывает значение Q, и использовать ее в обоих случаях? Мое лучшее предположение, что это было сделано, чтобы сократить время вычислений, в противном случае мы должны были бы найти значение q для каждого действия, а затем выбрать лучшее. Это единственная причина? Я что-то упускаю?

amitection
источник

Ответы:

9

Мое лучшее предположение, что это было сделано, чтобы сократить время вычислений, в противном случае мы должны были бы найти значение q для каждого действия, а затем выбрать лучшее.

Это не оказывает реального влияния на время вычислений, кроме небольшого увеличения (из-за дополнительной памяти, используемой двумя сетями). Я полагаю, вы могли бы кэшировать результаты целевой сети, но, вероятно, это не стоило бы этого для большинства сред, и я не видел реализации, которая делает это.

Я что-то упускаю?

Это связано со стабильностью алгоритма Q-обучения при использовании аппроксимации функций (то есть нейронной сети). Использование отдельной целевой сети, обновляемой через каждые несколько этапов копией последних изученных параметров, помогает избежать смещения прогона при начальной загрузке, чтобы доминировать в системе численно, что приводит к расхождению предполагаемых значений Q.

Представьте себе, что одна из точек данных (в S, A, R, S') приводит к ухудшению в настоящее время плохой завышенной оценки Q(S', A'). Возможно, S', A'еще даже не посещали, или ценность Rувиденного до сих пор выше среднего, просто случайно. Если образец (S,A)воспроизводится несколько раз при повторном воспроизведении, это будет ухудшаться каждый раз, потому что обновление Q(S,A)основано на R + max_a Q(S',a). Исправление целевой сети ограничивает ущерб, который могут нанести такие завышенные оценки, давая учащейся сети время для сближения и потери большей первоначальной систематической ошибки.

В этом отношении использование отдельной целевой сети имеет очень похожую цель для воспроизведения. Он стабилизирует алгоритм, который в противном случае имеет проблемы сходимости.

Также возможно иметь DQN с «двойным обучением» для решения отдельной проблемы: предвзятость максимизации. В этом случае вы можете увидеть реализации DQN с 4 нейронными сетями.

Нил Слэйтер
источник
Для дополнительного чтения, можно сослаться на aaai.org/ocs/index.php/AAAI/AAAI16/paper/download/12389/11847
amitection