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);

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

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

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

oldActorNetwork = [
        imageInputLayer([2 1 1],'Normalization','none','Name','state')
        fullyConnectedLayer(1,'Name','action')];

Создайте новую сеть с дополнительным полностью связанным скрытым слоем:

newActorNetwork = [
        imageInputLayer([2 1 1],'Normalization','none','Name','state')
        fullyConnectedLayer(3,'Name','hidden');
        fullyConnectedLayer(1,'Name','action')];

Создайте соответствующее представление актера:

actor = rlDeterministicActorRepresentation(newActorNetwork,...
    getObservationInfo(agent),getActionInfo(agent),...
    'Observation',{'state'},...
    'Action',{'action'})
actor = 
  rlDeterministicActorRepresentation with properties:

         ActionInfo: [1x1 rl.util.rlNumericSpec]
    ObservationInfo: [1x1 rl.util.rlNumericSpec]
            Options: [1x1 rl.option.rlRepresentationOptions]

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

agent = setActor(agent,actor);

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

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

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

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

свернуть все

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

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

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

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

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

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

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

свернуть все

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

Введенный в R2019a