Хотя я знаю, что SARSA является политикой, в то время как Q-learning не политикой, при взгляде на их формулы трудно (мне) увидеть разницу между этими двумя алгоритмами.
Согласно книге Обучение усилению: Введение (Саттон и Барто). В алгоритме SARSA, с учетом политики, соответствующая функция-значение Q (в состоянии s и действии a, на временном шаге t), т.е. Q (s t, a t), может быть обновлено следующим образом
Q(s t, a t) = Q(s t, a t) + α*(r t + γ*Q(s t+1, a t+1) - Q(s t, a t))
С другой стороны, этап обновления для алгоритма Q-обучения является следующим
Q(s t, a t) = Q(s t, a t) + α*(r t + γ*max a Q(s t+1, a) - Q(s t, a t))
который также можно записать как
Q(s t, a t) = (1 - α) * Q(s t, a t) + α * (r t + γ*max a Q(s t+1, a))
где γ (гамма) - коэффициент дисконтирования, а r t - вознаграждение, полученное от окружающей среды на временном шаге t.
Разница между этими двумя алгоритмами заключается в том, что SARSA ищет только следующее значение политики, а Q-learning ищет следующее максимальное значение политики?
TLDR (и мой собственный ответ)
Спасибо всем, кто ответил на этот вопрос, так как я впервые спросил его. Я сделал github repo, играя с Q-Learning, и эмпирически понял, в чем разница. Все это означает, как вы выбираете свое следующее лучшее действие, которое с алгоритмической точки зрения может быть средним, максимальным или наилучшим действием в зависимости от того, как вы решили его реализовать.
Другое основное отличие заключается в том, когда происходит этот выбор (например, онлайн или офлайн) и как/почему это влияет на обучение. Если вы читаете это в 2019 году и более практичны, то, вероятно, лучший способ понять разницу - поиграть с игрушкой RL.
Последнее важное примечание - это то, что Suton & Барто, а также Википедия часто имеют смешанные, запутанные или неправильные формульные представления в отношении следующего состояния наилучшее/максимальное действие и награда:
r(t+1)
на самом деле
r(t)
Надеюсь, это поможет кому-нибудь застрять в этом.