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

После экспорта сетей вставьте их в представление актера и критика.
actor = setModel(actor,modifiedActorNet); critic = setModel(critic,modifiedCriticNet);
Наконец, вставьте измененные представления актера и критика в объекты актера и критика.
agent = setActor(agent,actor); agent = setCritic(agent,critic);
oldRep - Представление функции политики или значенияrlValueRepresentation объект | rlQValueRepresentation объект | rlDeterministicActorRepresentation объект | rlStochasticActorRepresentation объектПредставление функции политики или значения, указанное как одно из следующих значений:
rlValueRepresentation object - Представление функции Value
rlQValueRepresentation object - представление функции Q-value
rlDeterministicActorRepresentation object - Представление актера с детерминированными действиями
rlStochasticActorRepresentation object - Представление актера со стохастическими действиями
Чтобы создать представление политики или функции значения, используйте один из следующих методов.
model - Вычислительная модельLayer объекты | layerGraph объект | DAGNetwork объект | dlnetwork объект | rlTable объект | массив ячеек «1 на 2»Вычислительная модель, заданная как одна из следующих:
Глубокая нейронная сеть, определяемая как массив Layer объекты, a layerGraph объект, a DAGNetwork объект или dlnetwork объект. Входной и выходной уровни model должны иметь те же имена и размеры, что и сеть, возвращенная getModel для того же представления. Здесь выходной уровень является уровнем непосредственно перед выходным уровнем потерь.
rlTable объект с теми же размерами, что и табличная модель, определенная в newRep.
Массив ячеек 1 на 2, содержащий дескриптор функции для пользовательской базисной функции и параметры базисной функции.
При указании новой модели необходимо использовать тот же тип модели, что и уже определенная в newRep.
Примечание
Для агентов с несколькими критиками, таких как агенты TD3 и SAC, необходимо вызвать setModel для каждого критического представления по отдельности, а не для вызова setModel для массива, возвращенного getCritic.
critics = getCritic(myTD3Agent);
% Modify critic networks.
critics(1) = setModel(critics(1),criticNet1);
critics(2) = setModel(critics(2),criticNet2);
myTD3Agent = setCritic(myTD3Agent,critics);
newRep - Новая политика или представление функции значенияrlValueRepresentation | rlQValueRepresentation | rlDeterministicActorRepresentation | rlStochasticActorRepresentationНовое представление политики или функции значения, возвращаемое как объект представления того же типа, что и oldRep. Помимо новой вычислительной модели, newRep является таким же, как oldRep.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.