rlDDPGAgent

Глубоко детерминированный агент обучения с подкреплением градиента политики

Описание

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

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

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

Создание

Описание

пример

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

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

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

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

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

Свойства

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

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

Буфер опыта в виде ExperienceBuffer объект. Во время обучения агент хранит каждое из своих событий (S, A, R, S') в буфере. Здесь:

  • S является текущим наблюдением за средой.

  • A является мерами, принятыми агентом.

  • R является вознаграждением за принимающий меры A.

  • S' является следующим наблюдением после принимающего меры A.

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

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

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

Примеры

свернуть все

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

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

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

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

% create a network to be used as underlying critic approximator
statePath = imageInputLayer([obsInfo.Dimension(1) 1 1], 'Normalization', 'none', 'Name', 'state');
actionPath = imageInputLayer([numel(actInfo) 1 1], 'Normalization', 'none', 'Name', 'action');
commonPath = [concatenationLayer(1,2,'Name','concat')
             quadraticLayer('Name','quadratic')
             fullyConnectedLayer(1,'Name','StateValue','BiasLearnRateFactor', 0, 'Bias', 0)];
criticNetwork = layerGraph(statePath);
criticNetwork = addLayers(criticNetwork, actionPath);
criticNetwork = addLayers(criticNetwork, commonPath);
criticNetwork = connectLayers(criticNetwork,'state','concat/in1');
criticNetwork = connectLayers(criticNetwork,'action','concat/in2');

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

% create the critic based on the network approximator
critic = rlQValueRepresentation(criticNetwork,obsInfo,actInfo,...
    'Observation',{'state'},'Action',{'action'},criticOpts);

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

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

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

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

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

agentOpts = rlDDPGAgentOptions(...
    'SampleTime',env.Ts,...
    'TargetSmoothFactor',1e-3,...
    'ExperienceBufferLength',1e6,...
    'DiscountFactor',0.99,...
    'MiniBatchSize',32);
agent = rlDDPGAgent(actor,critic,agentOpts);

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

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

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

Введенный в R2019a