Симулируйте обученных агентов обучения с подкреплением в заданном окружении
моделирует одного или несколько агентов обучения с подкреплением в окружении, используя опции симуляции по умолчанию.experience = sim(env,agents)
выполняет ту же симуляцию, что и предыдущий синтаксис.experience = sim(agents,env)
Симулируйте окружение обучения с подкреплением с агентом, настроенным для этого окружения. В данном примере загружает окружение и агента, которые уже настроены. Окружение является дискретной тележкой с шестом окружения созданной с rlPredefinedEnv. Агент является градиентом политики (rlPGAgent) агент. Для получения дополнительной информации об окружении и агенте, используемых в этом примере, смотрите Обучите агента PG для балансировки системы тележки с шестом.
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);Для предопределённого окружения тележки с шестом, используемой в этом примере. можно использовать 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]
Область структуры output 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 a Simulink.SimulationOutput объект, содержащий данные моделирования. Записанные данные включают любые сигналы и состояния, что модель сконфигурирована для регистрации, метаданных симуляции и любых возникших ошибок.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.