Почему актерский проигрыш для актера-критика умножается на -1?Python

Программы на Python
Anonymous
Почему актерский проигрыш для актера-критика умножается на -1?

Сообщение Anonymous »

https://www.tensorflow.org/tutorials/re ... ritic_loss
В этом руководстве TensorFlow для метода Actor-Critic потери актера рассчитываются с помощью следующую формулу:

Код: Выделить всё

advantage = returns - values

action_log_probs = tf.math.log(action_probs)

actor_loss = -tf.math.reduce_sum(action_log_probs * advantage)
В описании говорится: «К сумме добавляется отрицательное слагаемое, поскольку идея состоит в том, чтобы максимизировать вероятность действий, приносящих более высокие вознаграждения, за счет минимизации совокупных потерь».
Насколько я понимаю, action_log_probs всегда имеет отрицательное значение.
Тогда формула меня смущает, потому что умножение tf.math.reduce_sum(action_log_probs * преимущество) значение -1 означает, что когда преимущество положительное, значение act_loss становится положительным. Предполагая, что чем выше преимущество, тем лучше, минимизация act_loss позволит скорректировать параметры так, чтобы минимизировать вероятность действий, приносящих более высокие награды.
Преимущество всегда отрицательно, и меньшее преимущество лучше?
Я запустил код и распечатал преимущество с помощью tf.print('advantage: ', Advantage), который показал, что преимущество всегда отрицательно.
Не могли бы вы объяснить, почему преимущество отрицательное и почему меньшее преимущество лучше?< /p>
Изображение рисунка, показывающего значения преимущества за последние 500 шагов финального эпизода.

Подробнее здесь: https://stackoverflow.com/questions/787 ... plied-by-1

Вернуться в «Python»