Могу ли я объединить алгоритм градиента политики Монте-Карло с другими алгоритмами градиента политики - PullRequest
0 голосов
/ 15 марта 2020

Я знаю, что алгоритм градиента политики Монте-Карло REINFORCE отличается тем, как он рассчитывает значения вознаграждения путем расчета дисконтированного совокупного будущего вознаграждения на каждом этапе.

здесь приведен код для расчета дисконтированного совокупного будущего вознаграждения на каждом временном шаге.

G = np.zeros_like(self.reward_memory, dtype=np.float64)
        for t in range(len(self.reward_memory)):
            G_sum = 0
            discount = 1
            for k in range(t, len(self.reward_memory)):
                G_sum += self.reward_memory[k] * discount
                discount *= self.gamma
            G[t] = G_sum

еще один пример повышения точности - это вычисление вознаграждения после действия, называемого "вознаграждение go». другим примером является добавление энтропийного бонуса.

Можно ли добавить энтропийный бонус и вознаграждения к go или любой из них к методу Монте-Карло.

Также сделан еще один шаг в Монте-Карло после расчета вознаграждения следует нормализовать значения.

«На практике также может быть важно нормализовать их. Например, предположим, что мы вычисляем [накопленное вознаграждение со скидкой] для всех 20 000 действий в серии из 100 выпусков игры в понг выше. Хорошей идеей является «стандартизация» этих возвратов (например, вычитание среднего значения, деление на стандартное отклонение), прежде чем мы подключим их к backprop. Таким образом, мы всегда поощряем и препятствуем примерно половине выполненных действий. Математически вы также можете интерпретировать эти приемы как способ управления дисперсией оценки градиента политики ».

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

Это из исследования PDF https://arxiv.org/pdf/1506.02438.pdf

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

Редактировать:

Я также хотел бы добавить, можно ли добавить функцию преимущества

enter image description here

A (s, a) - функция преимуществ; Можно ли добавить это к подходу Монте-Карло, предполагая, что мы также добавляем и вознаграждение к go, и бонус энтропии?

1 Ответ

1 голос
/ 17 марта 2020

Вы смешиваете некоторые вещи здесь.

Подход Монте-Карло представляет собой способ вычисления доходов для пар состояние-действие: в качестве дисконтированной суммы всех будущих наград после этой пары состояние-действие (s, a) следуя текущей политике π. (Стоит также отметить, что REINFORCE не является особенно хорошим алгоритмом RL, и что оценки доходности по методу Монте-Карло имеют довольно высокую дисперсию по сравнению, например, с TD (λ).)

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

Я бы посоветовал вам прочитать Укрепление обучения Закажите , чтобы глубже понять, что вы делаете.

...