Частота обновления Q-learning

#machine-learning #dynamic-programming #reinforcement-learning #q-learning

#машинное обучение #динамическое программирование #подкрепление-обучение #q-learning

Вопрос:

В Q-learning, исходя из своего текущего состояния, агент выполняет действие на каждом дискретном временном шаге, и после выполнения действия агент получает немедленное вознаграждение за доступ к успеху или неудаче выполненного действия. Допустим, мы хотим контролировать скорость транспортного средства с помощью Q-learning, где действия являются целевыми скоростями, а цель агента — достичь стоп-линии (которая находится в 1 км от начальной точки) как можно быстрее.

1) Итак, в этом примере, нужно ли агенту выполнять действие на каждом дискретном временном шаге (1 сек), или агент может получать действие через каждые 100 м вместо каждого дискретного временного шага. Это обязательно для принятия мер на каждом дискретном временном шаге?

2) что подразумевается под отложенным вознаграждением в Q-learning? является ли это обновлением вознаграждения, как только агент достигает цели, вместо обновления вознаграждения после выполнения каждого действия на каждом временном шаге? Заранее спасибо 🙂

Ответ №1:

1) должен ли агент предпринимать действия на каждом дискретном временном шаге (1 сек), или агент может получать действие через каждые 100 м вместо каждого дискретного временного шага. Это обязательно для принятия мер на каждом дискретном временном шаге?

Я думаю, вы, возможно, путаете концепцию временного шага в Q-learning с нашей физической реализацией времени. В Q-learning каждый временной шаг — это время, когда наступает очередь агента сделать ход / предпринять действие. Итак, если игра в шахматы, то каждый временной шаг будет тогда, когда игроку пора играть. Итак, как часто ваш агент может выполнять действие, определяется правилами игры. В вашем примере мне не совсем ясно, каковы правила «игры»? Если в правилах указано, что агент может выбирать действие каждые 1 «секунду», то агент должен будет следовать этому. Если вы считаете, что это слишком часто, вы можете посмотреть, является ли «Нет» доступным вариантом действия для агента или нет.

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

Чтобы понять отложенное вознаграждение, возможно, поможет взглянуть на формулу.Формула Q-learning Как вы можете видеть, на значение Q на временном шаге t влияет не только старое значение Q и немедленное вознаграждение, но и «оцененное оптимальное будущее значение«. Это оцененное оптимальное значение (с настраиваемым коэффициентом скидки гиперпараметра) установлено для учета «отложенного вознаграждения».

Интуиция, лежащая в основе отложенного вознаграждения, заключается в том, что иногда одно действие может показаться плохим действием в данный момент (математически, совершив это действие, агент получил низкую немедленную награду или даже штраф), но каким-то образом это действие приводит к долгосрочной выгоде. Поместите это в свой пример, предположим, что агент находится в позиции P, есть два маршрута, чтобы добраться до стоп-линии. Один маршрут имеет прямое расстояние в 1 км, другой имеет небольшой крюк и имеет расстояние в 1,5 км. Агент выбирает маршрут протяженностью 1,5 км, возможно, он получит меньшую немедленную награду, чем выбор маршрута протяженностью 1 км. Давайте далее предположим, что на маршруте протяженностью 1,5 км ограничение скорости выше, чем на маршруте протяженностью 1 км, что фактически приводит агента к остановке быстрее, чем на маршруте протяженностью 1 км. Эта «будущая награда» является отложенной наградой, которую необходимо учитывать при вычислении значения Q (состояние в позиции P, действие по прохождению 1,5-километрового маршрута) на временном шаге t.

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

 # @ time step t
Q(st, at) = Q(st, at)   alpha * immedate_reward - alpha*Q(st, at)
  

Затем, после достижения временного шага t 1, я вернулся, чтобы обновить предыдущее значение Q на временном шаге t с отложенным вознаграждением.

 # @ time step t 1
Q(st 1, at 1) = Q(st 1, at 1)   alpha * immedate_reward - alpha*Q(st 1, at t)
Q(st, at) = Q(st, at)   alpha * gama * max(Q(st 1, a))
  

Я надеюсь, что это поможет прояснить и ответить на ваш вопрос…

Комментарии:

1. Большое вам спасибо за пояснения. Теперь я получил четкое представление о временном шаге обновления.

2. @ Zhongyu Kuang.

3. Что касается вознаграждения за задержку,

4. что касается отложенного вознаграждения, основное преимущество метода Q-learning is (методы TD) заключается в том, что вам не нужно знать значения вознаграждения за каждый переход. Итак, если я обновляю функцию Q-value после выполнения каждого действия с немедленной наградой и предполагаемым будущим оптимальным значением, не нарушает ли это фундаментальное преимущество Q-learning? Допустим, что вдоль lkm агент выполняет 5 действий (10 км / ч, 20 км / ч, 40 км / ч, 60 км / ч и 50 км / ч) .. так должен ли я ждать, пока агент достигнет целевого состояния, чтобы обновить функцию Q-value? Или я могу обновлять его сразу после выполнения каждого действия?

5. «Переход» и «состояние» — это разные понятия в обучении с подкреплением. «Переход» был бы функцией состояния @ time step t, а затем выполнял бы действие @ time step t, а затем переходил в другое состояние @ t 1. Однако, если вы посмотрите на функцию Q-learning, Q-value явно является функцией состояния и действия на временном шаге, ему все равно, в какое другое состояние вы попадаете после выполнения действия. В вашем примере вы должны обновлять Q-значение после выполнения каждого действия.