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

Не могли бы вы помочь мне решить эту проблему:

Насколько нам известно, функция вознаграждения является важнейшим компонентом обучения подкреплению.Но редкое вознаграждение (такое как r∈ {+1, -1}) не могло получить быструю сходимость.Поэтому я стараюсь использовать непрерывную функцию в качестве своей функции вознаграждения, функцию вознаграждения мягкого шага.Ниже приведена оригинальная функция вознаграждения , которая взята из статьи, опубликованной OpenAI о HalfCheetah .

# original reward function
r = 0 , if x ≤ 0
r = 2 * x^2, if 0 < x ≤ 0.5
r = 1 - 2(x - 1)^2, if 0.5 < x ≤ 1
r = 1, if x > 1 

ps ^ означаетpower

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

# modified reward function
r = -1, when x ≤ -0.1
r = 0,  when -0.1 ≤ x ≤ 0.1
r = 2 * x^2, when 0.1 < x ≤ 0.5
r = 1 - 2(x - 1)^2, when 0.5 < x ≤ 1
r = 1, when x > 1 

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

Не могли бы вы сказать, почему модифицированная функция вознаграждения стала хуже работать?

А как мне оформить действительное вознаграждение, если я хочу назначить отрицательное наказание агенту?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...