setCritic

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

Синтаксис

newAgent = setActor(oldAgent,critic)

Описание

пример

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

Примеры

свернуть все

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

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

critic = getCritic(agent);

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

params = getLearnableParameters(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

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