Проектируйте и обучайте агента, используя 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 или 10N. Это окружение используется в примере Train DQN Agent для балансировки системы тележки с шестом. Дополнительные сведения о предопределенных окружениях системы управления см. в разделе Загрузка предопределять Окружениях системы управления.

Создайте агент DQN для импортированного окружения

Чтобы создать агента, на вкладке Reinforcement Learning, в разделе Agent, нажмите New. В диалоговом окне Create agent укажите имя агента, окружение и алгоритм настройки. В данном примере сохраните строение агента по умолчанию, которая использует импортированное окружение и алгоритм DQN. Дополнительные сведения о создании агентов см. в разделе Создание агентов с использованием 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.

Чтобы принять результаты обучения, на вкладке 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 можно просмотреть сохраненные сигналы для каждого эпизода симуляции. На следующем изображении показаны первое и третье состояния системы тележки с шестом (положение тележки и угол шеста) для шестого эпизода симуляции. Агент успешно балансирует полюс с углом около нуля.

Для получения дополнительной информации смотрите Данные моделирования Inspector (Simulink).

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");

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

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

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

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

Cart Pole Environment visualizer showing the pole stabilized on the cart

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

sum(xpr2.Reward)
env = 
   500

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

См. также

|

Похожие темы