rlQAgent

Агент обучения с подкреплением Q-обучения

Описание

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

Для получения дополнительной информации об агентах Q-обучения см. Раздел «Агенты Q-обучения».

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

Создание

Описание

пример

agent = rlQAgent(critic,agentOptions) создает агента Q-обучения с заданной сетью критика и устанавливает AgentOptions свойство.

Входные параметры

расширить все

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

Свойства

расширить все

Опции агента, заданные как rlQAgentOptions объект.

Функции объекта

trainОбучите агентов обучения с подкреплением в заданном окружении
simСимулируйте обученных агентов обучения с подкреплением в заданном окружении
getActionПолучите действие от агента или представления актера заданных наблюдений окружения
getActorПолучите представление актера от агента обучения с подкреплением
setActorУстановите представление актера агента обучения с подкреплением
getCriticПолучите представление критика от агента обучения с подкреплением
setCriticУстановите представление критика агента обучения с подкреплением
generatePolicyFunctionСоздайте функцию, которая оценивает обученную политику агента обучения с подкреплением

Примеры

свернуть все

Создайте интерфейс окружения.

env = rlPredefinedEnv("BasicGridWorld");

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

qTable = rlTable(getObservationInfo(env),getActionInfo(env));
critic = rlQValueRepresentation(qTable,getObservationInfo(env),getActionInfo(env));

Создайте агента Q-обучения с помощью заданной функции ценности критика и значения эпсилона 0.05.

opt = rlQAgentOptions;
opt.EpsilonGreedyExploration.Epsilon = 0.05;

agent = rlQAgent(critic,opt)
agent = 
  rlQAgent with properties:

    AgentOptions: [1x1 rl.option.rlQAgentOptions]

Чтобы проверить своего агента, используйте getAction, чтобы вернуть действие от случайного наблюдения.

getAction(agent,{randi(25)})
ans = 1

Теперь можно тестировать и обучать агента против окружения.

Введенный в R2019a