Моделирование обученных агентов по обучению подкреплению в определенной среде
моделирует один или несколько агентов обучения усилению в среде, используя параметры моделирования по умолчанию.experience = sim(env,agents)
выполняет то же моделирование, что и предыдущий синтаксис.experience = sim(agents,env)
использует объект параметров моделирования env = sim(___,simOpts)simOpts. Используйте параметры моделирования, чтобы задать такие параметры, как количество шагов на моделирование или количество запускаемых моделирований. Используйте этот синтаксис после любого из входных аргументов в предыдущих синтаксисах.
Моделирование среды обучения усилению с помощью агента, настроенного для этой среды. В этом примере загрузите среду и агент, которые уже настроены. Среда представляет собой дискретную среду типа cart-pole, созданную с помощью rlPredefinedEnv. Агент является градиентом политики (rlPGAgent) агент. Дополнительные сведения о среде и агенте, используемых в этом примере, см. в разделе Подготовка агента PG к балансировке системы Cart-Pole.
rng(0) % for reproducibility load RLSimExample.mat env
env =
CartPoleDiscreteAction with properties:
Gravity: 9.8000
MassCart: 1
MassPole: 0.1000
Length: 0.5000
MaxForce: 10
Ts: 0.0200
ThetaThresholdRadians: 0.2094
XThreshold: 2.4000
RewardForNotFalling: 1
PenaltyForFalling: -5
State: [4x1 double]
agent
agent =
rlPGAgent with properties:
AgentOptions: [1x1 rl.option.rlPGAgentOptions]
Как правило, агент обучается с помощью train и моделируют среду для проверки эффективности обучаемого агента. В этом примере смоделируйте среду с помощью загруженного агента. Настройте параметры моделирования, указав, что моделирование выполняется в течение 100 шагов.
simOpts = rlSimulationOptions('MaxSteps',100);Для предварительно определенной среды cart-pole, используемой в этом примере. вы можете использовать plot для создания визуализации системы тележек. При моделировании среды этот график обновляется автоматически, что позволяет наблюдать за развитием системы во время моделирования.
plot(env)

Моделирование среды.
experience = sim(env,agent,simOpts)

experience = struct with fields:
Observation: [1x1 struct]
Action: [1x1 struct]
Reward: [1x1 timeseries]
IsDone: [1x1 timeseries]
SimulationInfo: [1x1 struct]
Структура вывода experience записывает наблюдения, собранные из среды, действие и вознаграждение, а также другие данные, собранные во время моделирования. Каждое поле содержит timeseries объект или структура timeseries объекты данных. Например, experience.Action является timeseries содержащий действие, оказываемое агентом на систему тележек на каждом этапе моделирования.
experience.Action
ans = struct with fields:
CartPoleAction: [1x1 timeseries]
Смоделировать среду, созданную для модели Simulink ®, используемой в примере Обучение нескольких агентов выполнению совместной задачи, используя агентов, обученных этому примеру.
Загрузите агенты в рабочую область MATLAB ®.
load rlCollaborativeTaskAgentsСоздание среды для rlCollaborativeTask Модель Simulink ®, которая имеет два блока агентов. Поскольку агенты используются двумя блоками (agentA и agentB) уже находятся в рабочей области, для создания среды не требуется передавать их спецификации наблюдения и действий.
env = rlSimulinkEnv('rlCollaborativeTask',["rlCollaborativeTask/Agent A","rlCollaborativeTask/Agent B"]);
Загрузите параметры, необходимые для rlCollaborativeTask Запускаемая модель Simulink ®.
rlCollaborativeTaskParams
Имитация агентов против окружающей среды, сохранение опыта в xpr.
xpr = sim(env,[agentA agentB]);
Постройте график действий обоих агентов.
subplot(2,1,1); plot(xpr(1).Action.forces) subplot(2,1,2); plot(xpr(2).Action.forces)

env - Окружающая средаСреда, в которой действуют агенты, указанная как один из следующих видов объектов среды обучения усиления:
Предопределенная среда MATLAB ® или Simulink ®, созданная с помощьюrlPredefinedEnv. Этот вид среды не поддерживает одновременное обучение нескольких агентов.
Пользовательская среда MATLAB, создаваемая с помощью таких функций, как rlFunctionEnv или rlCreateEnvTemplate. Этот вид среды не поддерживает одновременное обучение нескольких агентов.
Пользовательская среда Simulink, создаваемая с помощью rlSimulinkEnv. Этот вид среды поддерживает одновременное обучение нескольких агентов.
Дополнительные сведения о создании и настройке сред см. в разделе:
Когда env - среда Simulink, вызывающая sim компилирует и моделирует модель, связанную с средой.
agents - АгентыАгенты для моделирования, указанные как объект усиливающего обучающего агента, например, rlACAgent или rlDDPGAgentили как массив таких объектов.
Если env - многоагентная среда, созданная с помощью rlSimulinkEnv, укажите агенты как массив. Порядок агентов в массиве должен соответствовать порядку агентов, используемому для создания env. Многоагентное моделирование не поддерживается для сред MATLAB.
Дополнительные сведения о создании и настройке агентов для обучения усилению см. в разделе Агенты обучения усилению.
simOpts - Параметры моделированияrlSimulationOptions объектПараметры моделирования, указанные как rlSimulationOptions объект. Этот аргумент используется для указания таких параметров, как:
Количество шагов на моделирование
Количество имитаций для выполнения
Для получения более подробной информации см. rlSimulationOptions.
experience - Результаты моделированияРезультаты моделирования, возвращаемые в виде структуры или массива структуры. Количество строк в массиве равно количеству моделирований, указанных NumSimulations вариант rlSimulationOptions. Число столбцов в массиве - это количество агентов. Поля каждого experience структура следующая.
Observation - НаблюденияНаблюдения, собранные из среды, возвращаются в виде структуры с полями, соответствующими наблюдениям, указанным в среде. Каждое поле содержит timeseries длины N + 1, где N - количество шагов моделирования.
Чтобы получить текущее наблюдение и следующее наблюдение для данного этапа моделирования, используйте следующий код, предполагая одно из полей Observation является obs1.
Obs = getSamples(experience.Observation.obs1,1:N); NextObs = getSamples(experience.Observation.obs1,2:N+1);
sim генерировать опыт для подготовки кадров.
Action - ДействияДействия, вычисленные агентом, возвращаемые в виде структуры с полями, соответствующими сигналам действий, указанным в среде. Каждое поле содержит timeseries длины N, где N - количество шагов моделирования.
Reward - ВознагражденияtimeseriesВознаграждение на каждом шаге моделирования, возвращаемое в виде timeseries длины N, где N - количество шагов моделирования.
IsDone - Флаг, указывающий на прекращение эпизода timeseriesФлаг, указывающий на прекращение эпизода, возвращенный как timeseries скалярного логического сигнала. Этот флаг устанавливается на каждом шаге среды в соответствии с условиями, заданными для завершения эпизода при конфигурировании среды. Когда среда устанавливает этот флаг равным 1, моделирование завершается.
SimulationInfo - Информация, собранная в ходе моделированияSimulink.SimulationOutput объектыИнформация, собранная при моделировании, возвращается одним из следующих способов:
Для сред MATLAB структура, содержащая поле SimulationError. Эта структура содержит все ошибки, возникшие во время моделирования.
Для сред Simulink Simulink.SimulationOutput объект, содержащий данные моделирования. Записанные данные включают любые сигналы и указывают, что модель настроена для регистрации, моделирования метаданных и любых ошибок, которые произошли.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.