Как уменьшить выход нейронной сети, когда определенное действие не выполняется - PullRequest
3 голосов
/ 16 мая 2019

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

Например, моя сеть учится играть в игру, в которой выполняются 4 действия.Но есть определенное состояние, в котором действие 1 не может быть выполнено в среде, но значения Q в моей нейронной сети указывают мне, что действие 1 - это лучшее, что нужно сделать.Что мне делать в этой ситуации?

(Является ли выбор случайного действительного действия лучшим способом противодействия этой проблеме?)

1 Ответ

2 голосов
/ 20 мая 2019

Вы должны просто игнорировать недействительные действия и выбрать действие с самым высоким значением Q среди допустимых действий. Затем на шаге поезда вы либо умножаете Q-значения на one-hot-encode действий, либо используете gather_nd API, чтобы выбрать правильное Q-значение, чтобы получить потери и запустить обновление с одним градиентом. Другими словами, loss недействительных действий и всех других невыбранных действий предполагаются zero, а затем градиенты обновляются.

Таким образом, сеть постепенно учится увеличивать значение Q правильного действия, поскольку обновляется только градиент этого действия.

Надеюсь, это ответит на ваш вопрос.

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