Установите вычислительную модель для представления политики или функции ценности
Создайте окружение с непрерывным пространством действий и получите его наблюдение и спецификации действия. В данном примере загружает окружение, используемую в примере 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);
oldRep
- Представление политики или функции ценностиrlValueRepresentation
| объекта rlQValueRepresentation
| объекта rlDeterministicActorRepresentation
| объекта rlStochasticActorRepresentation
объектПредставление политики или функции ценности, заданное как одно из следующего:
rlValueRepresentation
объект - Представление функции ценности
rlQValueRepresentation
объект - представление функции Q-значения
rlDeterministicActorRepresentation
объект - Представление актера с детерминированными действиями
rlStochasticActorRepresentation
объект - Представление актера с стохастическими действиями
Чтобы создать представление политики или функции ценности, используйте один из следующих методов.
model
- Вычислительная модельLayer
объекты | layerGraph
| объекта DAGNetwork
| объекта dlnetwork
| объекта rlTable
Объект | ячеек 1 на 2Вычислительная модель, заданная как одно из следующего:
Глубокая нейронная сеть, заданная как массив Layer
объекты, а 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.