В этом примере показано, как спроектировать и обучить агента DQN среде с дискретным пространством действий с помощью Reinforcement Learning Designer.
Откройте приложение Reinforcement Learning Designer.
reinforcementLearningDesigner
Первоначально, никакие агенты или среды не загружаются в приложении.
При использовании Reinforcement Learning Designer можно импортировать среду из MATLAB® рабочая область или создает предопределенную среду. Для получения дополнительной информации смотрите, Создают Среды MATLAB для Reinforcement Learning Designer и Создают окружения Simulink для Reinforcement Learning Designer.
В данном примере используйте предопределенную дискретную тележку с шестом среда MATLAB. Чтобы импортировать эту среду, на вкладке Reinforcement Learning, в разделе Environments, выбирают New > Discrete Cart-Pole.
В панели Environments приложение добавляет импортированный Discrete CartPole
среда. Чтобы переименовать среду, кликните по тексту среды. Можно также импортировать несколько сред на сеансе.
Чтобы просмотреть размерности наблюдения и пространства действий, кликните по тексту среды. Приложение показывает размерности в панели Preview.
Эта среда имеет непрерывное четырехмерное пространство наблюдений (положения и скорости обоих тележка и полюс) и дискретное одномерное пространство действий, состоящее из двух возможных сил, –10N или 10 Н. Эта среда используется в Обучении Агента DQN Сбалансировать Системный пример Тележки с шестом. Для получения дополнительной информации о предопределенных средах системы управления смотрите Загрузку Предопределенные Среды Системы управления.
Чтобы создать агента, на вкладке Reinforcement Learning, в разделе Agent, нажимают New. В Создать диалоговом окне агента задайте имя агента, среду и алгоритм настройки. Настройка агента по умолчанию использует импортированную среду и алгоритм DQN. В данном примере измените количество скрытых модулей с 256 до 24. Для получения дополнительной информации о создании агентов смотрите, Создают Агентов Используя Reinforcement Learning Designer.
Нажмите OK.
Приложение добавляет, что новый агент к Agents разделяет на области, и открывает соответствующий документ Agent_1.
Для краткого обзора функций агента DQN и просмотреть спецификации наблюдений и спецификации действия для агента, нажмите Overview.
Когда вы создаете агента DQN в Reinforcement Learning Designer, агент использует структуру глубокой нейронной сети по умолчанию для своего критика. Чтобы просмотреть сеть критика, на вкладке DQN Agent, нажимают View Critic Model.
Deep Learning Network Analyzer открывает и отображает структуру критика.
Закройте Deep Learning Network Analyzer.
Чтобы обучить вашего агента, на вкладке Train, сначала задают опции для обучения агент. Для получения информации об определении опций обучения смотрите, Задают Опции Симуляции в Reinforcement Learning Designer.
В данном примере задайте максимальное количество эпизодов тренировки установкой Max Episodes к 1000
. Для других опций обучения используйте их значения по умолчанию. Критерии по умолчанию остановки когда среднее количество шагов на эпизод (по последнему 5
эпизоды), больше 500
.
Чтобы запустить обучение, нажмите Train.
Во время обучения приложение открывает вкладку Training Session и отображает прогресс обучения в документе Training Results.
Здесь, обучение останавливается, когда среднее количество шагов на эпизод 500. Очистите опцию Show Episode Q0, чтобы визуализировать лучше эпизод и средние вознаграждения.
Чтобы принять учебные результаты, на вкладке Training Session, нажимают Accept. В панели Agents приложение добавляет обученного агента, agent1_Trained
.
Чтобы симулировать обученного агента, на вкладке Simulate, сначала выбирают agent1_Trained
в Agent выпадающий список затем сконфигурируйте опции симуляции. В данном примере используйте количество по умолчанию эпизодов (10
) и максимальная длина эпизода (500
). Для получения дополнительной информации об определении опций симуляции смотрите, Задают Опции обучения в Reinforcement Learning Designer.
Чтобы симулировать агента, нажмите Simulate.
Приложение открывает вкладку Simulation Session. После того, как симуляция завершается, документ Simulation Results показывает вознаграждению за каждый эпизод, а также вознаграждению среднее и стандартное отклонение.
Чтобы анализировать результаты симуляции, нажмите Inspect Simulation Data.
В Simulation Data Inspector можно просмотреть сохраненные сигналы для каждого эпизода симуляции. Для получения дополнительной информации смотрите Инспектора Данных моделирования (Simulink).
Следующее изображение показывает первые и третьи состояния системы тележки с шестом (положение тележки и угол полюса) для шестого эпизода симуляции. Агент может успешно сбалансировать полюс для 500 шагов, даже при том, что положение тележки подвергается умеренному колебанию. Можно изменить некоторые опции агента DQN, такие как BatchSize
и TargetUpdateFrequency
продвинуть быстрее и больше устойчивого изучения. Для получения дополнительной информации смотрите, Обучают Агента DQN Балансировать Систему Тележки с шестом.
Закройте Simulation Data Inspector.
Чтобы принять результаты симуляции, на вкладке Simulation Session, нажимают Accept.
В панели Results приложение добавляет структуру результатов симуляции, experience1
.
Чтобы экспортировать обученного агента в рабочее пространство MATLAB для дополнительной симуляции, на вкладке Reinforcement Learning, под Export, выбирают обученного агента.
Чтобы сохранить сеанс приложения, на вкладке Reinforcement Learning, нажимают Save Session. В будущем, чтобы возобновить вашу работу, где вы кончили, можно открыть сеанс в Reinforcement Learning Designer.
Чтобы симулировать агента в командной строке MATLAB, сначала загрузите среду тележки с шестом.
env = rlPredefinedEnv("CartPole-Discrete");
Среда тележки с шестом имеет среду visualizer, который позволяет вам, чтобы видеть, как система ведет себя в процессе моделирования и обучение.
Постройте среду и выполните симуляцию с помощью обученного агента, которого вы ранее экспортировали из приложения.
plot(env) xpr2 = sim(env,agent1_Trained);
Во время симуляции visualizer показывает перемещение тележки и полюса. Обученный агент может стабилизировать систему.
Наконец, отобразите совокупное вознаграждение за симуляцию.
sum(xpr2.Reward)
env = 500
Как ожидалось вознаграждение к 500.
Reinforcement Learning Designer | analyzeNetwork