Давайте предположим, что мы находимся в комнате, где наш агент может двигаться вдоль осей xx и yy. В каждой точке он может двигаться вверх, вниз, вправо и влево. Таким образом, наше пространство состояний может быть определено как (x, y), а наши действия в каждой точке заданы (вверх, вниз, вправо, влево). Давайте предположим, что когда наш агент выполняет действие, которое заставит его ударить стену, мы дадим ему отрицательное вознаграждение -1, и вернем его в то состояние, в котором он был раньше. Если он находит в центре комнаты марионетку, он получает +10 к награде.
Когда мы обновляем наше QValue для данной пары состояние / действие, мы видим, какие действия можно выполнить в новом состоянии, и вычисляем, какое максимальное значение QValue можно получить, поэтому мы можем обновить наши Q (s). , а) значение для нашего текущего состояния / действия. Это означает, что если у нас есть целевое состояние в точке (10, 10), то все состояния вокруг него будут иметь QValue, который будет немного меньше и меньше по мере того, как они будут дальше. Теперь, по отношению к стенам, мне кажется, что это не так.
Когда агент попадает в стену (предположим, что он находится в позиции (0, 0) и выполнил действие ВВЕРХ), он получит за это состояние / действие вознаграждение -1, получая, таким образом, QValue -1.
Теперь, если позже я нахожусь в состоянии (0, 1) и предполагаю, что все другие действия состояния (0,0 0) равны нулю, при вычислении значения QValue (0, 1) для действия ВЛЕВО, это будет вычислено следующим образом:
Q([0,1], LEFT) = 0 + gamma * (max { 0, 0, 0, -1 } ) = 0 + 0 = 0
Это означает, что попадание в стену не распространяется на соседние состояния, в отличие от того, что происходит, когда у вас есть положительные состояния вознаграждения.
В моей оптике это кажется странным. Сначала я думал, что найти пары «состояние / действие», дающие отрицательные награды, было бы в учебе так же хорошо, как и положительных, но из приведенного выше примера это утверждение, похоже, не соответствует действительности. Кажется, что в алгоритме есть предвзятость, учитывающая гораздо больше положительных наград, чем отрицательных.
Это ожидаемое поведение QLearning? Разве плохие награды не должны быть такими же важными, как положительные? Каковы «обходные пути» для этого?