Политический градиент: проблема инициализации параметра политики - PullRequest
1 голос
/ 26 марта 2019

У меня есть некоторые проблемы с инициализацией тэты параметра политики для алгоритма REINFORCE из книги: Обучение усилению: Введение, 2-е издание, глава 12, Саттон и Барто

Вот псевдокод для алгоритма:

Taken from the book

Они говорят, что вы можете инициализировать Thetas (параметр политики) с произвольными значениями, например, 0. Но тогда я получаю совершенно неверные результаты:

Figure 13.2

Чтобы исправить это, мне пришлось инициализировать их таким образом, чтобы они соответствовали политике Эпсилона-Жадности. Это может быть достигнуто с учетом того, что с помощью предпочтений действий:

Probability(LEFT)  = e^Theta[1] / (e^Theta[1] + e^Theta[2])
Probability(RIGHT) = e^Theta[2] / (e^Theta[1] + e^Theta[2])

Решение, например, второго (с использованием p = Epsilon / 2) и того факта, что вероятности (RIGHT) = p, а две вероятности составляют 1:

 Theta[1] = ln(p / (1 - p)) + Theta[2]

Таким образом, присвоение Theta[2] любого значения и использование вышеуказанного смещения для вычисления Theta[1] приводит к результатам из книги (извините за изменение альфа на первом изображении):

Figure 13.1 Figure 13.2

Так что я понятия не имею, почему начальные значения должны имитировать политику Epsilon Greedy и что не так при установке их в 0, как отмечено в книге.

Другая проблема заключается в том, что при сравнении алгоритма REINFORCE порядок для различных альфа-каналов находится в порядке, совершенно противоположном порядку, как показано на рисунке 13.1 из книги. Предполагалось, что Альфа = 2 ^ -14 превзойдет всех, а не хуже.

Любая помощь и разъяснения будут оценены?

У меня это реализовано в Lua здесь: Код Lua

Спасибо

...