Агенты Q-обучения

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

Для получения дополнительной информации о различных типах агентов обучения с подкреплением смотрите Агентов Обучения с подкреплением.

Агенты Q-обучения могут быть обучены в средах со следующим наблюдением и пространствами действий.

Пространство наблюденийПространство действий
Непрерывный или дискретныйДискретный

Q агенты используют следующее представление критика.

КритикАгент

Критик Q (S, A), Q-функции-ценности, который вы создаете использование rlQValueRepresentation

Q агенты не используют агента.

Во время обучения агент исследует пространство действий с помощью эпсилон-жадного исследования. Во время каждого контрольного интервала агент выбирает случайное действие с вероятностью ϵ, в противном случае это выбирает действие жадно относительно функции ценности с вероятностью 1-ϵ. Это жадное действие является действием, для которого функция ценности является самой большой.

Функция критика

Для подсчёта функции ценности агент Q-обучения обеспечивает критика Q (S, A), который является таблицей или функциональной аппроксимацией. Критик берет наблюдение S и действие A как входные параметры и возвращает соответствующее ожидание долгосрочного вознаграждения.

Для получения дополнительной информации о создании критиков для приближения функции ценности смотрите, Создают Представления Функции ценности и политика.

Когда обучение завершено, настроенная функциональная аппроксимация хранится в критике Q (S, A).

Создание агента

Создать агента Q-обучения:

  1. Создайте критика, использующего rlQValueRepresentation объект.

  2. Задайте опции агента с помощью rlQAgentOptions объект.

  3. Создайте агента с помощью rlQAgent объект.

Алгоритм обучения

Агенты Q-обучения используют следующий алгоритм настройки. Чтобы сконфигурировать алгоритм настройки, задайте опции с помощью rlQAgentOptions объект.

  • Инициализируйте критика Q (S, A) со случайными значениями.

  • Для каждого эпизода обучения:

    1. Установите начальное наблюдение S.

    2. Повторите следующее для каждого шага эпизода, пока S не будет конечным состоянием.

      1. Для текущего наблюдения S выберите случайное действие A с вероятностью ϵ. В противном случае выберите действие, для которого функция ценности критика является самой большой.

        A=argmaxAQ(S,A)

        Чтобы задать ϵ и его уровень затухания, используйте EpsilonGreedyExploration опция.

      2. Выполните действие A. Наблюдайте вознаграждение R и следующее наблюдение S'.

      3. Если S' является конечным состоянием, поставьте цель функции ценности y к R. В противном случае установите его на

        y=R+γmaxAQ(S',A)

        Чтобы установить коэффициент дисконтирования γ, используйте DiscountFactor опция.

      4. Вычислите обновление параметра критика.

        ΔQ=yQ(S,A)

      5. Обновите критика, использующего скорость обучения α.

        Q(S,A)=Q(S,A)+αΔQ

        Задайте скорость обучения при создании представления критика путем установки LearnRate опция в rlRepresentationOptions объект.

      6. Установите наблюдение S на S'.

Смотрите также

|

Похожие темы