rlACAgent

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

Описание

Агенты критика агента (AC) реализуют алгоритмы критика агента, такие как A2C и A3C, которые без моделей, онлайн, методы обучения с подкреплением на политике. Цель этого агента состоит в том, чтобы оптимизировать политику (агент) непосредственно и обучить критика оценивать возврат или будущие вознаграждения.

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

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

Создание

Описание

пример

agent = rlACAgent(actor,critic,agentOptions) создает агента критика агента с заданным агентом и сетями критика и устанавливает AgentOptions свойство.

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

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

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

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

Свойства

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

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

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

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

Примеры

свернуть все

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

env = rlPredefinedEnv("CartPole-Discrete");
obsInfo = getObservationInfo(env);
actInfo = getActionInfo(env);

Создайте представление критика.

% create the network to be used as approximator in the critic
criticNetwork = [
    imageInputLayer([4 1 1],'Normalization','none','Name','state')
    fullyConnectedLayer(1,'Name','CriticFC')];

% set some options for the critic
criticOpts = rlRepresentationOptions('LearnRate',8e-3,'GradientThreshold',1);

% create the critic
critic = rlValueRepresentation(criticNetwork,obsInfo,'Observation',{'state'},criticOpts);

Создайте представление актера.

% create the network to be used as approximator in the actor
actorNetwork = [
    imageInputLayer([4 1 1],'Normalization','none','Name','state')
    fullyConnectedLayer(2,'Name','action')];

% set some options for the actor
actorOpts = rlRepresentationOptions('LearnRate',8e-3,'GradientThreshold',1);

% create the actor
actor = rlStochasticActorRepresentation(actorNetwork,obsInfo,actInfo,...
    'Observation',{'state'},actorOpts);

Задайте опции агента и создайте агента AC с помощью среды, агента и критика.

agentOpts = rlACAgentOptions('NumStepsToLookAhead',32,'DiscountFactor',0.99);
agent = rlACAgent(actor,critic,agentOpts)
agent = 
  rlACAgent with properties:

    AgentOptions: [1x1 rl.option.rlACAgentOptions]

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

getAction(agent,{rand(4,1)})
ans = -10

Можно теперь протестировать и обучить агента против среды.

Введенный в R2019a