exponenta event banner

Агенты SARSA

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

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

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

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

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

КритикАктер

Критик Q (S, A) функции Q-value, созданный с помощьюrlQValueRepresentation

Агенты SARSA не используют актера.

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

Критическая функция

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

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

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

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

Для создания агента SARSA:

  1. Создание критика с помощью rlQValueRepresentation объект.

  2. Укажите параметры агента с помощью rlSARSAAgentOptions объект.

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

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

Агенты SARSA используют следующий алгоритм обучения. Чтобы настроить алгоритм обучения, укажите параметры с помощью rlSARSAAgentOptions объект.

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

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

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

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

      A = argmaxAQ (S, A)

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

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

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

      2. Выберите действие A ', следуя политике из состояния S'.

        A '= maxA' Q (S ', A')

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

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

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

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

        ΔQ = y Q (S, A)

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

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

        Укажите скорость обучения при создании критического представления, установив LearnRate опции в rlRepresentationOptions объект.

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

      7. Установите действие A в A '.

См. также

|

Связанные темы