← Вернуться к списку

Причины «катастрофического спада» в Deep Q-Learning?

Краткое содержание

Я реализую некоторые «классические» статьи по Model Free RL, такие как DQN, Double DQN и Double DQN с Prioritized Replay. На различных моделях, запускаемых на CartPole-v1 с использованием одной и той же нейросети, я замечаю, что все вышеупомянутые три модели демонстрируют резкое и серьезное падение средней награды (с резким и значительным увеличением потерь) после достижения пиковых значений. После поиска информации в интернете я вижу, что это признанная проблема, но не могу найти подходящего объяснения. Я пробовал следующие способы для смягчения проблемы: адаптация архитектуры модели, настройка гиперпараметров, таких как скорость обучения (LR), размер батча, функция потерь (MSE, Huber). Эта проблема сохраняется, и я не могу достичь какой-либо устойчивой пиковой производительности. Полезные ссылки, которые я нашел: Что может вызывать резкое падение производительности модели DQN в среде Pong? Пример: до ~250 эпизодов в Double DQN с PR (с annealing beta) производительность стабильно растет как по увеличению награды, так и по уменьшению потерь; после этого этапа производительность внезапно падает как по снижению средней...

Полный текст

8 $\begingroup$ Я реализую несколько «классических» статей по Model Free RL, таких как DQN, Double DQN и Double DQN с Prioritized Replay. Используя различные модели на CartPole-v1 с одной и той же нейронной сетью, я заметил, что все три вышеупомянутые модели демонстрируют резкое и сильное падение средней награды (с резким и значительным увеличением потерь) после достижения пиковых значений. После поиска в интернете я вижу, что это признанная проблема, но я не могу найти подходящего объяснения.

Вещи, которые я пробовал для смягчения ситуации: адаптация архитектуры модели, настройка гиперпараметров, таких как LR, batch_size, функция потерь (MSE, Huber). Эта проблема сохраняется, и я не могу добиться какой-либо устойчивой пиковой производительности.

Полезные ссылки, которые я нашел:
* Что может вызывать резкое падение производительности модели DQN в среде Pong?

Пример: до ~250 эпизодов в Double DQN с PR (с annealing beta), производительность стабильно растет как по увеличению награды, так и по уменьшению потерь; после этого этапа производительность резко падает как по уменьшению средней награды, так и по увеличению потерь, как видно из вывода ниже:
Эпизод: Средняя награда: Средние потери: Среднее количество шагов
200 : 173.075 : 0.030: 173.075
400 : 193.690 : 0.011: 193.690
600 : 168.735 : 0.015: 168.735
800 : 135.110 : 0.015: 135.110
1000 : 157.700 : 0.013: 157.700
1200 : 99.335 : 0.013: 99.335
1400 : 97.450 : 0.015: 97.450
1600 : 102.030 : 0.012: 102.030
1800 : 130.815 : 0.010: 130.815
1999 : 89.76 : 0.013: 89.76

Вопросы:
1. Какое теоретическое обоснование этому?
2. Означает ли эта хрупкость, что мы не можем использовать вышеупомянутые 3 алгоритма для решения CartPole-v1? Если нет, какие шаги могут помочь смягчить это?
3. Может ли это быть переобучением и что означает эта хрупкая природа?
4. Есть ли ссылки для дальнейшего изучения этой «катастрофической просадки»?
5. Я наблюдаю похожее поведение в других средах; означает ли это, что вышеупомянутые 3 алгоритма недостаточны?

Edit: Взяв из ответа @devidduma, я добавил временное затухание LR к модели DDQN+PRB и оставил все остальное без изменений. Вот цифры, они выглядят лучше, чем раньше, по величине падения производительности:
10 : 037.27 : 0.5029 : 037.27
20 : 121.40 : 0.0532 : 121.40
30 : 139.80 : 0.0181 : 139.80
40 : 157.40 : 0.0119 : 157.40
50 : 225.10 : 0.0107 : 225.10 <- здесь начинается затухание, множитель = 0.001
60 : 227.90 : 0.0101 : 227.90
70 : 227.00 : 0.0087 : 227.00
80 : 154.30 : 0.0064 : 154.30
90 : 126.90 : 0.0054 : 126.90
99 : 154.78 : 0.0057 : 154.78

Edit: после дальнейшего тестирования, ReduceLROnPlateau из pytorch, кажется, работает лучше всего с параметром patience=0.

q-learning deep-rl gym double-q-learning

Share Improve this question Follow edited Jun 14, 2021 at 15:46 asked Jun 3, 2021 at 14:33 Virus 81 1 1 silver badge 5 5 bronze badges $\endgroup$

1 $\begingroup$ Does LR decay actually solve your problem? From your result it seems the situation is mitigated but it is hard to see whether the policy can converge to the optimal one in a long term. $\endgroup$ hyyyyy – hyyyyy 2024-01-30 02:48:35 +00:00 Commented Jan 30, 2024 at 2:48 Add a comment |

1 Answer 1 Sorted by: Reset to default Highest score (default) Date modified (newest first) Date created (oldest first) 0 $\begingroup$ I had similar issues, albeit more dramatic. In my case reward/episode length reaches ~500 and then drops to bellow 100 again. You can see the graph here: https://community.deeplearning.ai/t/performance-drop-during-deepq-training/809274/6 Share Improve this answer Follow answered May 3 at 15:37 APasagic 21 2 2 bronze badges $\endgroup$ Add a comment | You must log in to answer this question. Start asking to get answers Find the answer to your question by asking. Ask question Explore related questions q-learning deep-rl gym double-q-learning See similar questions with these tags.