rlSimulationOptions

Опции для симуляции агента обучения с подкреплением в окружении

Описание

Использование rlSimulationOptions объект, чтобы задать опции симуляции для симуляции агента обучения с подкреплением в окружении. Чтобы выполнить симуляцию, используйте sim.

Для получения дополнительной информации о обучении и симуляции агентов см. Train агентов обучения с подкреплением».

Создание

Описание

simOpts = rlSimulationOptions возвращает опции по умолчанию для симуляции окружения обучения с подкреплением против агента. Используйте опции симуляции, чтобы задать параметры симуляции, такие как максимальное количество шагов для выполнения симуляции и количество симуляций для выполнения. После настройки опций используйте simOpts как входной параметр для sim.

пример

opt = rlSimulationOptions(Name,Value) создает набор опций симуляции с заданными свойствами с помощью одного или нескольких аргументов пары "имя-значение".

Свойства

расширить все

Количество шагов для выполнения симуляции, заданное как разделенная разделенными запятой парами, состоящая из 'MaxSteps' и положительное целое число. В целом, вы задаете условия прекращения эпизода в окружении. Это значение является максимальным количеством шагов для выполнения в симуляции, если эти условия завершения не выполняются.

Пример: 'MaxSteps',1000

Количество выполняемых симуляций, заданное как разделенная разделенными запятой парами, состоящая из 'NumSimulations' и положительное целое число. В начале каждой симуляции, sim сбрасывает окружение. Вы задаете, что происходит при сбросе окружения при создании окружения. Например, сброс окружения в начале каждого эпизода может включать рандомизацию начальных значений состояния, если вы конфигурируете своё окружение, чтобы сделать это. В этом случае выполнение нескольких симуляций позволяет вам проверить эффективность обученного агента в ряде начальных условий.

Пример: 'NumSimulations',10

Остановите симуляцию, когда произойдет ошибка, заданная как "off" или "on". Когда эта опция "off"ошибки фиксируются и возвращаются в SimulationInfo выхода sim, и симуляция продолжается.

Флаг для использования параллельной симуляции, заданный как logical. Установка этой опции равной true конфигурирует симуляцию, чтобы использовать параллельную обработку для симуляции окружения, таким образом позволяя использовать несколько ядер, процессоров, компьютерных кластеров или облачных ресурсов для ускорения симуляции. Чтобы задать опции для параллельной симуляции, используйте ParallelizationOptions свойство.

Обратите внимание, что, если вы хотите ускорить вычисления глубокой нейронной сети (такие как расчет градиента, обновление параметра и предсказание) с помощью локального графического процессора, вам не нужно устанавливать UseParallel к true. Вместо этого при создании представления вашего актёра или критика используйте rlRepresentationOptions объект, в котором UseDevice для опции задано значение "gpu".

Для использования параллельных вычислений или графического процессора требуется программное обеспечение Parallel Computing Toolbox™. Использование компьютерных кластеров или облачных ресурсов дополнительно требует MATLAB® Parallel Server™.

Дополнительные сведения об обучении с использованием многоядерных процессоров и графических процессоров см. в разделе Train агентов с использованием параллельных вычислений и графических процессоров.

Пример: 'UseParallel',true

Опции параллелизации для управления параллельной симуляцией, заданные как ParallelTraining объект. Для получения дополнительной информации об обучении с использованием параллельных вычислений см. Train «Обучение агентов обучения с подкреплением».

The ParallelTraining объект имеет следующие свойства, которые можно изменить с помощью записи через точку после создания rlTrainingOptions объект.

Инициализация рандомизатора для рабочих процессов, заданная как одна из следующих:

  • –1 - Присвоение уникального случайного seed каждому работнику. Значение seed является идентификатором работника.

  • –2 - Не назначать работникам случайный seed.

  • Вектор - вручную задайте случайный seed для каждой работы. Количество элементов в векторе должно совпадать с количеством работников.

Отправьте переменные модели и рабочей области параллельным рабочим, заданные как "on" или "off". Когда опция "on"хост отправляет работникам переменные, используемые в моделях и заданные в базовом рабочем пространстве MATLAB.

Дополнительные файлы для присоединения к параллельному пулу, заданные как строковые или строковые массивы.

Функция, которая запускается до начала симуляции, задается как указатель на функцию, не имеющую входных параметров. Эта функция запускается один раз на каждого работника перед началом симуляции. Напишите эту функцию, чтобы выполнить любую обработку, которая вам нужна до симуляции.

Функция для выполнения после окончания симуляции, заданная как указатель на функцию, не имеющую входных параметров. Можно записать эту функцию, чтобы очистить рабочую область или выполнить другую обработку после завершения симуляции.

Функции объекта

simСимулируйте обученных агентов обучения с подкреплением в заданном окружении

Примеры

свернуть все

Создайте набор опций для симуляции окружения обучения с подкреплением. Установите количество шагов для симуляции равным 1000 и сконфигурируйте опции, чтобы запустить три симуляции.

Можно задать опции с помощью пар «Имя», «Значение» при создании набора опций. Все опции, которые вы явным образом не задаете, имеют значения по умолчанию.

simOpts = rlSimulationOptions(...
    'MaxSteps',1000,...
    'NumSimulations',3)
simOpts = 
  rlSimulationOptions with properties:

                  MaxSteps: 1000
            NumSimulations: 3
               StopOnError: "on"
               UseParallel: 0
    ParallelizationOptions: [1x1 rl.option.ParallelSimulation]

Кроме того, создайте набор опций по умолчанию и используйте запись через точку для изменения некоторых значений.

simOpts = rlSimulationOptions;
simOpts.MaxSteps = 1000;
simOpts.NumSimulations = 3;

simOpts
simOpts = 
  rlSimulationOptions with properties:

                  MaxSteps: 1000
            NumSimulations: 3
               StopOnError: "on"
               UseParallel: 0
    ParallelizationOptions: [1x1 rl.option.ParallelSimulation]

Введенный в R2019a