Gridworld из книги Sutton RL: как рассчитать функцию значения для угловых ячеек?

Ссылаясь на книгу RL Саттона и Барто, 2-е изд., глава 3, стр. 60.

Вот мир сетки 5x5 и значение каждого состояния: gridoworld со значениями состояния

Используя уравнение резервного копирования Беллмана, можно рассчитать значение каждого состояния:

Вот расчет для средней (3,3) ячейки:

вычисление значения состояния

Используя значения из верхней, нижней, левой и правой ячеек, а также случайную политику с pi = 1/4 и все вероятности перехода p(s',r|s,a) = 1, расчет выполняется.

А как насчет угловых ячеек?

Скажем, 3.3 вверху слева. Как это рассчитать?

Использование только нижнего (1,5) и правого (8,8) значений не работает. Также необходимо учитывать, что когда агент выполняет верхнее и левое действия, он остается в сетке, но получает вознаграждение -1.

Не могли бы вы помочь мне рассчитать значения угловых ячеек? Чтение реализаций github тоже не помогает.


person Yasserius    schedule 22.09.2020    source источник


Ответы (1)


значение верхнего левого угла будет (0,9 * (8,8 + 1,5) + (-1 + 0,9 * 3,3) * 2) /4 прибл. равно 3,3025.

1: 0,9 * (8,8 + 1,5), потому что гамма 0,9, r = 0, если агент не находится вне сетки и не переходит из особых состояний A или B, а v (s') составляет 8,8 и 1,5 для движения влево и вниз соответственно.

2: (-1 + 0,9 * 3,3) * 2, потому что r = -1, если агент выходит за пределы сетки (то есть движение влево или вверх), 0,9, потому что это гамма, 3,3, потому что v(s') = v(s), поскольку агент остается в своем предыдущем состоянии, если он выходит за пределы сетки. Умножьте на 2, потому что есть 2 возможности (движение влево/вверх), чтобы агент мог выйти за пределы сетки.

3: разделить сумму частей 1 и 2 на 1/4, потому что pi(a|s) = 1/4 для всех действий.

person Clement    schedule 22.09.2020
comment
Вот совместная работа, в которой я демонстрирую вычисления с использованием простого мира сетки: colab.research.google .com/драйв/ - person Yasserius; 26.09.2020