setActor

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

Описание

пример

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

Примеры

свернуть все

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

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

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

actor = getActor(agent);

Получите настраиваемые параметры из агента.

params = getLearnableParameters(actor);

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

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

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

actor = setLearnableParameters(actor,modifiedParams);

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

agent = setActor(agent,actor);

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

Загрузите предопределенную среду.

env = rlPredefinedEnv("DoubleIntegrator-Continuous")
env = 
  DoubleIntegratorContinuousAction with properties:

             Gain: 1
               Ts: 0.1000
      MaxDistance: 5
    GoalThreshold: 0.0100
                Q: [2x2 double]
                R: 0.0100
         MaxForce: Inf
            State: [2x1 double]

Получите спецификации наблюдений и спецификации действия.

obsInfo = getObservationInfo(env);
actInfo = getActionInfo(env);

Создайте агента PPO из спецификаций наблюдений среды и спецификаций действия.

agent = rlPPOAgent(obsInfo,actInfo);

Чтобы изменить глубокие нейронные сети в агенте обучения с подкреплением, необходимо сначала извлечь представления актёра и критика.

actor = getActor(agent);
critic = getCritic(agent);

Извлеките глубокие нейронные сети от обоих представления актёра и критика.

actorNet = getModel(actor);
criticNet = getModel(critic);

Чтобы просмотреть сеть, используйте plot функция. Например, просмотрите сеть агента.

plot(actorNet)

Можно изменить агента и сети критика и сохранить их назад в агента. Чтобы изменить сети, можно использовать приложение Deep Network Designer. Открыть приложение для каждого объединяется в сеть, используйте следующие команды.

deepNetworkDesigner(criticNet)
deepNetworkDesigner(actorNet)

В Deep Network Designer измените сети. Например, можно добавить дополнительные слои в сеть. Когда вы измените сети, не изменяйте входные и выходные слои сетей, возвращенных getModel. Для получения дополнительной информации о создании сетей смотрите Сети Сборки с Deep Network Designer.

Чтобы экспортировать модифицированные структуры сети в рабочую область MATLAB®, сгенерируйте код для создания новых сетей и запустите этот код из командной строки. Не используйте опцию экспорта в Deep Network Designer. Для примера, который показывает, как сгенерировать и запустить код, смотрите, Создают Агента Используя Deep Network Designer и Обучаются Используя Наблюдения Изображений.

В данном примере код для создания модифицированного агента и сетей критика находится в createModifiedNetworks.m.

createModifiedNetworks

Каждая из модифицированных сетей включает дополнительный fullyConnectedLayer и reluLayer в их выходе path. Просмотрите модифицированную сеть агента.

plot(modifiedActorNet)

После экспорта сетей вставьте сети в представления актёра и критика.

actor = setModel(actor,modifiedActorNet);
critic = setModel(critic,modifiedCriticNet);

Наконец, вставьте модифицированные представления актёра и критика в объекты критика и агента.

agent = setActor(agent,actor);
agent = setCritic(agent,critic);

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

свернуть все

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

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

Входные и выходные слои заданного представления должны совпадать со спецификациями наблюдений и спецификациями действия исходного агента.

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

  • Создайте представление с помощью соответствующего объекта представления.

  • Получите существующее представление политики от использования агента getActor.

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

свернуть все

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

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