Я работаю над заданием по программированию из курса RL Дэвида Сильвера (после просмотра всех 10 его лекций), сейчас пытаюсь реализовать Сарсу (λ).
Хотя обычные и перспективные версии Sarsa кажутся мне достаточно ясными, у меня возникают проблемы с интуитивным пониманием механизма обновления в Sarsa с обратной ориентацией. Согласно этому слайду (взятому из лекций Дэвида Сильвера), мы рассчитываем член ошибки (?), используя самые последние состояние и действие, но затем мы обновляем все значения Q для всех прошлых пар состояние-действие в этом эпизоде:
псевдокод Sarsa (λ) с обратной стороны
Какова логика обновления ВСЕХ прошлых пар состояние-действие (в данном эпизоде) в направлении самой последней ошибки TD? Что если они ошибаются, но в противоположном направлении? Например, если мы играем в игру, и в какой-то момент мы должны идти вверх, а затем вниз, чтобы перепрыгнуть через препятствие, не попытается ли алгоритм в какой-то момент обновить действие «вверх» в направлении действия "идти вниз"?