rlQAgent

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

Описание

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

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

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

Создание

Описание

пример

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

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

развернуть все

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

Свойства

развернуть все

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

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

trainОбучите агента обучения с подкреплением в заданной среде
simСимулируйте обученного агента обучения с подкреплением в заданной среде
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