Спроектируйте и обучите агента Используя Reinforcement Learning Designer

В этом примере показано, как спроектировать и обучить агента DQN среде с дискретным пространством действий с помощью Reinforcement Learning Designer.

Откройте приложение Reinforcement Learning Designer

Откройте приложение Reinforcement Learning Designer.

reinforcementLearningDesigner

Initial Reinforcement Learning Designer window. The left panes show no loaded Agents, Environments, Results, or Previews

Первоначально, никакие агенты или среды не загружаются в приложении.

Импортируйте среду тележки с шестом

При использовании Reinforcement Learning Designer можно импортировать среду из MATLAB® рабочая область или создает предопределенную среду. Для получения дополнительной информации смотрите, Создают Среды MATLAB для Reinforcement Learning Designer и Создают окружения Simulink для Reinforcement Learning Designer.

В данном примере используйте предопределенную дискретную тележку с шестом среда MATLAB. Чтобы импортировать эту среду, на вкладке Reinforcement Learning, в разделе Environments, выбирают New > Discrete Cart-Pole.

Reinforcement Learning Designer Window with expanded "New Environment" section showing the choices of environments to import

В панели Environments приложение добавляет импортированный Discrete CartPole среда. Чтобы переименовать среду, кликните по тексту среды. Можно также импортировать несколько сред на сеансе.

Чтобы просмотреть размерности наблюдения и пространства действий, кликните по тексту среды. Приложение показывает размерности в панели Preview.

The Preview pane shows the dimensions of the state and action spaces being [4 1] and [1 1], respectively

Эта среда имеет непрерывное четырехмерное пространство наблюдений (положения и скорости обоих тележка и полюс) и дискретное одномерное пространство действий, состоящее из двух возможных сил, –10N или 10 Н. Эта среда используется в Обучении Агента DQN Сбалансировать Системный пример Тележки с шестом. Для получения дополнительной информации о предопределенных средах системы управления смотрите Загрузку Предопределенные Среды Системы управления.

Создайте агента DQN для импортированной среды

Чтобы создать агента, на вкладке Reinforcement Learning, в разделе Agent, нажимают New. В Создать диалоговом окне агента задайте имя агента, среду и алгоритм настройки. Настройка агента по умолчанию использует импортированную среду и алгоритм DQN. В данном примере измените количество скрытых модулей с 256 до 24. Для получения дополнительной информации о создании агентов смотрите, Создают Агентов Используя Reinforcement Learning Designer.

Create agent dialog box

Нажмите OK.

Приложение добавляет, что новый агент к Agents разделяет на области, и открывает соответствующий документ Agent_1.

Reinforcement Learning Designer with the agent window open

Для краткого обзора функций агента DQN и просмотреть спецификации наблюдений и спецификации действия для агента, нажмите Overview.

Reinforcement Learning Designer with the agent window open, showing the overview section

Когда вы создаете агента DQN в Reinforcement Learning Designer, агент использует структуру глубокой нейронной сети по умолчанию для своего критика. Чтобы просмотреть сеть критика, на вкладке DQN Agent, нажимают View Critic Model.

Deep Learning Network Analyzer открывает и отображает структуру критика.

Deep Learning Network Analyzer showing the Deep Neural Network used in the Critic

Закройте Deep Learning Network Analyzer.

Обучите агента

Чтобы обучить вашего агента, на вкладке Train, сначала задают опции для обучения агент. Для получения информации об определении опций обучения смотрите, Задают Опции Симуляции в Reinforcement Learning Designer.

В данном примере задайте максимальное количество эпизодов тренировки установкой Max Episodes к 1000. Для других опций обучения используйте их значения по умолчанию. Критерии по умолчанию остановки когда среднее количество шагов на эпизод (по последнему 5 эпизоды), больше 500.

Reinforcement Learning Designer app showing the Train tab in the toolstrip

Чтобы запустить обучение, нажмите Train.

Во время обучения приложение открывает вкладку Training Session и отображает прогресс обучения в документе Training Results.

Reinforcement Learning Designer after agent training

Здесь, обучение останавливается, когда среднее количество шагов на эпизод 500. Очистите опцию Show Episode Q0, чтобы визуализировать лучше эпизод и средние вознаграждения.

Чтобы принять учебные результаты, на вкладке Training Session, нажимают Accept. В панели Agents приложение добавляет обученного агента, agent1_Trained.

Симулируйте агента и смотрите результаты симуляции

Чтобы симулировать обученного агента, на вкладке Simulate, сначала выбирают agent1_Trained в Agent выпадающий список затем сконфигурируйте опции симуляции. В данном примере используйте количество по умолчанию эпизодов (10) и максимальная длина эпизода (500). Для получения дополнительной информации об определении опций симуляции смотрите, Задают Опции обучения в Reinforcement Learning Designer.

Simulation toolstrip tab

Чтобы симулировать агента, нажмите Simulate.

Приложение открывает вкладку Simulation Session. После того, как симуляция завершается, документ Simulation Results показывает вознаграждению за каждый эпизод, а также вознаграждению среднее и стандартное отклонение.

Simulation result document showing the reward of each simulation episode, together with their mean and standard deviation

Чтобы анализировать результаты симуляции, нажмите Inspect Simulation Data.

В Simulation Data Inspector можно просмотреть сохраненные сигналы для каждого эпизода симуляции. Для получения дополнительной информации смотрите Инспектора Данных моделирования (Simulink).

Следующее изображение показывает первые и третьи состояния системы тележки с шестом (положение тележки и угол полюса) для шестого эпизода симуляции. Агент может успешно сбалансировать полюс для 500 шагов, даже при том, что положение тележки подвергается умеренному колебанию. Можно изменить некоторые опции агента DQN, такие как BatchSize и TargetUpdateFrequency продвинуть быстрее и больше устойчивого изучения. Для получения дополнительной информации смотрите, Обучают Агента DQN Балансировать Систему Тележки с шестом.

Simulation data inspector showing the position and velocity of the cart in the sixth simulation episode

Закройте Simulation Data Inspector.

Чтобы принять результаты симуляции, на вкладке Simulation Session, нажимают Accept.

В панели Results приложение добавляет структуру результатов симуляции, experience1.

Экспортируйте агента и сохраните сеанс

Чтобы экспортировать обученного агента в рабочее пространство MATLAB для дополнительной симуляции, на вкладке Reinforcement Learning, под Export, выбирают обученного агента.

Reinforcement Learning Designer window showing how to export the trained agent

Чтобы сохранить сеанс приложения, на вкладке Reinforcement Learning, нажимают Save Session. В будущем, чтобы возобновить вашу работу, где вы кончили, можно открыть сеанс в Reinforcement Learning Designer.

Симулируйте агента в командной строке

Чтобы симулировать агента в командной строке MATLAB, сначала загрузите среду тележки с шестом.

env = rlPredefinedEnv("CartPole-Discrete");

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

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

plot(env)
xpr2 = sim(env,agent1_Trained);

Во время симуляции visualizer показывает перемещение тележки и полюса. Обученный агент может стабилизировать систему.

Cart Pole Environment visualizer showing the pole stabilized on the cart

Наконец, отобразите совокупное вознаграждение за симуляцию.

sum(xpr2.Reward)
env = 
   500

Как ожидалось вознаграждение к 500.

Смотрите также

|

Похожие темы