rlPGAgent

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

Описание

Алгоритм градиента политики (PG) является онлайновым, методом обучения с подкреплением на политике без моделей. Агент PG является основанным на политике агентом обучения с подкреплением, который непосредственно вычисляет оптимальную политику, которая максимизирует долгосрочное вознаграждение.

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

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

Создание

Описание

agent = rlPGAgent(actor) создает агента PG с заданной сетью агента. По умолчанию, UseBaseline свойством агента является false в этом случае.

agent = rlPGAgent(actor,critic) создает агента PG с заданным агентом и сетями критика. По умолчанию, UseBaseline опцией является true в этом случае.

пример

agent = rlPGAgent(___,agentOptions) создает агента PG и устанавливает AgentOptions свойство.

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

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

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

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

Свойства

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

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

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

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

Примеры

свернуть все

Создайте интерфейс среды.

% load predefined environment
env = rlPredefinedEnv("DoubleIntegrator-Discrete");

% get observation and specification info
obsInfo = getObservationInfo(env);
actInfo = getActionInfo(env);

Создайте представление критика, чтобы использовать в качестве базовой линии.

% create a network to be used as underlying critic approximator
baselineNetwork = [
    imageInputLayer([obsInfo.Dimension(1) 1 1], 'Normalization', 'none', 'Name', 'state')
    fullyConnectedLayer(8, 'Name', 'BaselineFC')
    reluLayer('Name', 'CriticRelu1')
    fullyConnectedLayer(1, 'Name', 'BaselineFC2', 'BiasLearnRateFactor', 0)];

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

% create the critic based on the network approximator
baseline = rlValueRepresentation(baselineNetwork,obsInfo,'Observation',{'state'},baselineOpts);

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

% create a network to be used as underlying actor approximator
actorNetwork = [
    imageInputLayer([obsInfo.Dimension(1) 1 1], 'Normalization', 'none', 'Name', 'state')
    fullyConnectedLayer(numel(actInfo.Elements), 'Name', 'action', 'BiasLearnRateFactor', 0)];

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

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

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

agentOpts = rlPGAgentOptions(...
    'UseBaseline',true, ...
    'DiscountFactor', 0.99);
agent = rlPGAgent(actor,baseline,agentOpts)
agent = 
  rlPGAgent with properties:

    AgentOptions: [1x1 rl.option.rlPGAgentOptions]

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

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

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

Введенный в R2019a