setCritic

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

Описание

пример

newAgent = setActor(oldAgent,critic) возвращает нового агента обучения с подкреплением, newAgent, это использует заданное представление критика. Кроме представления критика, новый агент имеет ту же настройку как заданный исходный агент, oldAgent.

Примеры

свернуть все

Примите, что у вас есть существующий обученный агент обучения с подкреплением. В данном примере загрузите обученного агента от, Обучают Агента DDPG Управлять Двойной Системой Интегратора.

load('DoubleIntegDDPG.mat','agent') 

Получите представление критика от агента.

critic = getCritic(agent);

Получите learnable параметры от критика.

params = getLearnableParameterValues(critic);

Измените значения параметров. В данном примере просто умножьте все параметры 2.

modifiedParams = cellfun(@(x) x*2,params,'UniformOutput',false);

Установите значения параметров критика к новым модифицированным значениям.

critic = setLearnableParameterValues(critic,modifiedParams);

Установите критика в агенте новому модифицированному критику.

agent = setCritic(agent,critic);

Примите, что у вас есть существующий агент обучения с подкреплением, agent.

Далее, примите, что этот агент имеет представление критика, которое содержит следующую структуру глубокой нейронной сети.

originalCritic = [
        imageInputLayer([4 1 1],'Normalization','none','Name','state')
        fullyConnectedLayer(1,'Name','CriticFC')];

Создайте представление агента с дополнительным полносвязным слоем.

criticNetwork = [
        imageInputLayer([4 1 1],'Normalization','none','Name','state')
        fullyConnectedLayer(3,'Name','x');
        fullyConnectedLayer(1,'Name','CriticFC')];
critic = rlRepresentation(criticNetwork,'Observation',{'state'},...
    getObservationInfo(env));

Установите представление критика агента новому увеличенному критику.

agent = setCritic(critic);

Примите, что у вас есть существующий агент PG, agent, с базовым представлением критика. Можно удалить базового критика из агента с помощью setCritic.

agent = setCritic(agent,[]);

Когда вы удаляете базового критика таким образом, UseBaseline опция агента автоматически установлена в false.

Примите, что у вас есть существующий агент PG, agent, без базового представления критика. Можно добавить базового критика в агента с помощью setCritic.

Во-первых, создайте представление критика, приняв, что у вас есть существующая сеть критика, criticNetwork.

baseline = rlRepresentation(criticNetwork,'Observation',{'state'},...
    getObservationInfo(env));

Затем установите критика в агенте.

agent = setCritic(agent,baseline);

Когда вы добавляете базового критика таким образом, UseBaseline опция агента автоматически установлена в true.

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

свернуть все

Исходный агент обучения с подкреплением, который содержит представление критика, заданное как одно из следующего:

Объект представления критика, возвращенный как одно из следующего:

  • rlLayerRepresentation объект для представлений глубокой нейронной сети

  • rlTableRepresentation объект для таблицы значения или представлений Q-таблицы

Чтобы создать представление критика, используйте один из следующих методов:

  • Создайте представление с помощью rlRepresentation.

  • Получите существующее представление критика от агента с помощью getCritic

Выходные аргументы

свернуть все

Обновленный агент обучения с подкреплением, возвращенный как агент, возражает, что использует заданное представление критика. Кроме представления агента, новый агент имеет ту же настройку как oldAgent.

Введенный в R2019a

Для просмотра документации необходимо авторизоваться на сайте