#machine-learning #tensorflow #deep-learning #reinforcement-learning #q-learning
#машинное обучение #тензорный поток #глубокое обучение #подкрепление-обучение #q-обучение
Вопрос:
Как я должен представлять свою функцию вознаграждения в Q-learning, если моя Q-функция аппроксимируется обычной нейронной сетью с прямой связью?
Должен ли я представлять ее в виде дискретных значений «близко», «очень близко» к цели и т. Д. Все, что меня беспокоит, это то, что до тех пор, пока я уже перешел к аппроксимации нейронной сетью Q-функции Q(s, a, θ)
и больше не использую таблицу поиска, буду ли я по-прежнему обязан также создавать таблицу вознаграждений?
Ответ №1:
Не существует такой вещи, как «таблица вознаграждений», вы должны определить «сигнал вознаграждения», который создается в заданном состоянии мира агентов в заданной временной метке. Это вознаграждение должно быть скаляром (числом). В общем, вы могли бы рассмотреть более сложные вознаграждения, но в типичной настройке Q-learning вознаграждение — это просто число, поскольку цель алгоритма — найти политику, которая максимизирует ожидаемые, суммированные, дисконтированные вознаграждения. Очевидно, вам нужен объект, который можно добавлять, умножать и, наконец, сравнивать, и эффективно такие объекты являются только числами (или могут быть непосредственно преобразованы в числа). Хорошо, сказав, что для вашего конкретного случая, если вы знаете расстояние до цели, вы можете назначить вознаграждение, которое обратно пропорционально расстоянию, оно может быть четным -distance
или 1/distance
(поскольку это гарантирует лучшее масштабирование).).
Комментарии:
1. Да, точно так же, как вы сказали, награда представляет собой число в виде текущего балла, сгенерированного из функции, учитывающей расстояние. Большое спасибо!