Зета-переменная SARSA(лямда)

Что представляют собой дзеты в методе критики? Я считаю, что он отслеживает пары «состояние-действие» и представляет трассировки приемлемости, которые являются временной записью состояний-действий, но что именно представляет собой дзета и как это выглядит в С++ (например, вектор двойников)?

Критик Критик


person anon    schedule 12.04.2018    source источник
comment
Когда люди объявили вам причину, почему определенный вопрос не подходит для сайта, он не значит, они хотят, чтобы вы скопировали то же самое и спросили еще раз   -  person Passer By    schedule 12.04.2018
comment
@Passer By Если вы действительно прочитали причину, то это потому, что я задал много вопросов, сделав их слишком широкими. Возможно, вы захотите проверить редактирование, которое я внес в вопрос, которое исправило и сузило его до одного вопроса. Кроме того, это не совсем тот же вопрос. Тот был о тета. Это про Зету. Также обратите внимание, что вопрос был создан, чтобы не быть слишком широким.   -  person anon    schedule 12.04.2018


Ответы (1)


Как вы уже сказали, дзета представляет собой следы приемлемости. Интуитивно это можно понять как содержащее «распадающуюся смесь всех векторов признаков состояния-действия, встречавшихся на всех предыдущих временных шагах». Это следы вещей, которые мы видели ранее, и, следовательно, вещи, которым мы также должны отдать должное за награды, которые мы наблюдаем сейчас.

Более формально, это просто то, что требуется, если вы хотите написать инкрементные реализации (с равномерно распределенным временем вычислений по всем вашим временным шагам) алгоритмов RL, которые, будучи написаны более простым/очевидным/наивным способом, могут быть реализованы только в неинкрементный способ, потому что у них есть правила обновления, которые требуют информацию со всех временных отрезков в вашем эпизоде ​​(например, лямбда-возвраты / возвраты Монте-Карло). Это, вероятно, звучит довольно сложно, но, вероятно, лучше придерживаться интуитивного объяснения.

Что касается того, как это будет выглядеть на C++, да, в значительной степени вектор двойников. «z \in R^d» прямо перед первой строкой кода на изображении означает именно это, это d-мерный вектор действительных чисел (двойных или с плавающей запятой в C++), где d — это размерность ваших векторов признаков состояния-действия (phi) .

Вы также можете сказать, что это должен быть d-мерный вектор, по тому факту, что его нужно добавить к другим d-мерным векторам (phi и theta) в нескольких других местах псевдокода. Это может работать правильно математически только в том случае, если сама дзета также является d-мерным вектором.

person Dennis Soemers    schedule 12.04.2018