Отрицательное вознаграждение в обучении подкреплению - PullRequest
0 голосов
/ 19 февраля 2019

Я не могу обернуться вопросом: как именно отрицательные награды помогают машине избежать их?

Происхождение вопроса пришло от решения Google для игры Pong .По их логике, когда игра закончена (агент выиграл или потерял очко), окружение возвращает награду (+1 или -1).Любые промежуточные состояния возвращают 0 в качестве награды.Это означает, что каждый выигрыш / проигрыш будет возвращать либо [0,0,0, ..., 0,1] либо [0,0,0, ..., 0, -1] массивы вознаграждений.Затем они дисконтируют и стандартизируют вознаграждения:

#rwd - array with rewards (ex. [0,0,0,0,0,0,1]), args.gamma is 0.99
prwd = discount_rewards(rwd, args.gamma)
prwd -= np.mean(prwd)
prwd /= np.std(prwd)

discount_rewards предполагают, что это какая-то стандартная функция, impl может быть , найденная здесь .Результат для победы (+1) может быть примерно таким:

[-1.487 , -0.999, -0.507, -0.010,  0.492, 0.999, 1.512]

Для лузов (-1):

[1.487 , 0.999, 0.507, 0.010,  -0.492, -0.999, -1.512]

В результате каждый ход получает вознаграждение,Их функция потерь выглядит следующим образом:

loss = tf.reduce_sum(processed_rewards * cross_entropies + move_cost)

Пожалуйста, помогите мне ответить на следующие вопросы:

  1. Функция перекрестной энтропии может выдавать выходные данные от 0 -> инф.Правильно?
  2. Оптимизатор Tensorflow минимизирует потери по абсолютной величине (не заботится о знаке, идеальная потеря всегда равна 0).Правильно?
  3. Если утверждение 2 верно, тогда потери 7.234 столь же плохи, как -7.234.Правильно?
  4. Если все перечисленное верно, то как отрицательное вознаграждение говорит машине, что оно плохое, а положительное говорит машине, что это хорошо?

Я также прочитал этот ответ , однако мне так и не удалось понять, , почему именно негатив хуже положительного .Для меня более разумно иметь что-то вроде:

loss = tf.reduce_sum(tf.pow(cross_entropies, reward))

Но этот эксперимент не удался.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019
  1. Функция перекрестной энтропии может выдавать выходные данные от 0 -> инф.Правильно?

Да, только потому, что мы умножаем его на -1.Думая о естественном знаке журнала (р).Поскольку p - это вероятность (то есть между 0 и 1), log (p) варьируется от (-inf, 0].

Оптимизатор Tensorflow минимизирует потери по абсолютной величине (не заботится о знаке, идеальная потеря всегда равна 0).Правильно?

Нет, знак имеет значение.Он суммирует все потери с их неповрежденными знаками.

Если утверждение 2 верное, тогда потеря 7.234 так же плоха, как и -7.234.Правильно?

См. Ниже, потеря 7,234 намного лучше, чем потеря -7,234 с точки зрения увеличения вознаграждения.Общая положительная потеря указывает на то, что наш агент принимает ряд правильных решений.

Если все перечисленное верно, то как отрицательное вознаграждение говорит машине, что оно плохое, а положительное говорит машине, что это хорошо?

Нормализация вознаграждений для получения отдачи при обучении подкреплению делает очень хорошее замечание, что подписанные награды предназначены для контроля размера градиента.Положительное / отрицательное вознаграждение выполняет «балансирование» для размера градиента.Это потому, что огромный уклон от большой потери может привести к значительному изменению веса.Таким образом, если ваш агент делает столько ошибок, сколько делает правильные шаги, общее обновление для этого пакета не должно быть большим.

0 голосов
/ 19 февраля 2019

"Оптимизатор Tensorflow минимизирует потери по абсолютной величине (не заботится о знаке, идеальная потеря всегда равна 0). Верно?"

Неверно.Минимизация потерь означает стремление достичь как можно меньшего значения.То есть -100 "лучше", чем 0. Соответственно, -7.2 лучше, чем 7.2.Таким образом, значение 0 действительно не имеет особого значения, кроме того факта, что многие функции потерь настроены так, что 0 определяет «оптимальное» значение.Однако эти функции потерь обычно устанавливаются неотрицательными, поэтому вопрос о положительных и отрицательных значениях не возникает.Примерами являются кросс-энтропия, квадратичная ошибка и т. Д.

...