Как мне вычислить цель для обновления в DQN в конечном состоянии, если у меня есть псевдоэпизоды?

Aug 19 2020

Я тренирую DQN в реальной среде, где у меня нет естественного конечного состояния, поэтому я создал эпизод искусственным образом (то есть он начинается в случайном состоянии и после T шагов заканчивается). Мой вопрос касается конечного состояния: следует ли мне учитывать его, когда мне нужно вычислить$y$ (так что используя только награду) или нет?

Ответы

3 NeilSlater Aug 19 2020 at 15:20

Если эпизод не завершается естественным образом, то если вы разбиваете его на псевдоэпизоды для тренировочных целей, единственное, что вам не следует делать, это использовать цель TD. $G_{T-1} = R_T$ используется для конца эпизода, который предполагает возврат 0 из любого конечного состояния $S_{T}$. Конечно, это потому, что это не конец серии.

У вас есть два «естественных» варианта настройки DQN в соответствии с теорией в конце псевдоэпизода:

  • Сохраните состояние, действие, награду, кортеж next_state как обычно и используйте стандартную одношаговую цель TD $G_{t:t+1} = R_{t+1} + \gamma \text{max}_{a'} Q(S_{t+1}, a')$

  • Полностью игнорируйте последний шаг и не сохраняйте его в памяти. Это не дает никаких преимуществ по сравнению с вышеупомянутым вариантом, но может быть проще реализовать, если вы используете предварительно созданную библиотеку RL.

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

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


В качестве отступления (и упомянутого в комментарии Свакшара Деба) вы также можете изучить среднюю настройку вознаграждения для неэпизодических сред . Это решает проблему выбора значения для$\gamma$. Если у вас нет причин выбирать конкретный$\gamma$ в случае продолжающейся проблемы обычно выбирают значение, близкое к 1, например 0,99 или 0,999 в DQN - это, по сути, приближение к средней награде.