Каков принцип построения функции вознаграждения DQN? - PullRequest
0 голосов
/ 03 августа 2020

Я разрабатываю функцию вознаграждения модели DQN, самую сложную часть части глубокого обучения с подкреплением. Я сослался на несколько случаев и заметил, что обычно награда устанавливается в [-1, 1]. Учитывая, что отрицательное вознаграждение срабатывает меньше раз, более «разреженное» по сравнению с положительным вознаграждением, положительное вознаграждение может быть меньше 1.

Я sh, чтобы знать, почему я должен устанавливать, всегда старайтесь установить вознаграждение в этом диапазоне (иногда это может быть [0,1], иногда может быть [-1,0] или просто -1)? Какая теория или принцип лежит в основе диапазона?

Я прошел этот ответ ; в нем упоминалось, что установите 500 как положительное вознаграждение и -1, поскольку отрицательное вознаграждение разрушит сеть. Но как это разрушить модель?

Я смутно понимаю, что это коррелирует с градиентным спуском, и на самом деле имеет значение разрыв между наградами, а не знак или абсолютное значение. Но мне все еще не хватает четких подсказок, как он может разрушать и почему в таком диапазоне.

Кроме того, когда мне использовать награду вроде [0,1] или использовать только отрицательную награду? Я имею в виду, что в пределах заданного временного интервала оба метода, кажется, могут sh агенту найти наивысшее общее вознаграждение. Только в такой ситуации, как я хочу позволить агенту достичь конечной точки как можно скорее, отрицательное вознаграждение будет более подходящим, чем положительное.

Есть ли критерии для измерения разумности вознаграждения? Как использовать Суммируйте значение Q хорошего действия и плохого действия, оно симметрично, окончательное Q должно быть около нуля, что означает, что оно сходится?

1 Ответ

0 голосов
/ 06 августа 2020

Я хочу sh, чтобы знать, почему я должен устанавливать, всегда пытайтесь установить награду в этом диапазоне (иногда это может быть [0,1], иногда может быть [-1,0] или просто - 1)?

По сути, это то же самое, если вы определяете свою функцию вознаграждения в диапазоне [0,1] или [-1,0]. Это просто приведет к тому, что ваши значения действий будут положительными или отрицательными, но не повлияют на сходимость вашей нейронной сети.

Я прошел через этот ответ; в нем упоминалось, что установите 500 как положительное вознаграждение и -1, поскольку отрицательное вознаграждение разрушит сеть. Но как это разрушить модель?

Я не совсем согласен с ответом. Такая функция вознаграждения не «разрушит» модель, однако она не способна обеспечить сбалансированное положительное и отрицательное вознаграждение за действия агента. Это дает агенту стимул не взламывать sh, но не побуждает его отрезать оппонентов.

Кроме того, когда мне следует использовать вознаграждение вроде [0,1] или использовать только отрицательные вознаграждение?

Как упоминалось ранее, не имеет значения, используете ли вы положительное или отрицательное вознаграждение. Важна относительность вашей награды. Например, как вы сказали, если вы хотите, чтобы агент достиг конечного состояния как можно скорее, тем самым вводя отрицательные вознаграждения, он будет работать только в том случае, если во время эпизода не будет положительного вознаграждения. Если бы агент мог получить положительное вознаграждение в середине эпизода, у него не было бы стимула заканчивать эпизод как можно скорее. Следовательно, имеет значение относительность.

...