Алгоритм SARSA - PullRequest
       25

Алгоритм SARSA

5 голосов
/ 22 мая 2011

У меня проблемы с пониманием алгоритма SARSA: http://en.wikipedia.org/wiki/SARSA

В частности, при обновлении значения Q, что такое гамма? и какие значения используются для s (t + 1) и a (t + 1)?

Может кто-нибудь объяснить мне этот алгоритм?

Спасибо.

1 Ответ

4 голосов
/ 22 мая 2011

Гамма определяет, сколько памяти имеет ваш алгоритм.Если вы установите его на 0.0, то ваш алгоритм вообще не будет обновлять функцию значения Q .Если вы установите его на 1,0, то новому опыту будет придан такой же вес, как и всем предыдущим вместе взятым.Лучшие значения лежат между ними и должны быть определены экспериментально.

Вот как это работает:

  • На первом шаге вы просто получаете состояние.Просто сохраните его как s t .Кроме того, найдите в своей функции значения лучшее действие, которое можно выполнить в этом состоянии, и сохраните его как a t .
  • На каждом последующем шаге вы получаете r t + 1 и s t + 1 .Опять же, используйте функцию значения, чтобы найти лучшее действие - a t + 1 .Значение перехода от вашего предыдущего действия к новому равно r t + 1 + Q (с t + 1 , a t + 1) - Q (s T , а T * 1 040 *) * * тысяча сорок один.Используйте это, чтобы обновить вашу долгосрочную оценку значения предыдущего действия Q (с t , a t t) .Наконец, сохраните s t + 1 и a t + 1 как s t и a t для следующего шага.

По сути, функция значений - это просто скользящее среднее этих значений обновления для каждого действия и каждогосостояние.

...