Эпизодическая полуградиентная сарса с нейронной сетью

Пытаясь реализовать Episodic Semi-gradient Sarsa with Нейронная сеть как аппроксиматор Мне было интересно, как я выбираю оптимальное действие на основе изученных в настоящее время весов сети. Если пространство действий дискретно, я могу просто рассчитать оценочную стоимость различных действий в текущем состоянии и выбрать то, которое дает максимум. Но, похоже, это не лучший способ решения проблемы. Кроме того, он не работает, если пространство действия может быть непрерывным (например, ускорение автомобиля с автоматическим управлением).

Итак, в основном мне интересно, как решить 10-ю строку Choose A' as a function of q(S', , w) в этом псевдокоде Саттона:

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

Изменить: мне нужно изменить псевдокод при использовании сети в качестве аппроксиматора? Так, что я просто минимизирую MSE предсказания сети и вознаграждения R например?

1 ответ

Решение

Я задавался вопросом, как я выбираю оптимальное действие на основе изученных в настоящее время весов сети

У вас есть три основных варианта:

  1. Запустите сеть несколько раз, по одному разу для каждого возможного значения A', чтобы соответствовать значению S', которое вы рассматриваете. Примите максимальное значение в качестве прогнозируемого оптимального действия (с вероятностью 1-ε, в противном случае выбирайте случайным образом для политики ε-жадности, обычно используемой в SARSA)

  2. Проектируйте сеть, чтобы оценивать все значения действий одновременно - т.е. иметь | A (s) | выходы (возможно, дополнены, чтобы охватить "невозможные" действия, которые вам нужно отфильтровать). Это немного изменит вычисления градиента, должен быть нулевой градиент, примененный к последним неактивным выходам слоя (то есть все, что не соответствует A of (S, A)). Опять же, просто возьмите максимально допустимый результат в качестве предполагаемого оптимального действия. Это может быть более эффективным, чем запуск сети несколько раз. Это также подход, использованный недавним ботом DQN Atari, играющим в бот, и политическими сетями AlphaGo.

  3. Используйте метод градиента политики, который работает с использованием примеров для оценки градиента, который улучшит оценку политики. Вы можете увидеть главу 15 текущего проекта Саттона и Барто " Обучение усилению: Введение" для более подробной информации. Методы градиента политики становятся привлекательными для случаев, когда существует большое количество возможных действий, и они могут справляться с пространствами непрерывных действий (путем оценки функции распределения для оптимальной политики - например, выбирая среднее значение и стандартное отклонение нормального распределения, из которого можно выбирать принять ваши действия). Вы также можете комбинировать политический градиент с подходом "значение-состояние" в методах "актер-критик", которые могут быть более эффективными учениками, чем чисто политический подход-градиент.

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

Нужно ли изменять псевдокод при использовании сети в качестве аппроксиматора? Так, что я просто минимизирую MSE прогнозирования сети и вознаграждения R например?

Нет. В псевдокоде нет отдельной функции потерь, такой как MSE, которую вы бы использовали в контролируемом обучении. Термин ошибки (часто называемый ошибкой TD) задается частью в квадратных скобках и обеспечивает аналогичный эффект. Буквально термин ∇q (S, A, w) (извините за отсутствие шляпы, нет LaTex на SO) означает градиент самой оценки, а не градиент какой-либо функции потерь.

Другие вопросы по тегам