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