Глубокое подкрепление обучения - как бороться с границами в пространстве действий - PullRequest
0 голосов
/ 02 июля 2018

Я создал пользовательское подкрепление обучения environment и agent, которое похоже на игру в лабиринт.

В лабиринте есть 5 возможных действий: вверх, вниз, влево, вправо и остаться. Хотя в случае блокировки, например, агент не может подняться, тогда как люди проектируют env и agent для имитации этого?

Если быть точным, агент находится в текущем состоянии s0, и по определению, предпринимая действия вниз, влево и вправо, изменит состояние на некоторые другие значения с немедленным вознаграждением (> 0, если на выходе). Один из возможных подходов заключается в том, что при выполнении действия up состояние останется на уровне s0, а наградой будет большое отрицательное число. В идеале агент узнает это и никогда больше не пойдет up в этом состоянии.

Однако мой агент, похоже, не учится этому. Вместо этого это все еще идет up. Другой подход заключается в том, чтобы жестко закодировать агент и среду, в которых агент не сможет выполнить действие up, когда на s0 я могу подумать:

  1. когда в каком-то состоянии, когда up не разрешено, мы смотрим на значения Q различных действий
  2. выберите действие с наибольшим значением Q, кроме up
  3. следовательно, агент никогда не выполнит недопустимое действие

Я спрашиваю, возможен ли вышеуказанный подход? Будут ли какие-либо проблемы, связанные с этим? Или есть лучший дизайн для борьбы с граничными и недействительными действиями?

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

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

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

Надеюсь, это может помочь.

0 голосов
/ 02 июля 2018

Я бы сказал, что это должно работать (но даже лучше, чем пытаться угадать Это). Другие вопросы: какое состояние может наблюдать ваш агент? Вы делаете награду отсечения?

С другой стороны, если ваш агент не научился избегать столкновения со стенами, в вашей обучающей программе может возникнуть другая проблема (возможно, есть ошибка в функции вознаграждения?)

Обрезка в жестком коде Действия могут привести к поведению, которое вы хотите увидеть, но оно, безусловно, снижает общую производительность вашего агента.

Что вы реализовали? Если это еще не сделано, было бы неплохо принять во внимание повтор опыта.

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