0

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

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

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

ответ

2

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

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

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

Чтобы понять задержанную награду, возможно, взгляните на formula. Q-learning formula Как вы можете видеть, значение 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-значение в момент времени шага т с отсроченным вознаграждением.

# @ 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)) 

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

+0

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

+0

@ Zhongyu Kuang. –

+0

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