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

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

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

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


person D_Wills    schedule 19.10.2016    source источник


Ответы (1)


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

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

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

Чтобы понять отложенное вознаграждение, возможно, вам поможет формула.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))

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

person Zhongyu Kuang    schedule 19.10.2016
comment
Большое спасибо за пояснения. Теперь я получил четкое представление о шаге времени обновления. - person D_Wills; 19.10.2016
comment
@ Чжунъюй Куан. - person D_Wills; 19.10.2016
comment
Что касается вознаграждения за задержку, - person D_Wills; 19.10.2016
comment
Что касается отложенного вознаграждения, основным преимуществом метода Q-обучения (методы TD) является то, что вам не нужно знать значения вознаграждения для каждого перехода. Итак, если я обновляю функцию Q-ценности после выполнения каждого действия с немедленным вознаграждением и предполагаемой будущей оптимальной ценностью, не нарушает ли это фундаментальное преимущество Q-обучения? Допустим, вдоль lkm агент получает 5 действий (10 км/ч, 20 км/ч, 40 км/ч, 60 км, ч и 50 км/ч).. так что я должен подождать, пока агент не достигнет целевого состояния, чтобы обновить значение Q функция? Или я могу обновить его сразу после выполнения каждого действия? - person D_Wills; 19.10.2016
comment
Переход и состояние — разные понятия в обучении с подкреплением. Переход будет функцией состояния на временном шаге t, затем будет выполнено действие на временном шаге t, а затем произойдет переход в другое состояние на @t+1. Однако, если вы посмотрите на функцию Q-обучения, Q-значение явно является функцией состояния и действия на временном шаге, и не важно, в какое другое состояние вы попадете после выполнения действия. В вашем примере вы должны обновлять Q-значение после выполнения каждого действия. - person Zhongyu Kuang; 19.10.2016
comment
Предположим, вы инициализируете все Q(состояние, действие) значением 1, после выполнения действия 60 км/ч на временном шаге 0 вы обновляете Q(состояние0, действие0) с помощью Q(состояние0, действие0) + alpha * immedate_reward - alpha Q(состояние0, действие0). Это действие переводит агента в другое состояние1 на временном шаге 1. Затем вы делаете две вещи. (1) Вы обновляете Q(state1, action1) = Q(state1, action1) + alpha * immedate_reward - alphaQ(state1, action1). (2) теперь вы можете оценить оптимальные будущие значения для предыдущего Q (state0, action0). Это может показаться нелогичным, но помните, что метод предполагает, что агент посещает каждое состояние бесконечное количество раз. - person Zhongyu Kuang; 19.10.2016
comment
Следовательно, после бесконечного посещения состояния 0 у вас будет набор Q-значений в этом состоянии, соответствующих выполнению набора различных действий. И b/z Q-значение приняло во внимание отсроченное вознаграждение, к которому каждое действие приведет вас в будущем, этот член max(Q(st+1, a)) в формуле становится все более и более точной оценкой долгосрочная прибыль (конечно, при условии, что вы правильно настроили коэффициент дисконтирования) - person Zhongyu Kuang; 19.10.2016