У меня есть некоторые проблемы с инициализацией тэты параметра политики для алгоритма REINFORCE из книги:
Обучение усилению: Введение, 2-е издание, глава 12, Саттон и Барто
Вот псевдокод для алгоритма:
Они говорят, что вы можете инициализировать Thetas (параметр политики) с произвольными значениями, например, 0. Но тогда я получаю совершенно неверные результаты:
Чтобы исправить это, мне пришлось инициализировать их таким образом, чтобы они соответствовали политике Эпсилона-Жадности. Это может быть достигнуто с учетом того, что с помощью предпочтений действий:
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]
приводит к результатам из книги (извините за изменение альфа на первом изображении):
Так что я понятия не имею, почему начальные значения должны имитировать политику Epsilon Greedy и что не так при установке их в 0, как отмечено в книге.
Другая проблема заключается в том, что при сравнении алгоритма REINFORCE порядок для различных альфа-каналов находится в порядке, совершенно противоположном порядку, как показано на рисунке 13.1 из книги. Предполагалось, что Альфа = 2 ^ -14 превзойдет всех, а не хуже.
Любая помощь и разъяснения будут оценены?
У меня это реализовано в Lua здесь: Код Lua
Спасибо