Установите представление актера агента обучения с подкреплением
Предположим, что у вас есть обученный агент обучения с подкреплением. В данном примере загружает обученного агента из Train DDPG Agent в систему Double Integrator.
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);
Создайте окружение с непрерывным пространством действий и получите его наблюдение и спецификации действия. В данном примере загружает окружение, используемую в примере Train DDPG Agent для управления системой Double Integrator System.
Загрузите предопределённое окружение.
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 и Train с использованием наблюдений изображений.
В данном примере код для создания измененных сетей актёра и критика находится в createModifiedNetworks.m.
createModifiedNetworks
Каждая из измененных сетей включает дополнительную fullyConnectedLayer и reluLayer в их выходном пути. Просмотр измененной сети актёра.
plot(modifiedActorNet)

После экспорта сетей вставьте сети в представления актёра и критика.
actor = setModel(actor,modifiedActorNet); critic = setModel(critic,modifiedCriticNet);
Наконец, вставьте измененные представления актёра и критика в объекты актёра и критика.
agent = setActor(agent,actor); agent = setCritic(agent,critic);
oldAgent - Агент обучения с подкреплениемrlDDPGAgent | объекта rlTD3Agent | объекта rlPGAgent | объекта rlACAgent | объекта rlPPOAgent объектАгент обучения с подкреплением, который содержит представление актера, заданное как одно из следующего:
rlDDPGAgent объект
rlTD3Agent объект
rlACAgent объект
rlPGAgent объект
rlPPOAgent объект
rlSACAgent объект
actor - Представление актераrlDeterministicActorRepresentation | объекта rlStochasticActorRepresentation объектОбъект представления актера, заданный как один из следующих:
rlDeterministicActorRepresentation объект - Задайте, когда agent является rlDDPGAgent или rlTD3Agent объект
rlStochasticActorRepresentation объект - Задайте, когда agent является rlACAgent, rlPGAgent, или rlPPOAgent объект
Входы и выход слои заданного представления должны совпадать с наблюдением и спецификациями действия исходного агента.
Чтобы создать представление политики или функции ценности, используйте один из следующих методов:
Создайте представление с помощью соответствующего объекта представления.
Получите существующее представление политики от агента, используя getActor.
newAgent - Обновленный агент обучения с подкреплениемrlDDPGAgent | объекта rlTD3Agent | объекта rlPGAgent | объекта rlACAgent | объекта rlPPOAgent объектОбновленный агент обучения с подкреплением, возвращенный как объект агента, который использует указанное представление актера. Помимо представления актера, новый агент имеет то же строение, что и oldAgent.
getActor | getCritic | getLearnableParameters | getModel | setCritic | setLearnableParameters | setModel
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.