Вопросы о глубоком Q-Learning

Я прочитал несколько материалов о глубоком q-обучении и не уверен, что понимаю его полностью. Из того, что я узнал, похоже, что Deep Q-Learning быстрее вычисляет Q-значения, чем помещает их в таблицу, используя NN для выполнения регрессии, вычисления потерь и обратного распространения ошибки для обновления весов. Затем, в сценарии тестирования, требуется состояние, и NN будет возвращать несколько значений Q для каждого действия, возможного для этого состояния. Затем будет выбрано действие с наивысшим значением Q, которое будет выполнено в этом состоянии.

Мой единственный вопрос - как обновляются веса. Согласно этому сайту веса обновляются следующим образом:

введите описание изображения здесь

Я понимаю, что веса инициализируются случайным образом, R возвращается средой, гамма и альфа устанавливаются вручную, но я не понимаю, как инициализируются и вычисляются Q (s ', a, w) и Q (s, a, w) . Кажется, что мы должны построить таблицу Q-значений и обновить их, как с Q-обучением, или они рассчитываются автоматически в каждую эпоху обучения NN? что я здесь не понимаю? может кто-нибудь лучше объяснить мне такое уравнение?


person mad    schedule 26.06.2019    source источник


Ответы (1)


В Q-Learning мы заинтересованы в изучении функции Q (s, a), которая является отображением между состоянием и всеми действиями. Скажем, у вас есть произвольное пространство состояний и пространство действий из 3 действий, каждое из этих состояний будет вычисляться для трех разных значений, каждое из которых является действием. В табличном Q-Learning это делается с помощью физической таблицы. Рассмотрим следующий случай:  введите описание изображения здесь

Здесь у нас есть таблица Q для каждого состояния в игре (вверху слева). И после каждого временного шага значение Q для этого конкретного действия обновляется в соответствии с некоторым сигналом вознаграждения. Сигнал вознаграждения может быть снижен на некоторое значение от 0 до 1.

В Deep Q-Learning мы игнорируем использование таблиц и создаем параметризованную «таблицу», например такую: Feed FOrward net Здесь все веса сформируют комбинации, указанные на входе, которые должны < strong> приблизительно соответствует значению в табличном случае (все еще активно исследуется).

Уравнение, которое вы представили, является правилом обновления Q-обучения, установленным в правиле обновления градиента.

  • альфа - размер шага
  • R - награда
  • Гамма - это фактор дисконтирования. Вы делаете вывод сети, чтобы получить значение «будущего состояния со скидкой» и вычесть его из «текущего» состояния. Если это неясно, я рекомендую вам поискать ускорение, которое в основном и происходит здесь.
person Per Arne Andersen    schedule 26.06.2019
comment
Спасибо за Ваш ответ. Я просто сомневаюсь, как инициализируются Q, обновляются ли они или просто вычисляются на каждом шаге алгоритма. - person mad; 26.06.2019
comment
Для табличного случая это можно сделать как угодно. Одним из способов было бы обновление для каждой пары s, a, s1, другим было бы ожидание, пока не будет достигнуто определенное количество временных шагов или когда наступит конечное состояние. На самом деле зависит от вас. Но самый простой - это одноступенчатый ТД. - person Per Arne Andersen; 27.06.2019
comment
Другой вопрос: расположены ли эти Q в таблице? или рассчитываются на лету? потому что, если первое верно, я не понимаю, почему DQN более эффективны, чем Q-обучение, поскольку также необходим этап построения большой таблицы. Еще раз спасибо! - person mad; 27.06.2019
comment
В табличном Q-Learning вам потребуется 1 строка с соответствующими катионами для каждого состояния в пространстве состояний. Теперь это легко и достаточно осуществимо для Gridworld и очень простых сред с небольшим количеством действий, но для пространств состояний, исчисляемых миллиардами, это становится трудным. Рассмотрим случай, когда у вас есть изображения 80x80x3 rgb в качестве состояния. Я могу сделать это неправильно, но это приведет к (80x80x3) ^ 255 различных комбинаций состояний, которые могут быть в вашей таблице. DQN не более эффективны, они лучше только в целом, потому что позволяют кодировать / обобщать большие таблицы (пространства состояний) - person Per Arne Andersen; 27.06.2019