Размерность целевой функции для обучения агента DQN

Вопрос или проблема

Насколько я понимаю, агент DQN имеет столько выходов, сколько действий (для каждого состояния). Если мы рассматриваем скалярное состояние с 4 действиями, это будет означать, что DQN будет иметь 4-мерный выход.

Однако, когда речь заходит о целевом значении для обучения агента, оно обычно описывается как скалярное значение = вознаграждение + дисконт * лучшее будущее Q.

Как можно использовать скалярное значение для обучения нейронной сети с векторным выходом?

Например, посмотрите изображение по ссылке
https://towardsdatascience.com/deep-q-learning-tutorial-mindqn-2a4c855abffc

DQN

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

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

НО это НЕ векторный выход в обычном смысле этого термина. Это функциональный выход, который представляет всю функцию $Q(a)$ для каждого действия $a$.

Что касается правила обучения/принятия решений, здесь все как обычно. Надеюсь, это понятно.

Ответ или решение

Вопрос о размерности целевой переменной для обучения агента DQN (Deep Q-Network) действительно требует детального объяснения.

Агент DQN имеет выходное пространство, размерность которого соответствует количеству возможных действий в данной среде. Например, если у нас есть скалярное состояние с 4 действиями, выходная часть нейронной сети DQN будет иметь размерность 4, где каждая из 4 нейронов соответствует Q-значению для определенного действия (например, \( Q(a_1) \), \( Q(a_2) \), \( Q(a_3) \), \( Q(a_4) \)).

Теперь, касаясь целевой переменной, действительно существует некоторое недоразумение. Обычная формулировка целевой переменной включает в себя.scalar (скалярное) значение, рассчитанное по формуле \( \text{целевая} = \text{награда} + \gamma \cdot \max Q_{\text{новое состояние}} \), где \( \gamma \) – коэффициент дисконтирования, а \( \max Q_{\text{новое состояние}} \) – максимальное Q-значение для следующего состояния, определяемое на основе текущей политики.

Здесь важно понимать, что общая цель DQN-модели заключается в обучении функции Q, которая связывает каждое состояние с его возможными действиями. То есть, DQN фактически пытается минимизировать разницу между предсказанными Q-значениями для каждого действия и целевыми значениями, которые, как мы только что указали, являются скалярными.

При обучении сети с помощью метода градиентного спуска, необходимо обрабатывать выходные и целевые значения в соответствии с их размерами. Для этого мы можем использовать подход, при котором целевая переменная для конкретного действия \( a_i \) обновляется следующим образом:

1. Вычисляем предсказанное Q-значение для всех действий в данный момент (вектор Q).
2. Определяем, какое действие было выбрано (например, это действие \( a_i \)) и извлекаем соответствующее предсказанное Q-значение.
3. Обновляем только это предсказанное значение, устанавливая его равным целевому значению (скалярному).
4. Обучаем модель по всем выходным значениям, применяя ошибку между предсказанными Q-значениями и целевыми значениями.

Примерный алгоритм выглядит так:
– Предсказание вектора Q: \( Q(s) = [Q(a_1), Q(a_2), Q(a_3), Q(a_4)] \)
– Определение целевой переменной: \( \text{целевая}(a_i) = r + \gamma \cdot \max Q_{\text{новое состояние}} \)
– Обновление:
– Если выбрано действие \( a_i \), то:
\( Q(a_i) \leftarrow \text{целевая}(a_i) \)
– Остальные предсказанные Q-значения остаются неизменными, но вся структура сети при обучении может настраиваться на минимизацию ошибки между всеми предсказанными и целевыми значениями.

Таким образом, архитектура DQN действительно представляет собой функциональный выход, который предоставляет значения Q для всех действий, а не векторный вывод в некотором “обычном” понимании. Это позволяет эффективно обучать агент, используя принцип максимизации ожидаемой награды через целевые значения, которые могут быть скалярными.

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

Оцените материал
Добавить комментарий

Капча загружается...