exponenta event banner

Усиление обучения с использованием глубоких нейронных сетей

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

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

Для создания и обучения агентов обучения усилению можно использовать программное обеспечение Toolbox™ обучения усилению. Обычно агентские политики реализуются с помощью глубоких нейронных сетей, которые можно создать с помощью программного обеспечения Deep Learning Toolbox™.

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

Рабочий процесс обучения по усилению

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

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

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

  3. Определить вознаграждение (Define reward) - укажите сигнал вознаграждения, который агент использует для измерения его производительности в соответствии с целями задачи и способом вычисления этого сигнала из среды.

  4. Создать агента - создание агента, которое включает определение представления политики и настройку алгоритма обучения агента.

  5. Train agent - подготовка представления политики агента с использованием определенной среды, вознаграждения и алгоритма обучения агента.

  6. Проверка агента - оценка производительности обученного агента путем совместного моделирования агента и среды.

  7. Развернуть политику - развернуть подготовленное представление политики, используя, например, созданный код графического процессора.

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

  • Настройки обучения

  • Конфигурация алгоритма обучения

  • Политическое представительство

  • Определение сигнала вознаграждения

  • Сигналы действий и наблюдения

  • Динамика окружающей среды

Усиление среды обучения

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

  1. Получает действия от агента.

  2. Выводит замечания в ответ на действия.

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

Создание модели среды включает в себя определение следующего:

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

  • Сигнал вознаграждения, который агент использует для измерения своего успеха. Дополнительные сведения см. в разделе Определение сигналов вознаграждения (инструментарий обучения усилению).

  • Динамическое поведение среды.

Среду можно создать в MATLAB ® или Simulink ®. Дополнительные сведения см. в разделах Создание учебных сред для усиления MATLAB (панель обучения для усиления) и Создание учебных сред для усиления Simulink (панель обучения для усиления).

Усиление обучающих агентов

Усиливающий обучающий агент содержит два компонента: политику и алгоритм обучения.

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

  • Алгоритм обучения постоянно обновляет параметры политики на основе действий, наблюдений и вознаграждения. Целью алгоритма обучения является поиск оптимальной политики, которая максимизирует совокупное вознаграждение, полученное во время выполнения задачи.

Агенты отличаются алгоритмами обучения и представлениями политики. Агенты могут работать в пространствах дискретных действий, пространствах непрерывных действий или в обоих пространствах. В пространстве дискретных действий агент выбирает действия из конечного набора возможных действий. В пространстве непрерывного действия агент выбирает действие из непрерывного диапазона возможных значений действия. Программа «Набор обучающих средств для усиления» поддерживает следующие типы агентов.

АгентПространство действий
Q-Learning Agents (инструментарий обучения для усиления)Дискретный
Агенты Deep Q-Network (инструментарий обучения усилению)Дискретный
Агенты SARSA (инструментарий обучения усилению)Дискретный
Агенты градиента политики (инструментарий обучения для усиления)Дискретный или непрерывный
Актерско-критические агенты (инструментарий для обучения усилению)Дискретный или непрерывный
Агенты оптимизации проксимальной политики (инструментарий для обучения усилению)Дискретный или непрерывный
Агенты градиента глубокой детерминированной политики (инструментарий обучения усилению)Непрерывный
Агенты градиента глубокой детерминированной политики с двойной задержкой (инструментарий для обучения усилению)Непрерывный
Soft Actor-Critic Agents (инструментарий для обучения усилению)Непрерывный

Дополнительные сведения см. в разделе Агенты обучения усилению (панель инструментов обучения усилению).

Создание политик и ценностных функций глубоких нейронных сетей

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

Инструментарий обучения для усиления поддерживает следующие типы функций значений и представлений политик.

  • V (S 'startV) - критики, которые оценивают ожидаемое совокупное долгосрочное вознаграждение (стоимостную функцию) на основе данного наблюдения S .

  • Q (S, A 'startQ) - критики, которые оценивают функцию значения для данного дискретного действия А и данного наблюдения S.

  • Qi (S, Ai 'startQ) - Многоотходные критики, которые оценивают функцию значения для всех возможных дискретных действий Ai и данного наблюдения S.

  • λ (S 'startλ) - акторы, которые выбирают действие на основе данного наблюдения S. Актеры могут выбирать действия, используя детерминированные или стохастические методы.

Во время тренировок агент обновляет параметры этих представлений (startV, startQ и (В)).

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

Кроме того, можно создать представления актера и критика для агента, используя функциональные возможности Deep Learning Toolbox, такие как приложение Deep Network Designer. В этом случае убедитесь, что входные и выходные измерения представления актера и критика соответствуют соответствующим спецификациям действий и наблюдений среды. Пример создания критического представления с помощью Deep Network Designer см. в разделах Создание агента с помощью Deep Network Designer и Обучение с помощью наблюдений за изображениями.

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

Все агенты, за исключением агентов Q-learning и SARSA, поддерживают рецидивирующие нейронные сети (RNN). Эти сети имеют вход sequenceInputLayer и, по меньшей мере, один слой, который имеет скрытую информацию о состоянии, такую как lstmLayer. Эти сети могут быть особенно полезны, когда среда имеет состояния, которые не находятся в векторе наблюдения.

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

В программном обеспечении Accammentation Learning Toolbox предусмотрены дополнительные слои, которые можно использовать при создании глубоких нейронных сетевых представлений.

СлойОписание
scalingLayer(инструментарий для обучения по усилению)Применяет линейный масштаб и смещение к входному массиву. Этот слой полезен для масштабирования и сдвига выходных сигналов нелинейных слоев, таких как tanhLayer и sigmoidLayer.
quadraticLayer(инструментарий для обучения по усилению)Создает вектор квадратичных мономеров, построенный из элементов входного массива. Этот уровень полезен, когда необходим выход, представляющий собой некую квадратичную функцию его входов, например, для контроллера LQR.
softplusLayer(инструментарий для обучения по усилению)Реализует активацию softplus Y = log (1 + eX), которая гарантирует, что выходной сигнал всегда будет положительным. Это сглаженный вариант выпрямленного линейного блока (ReLU).

Дополнительные сведения о создании представлений политик и функций-значений см. в разделе Создание представлений политик и функций-значений (панель обучения по усилению).

С помощью функции импорта сети Deep Learning Toolbox можно также импортировать предварительно подготовленные нейронные сети или архитектуры уровня глубокой нейронной сети. Дополнительные сведения см. в разделе Импорт представлений политик и ценностных функций (инструментарий обучения усилению).

Обучение агентов по обучению усилению

После создания среды и усиления агента обучения можно обучить агента в среде с помощью train(Панель инструментов обучения для усиления). Для настройки обучения используйте rlTrainingOptions(Панель обучающих инструментов «Усиление»). Дополнительные сведения см. в разделе Обучение агентов обучения усилению (панель инструментов обучения усилению).

Если у вас есть программное обеспечение Parallel Computing Toolbox™, вы можете ускорить обучение и моделирование с помощью многоядерных процессоров или графических процессоров. Дополнительные сведения см. в разделе Обучение агентов с помощью параллельных вычислений и графических процессоров (инструментарий для обучения усилению).

Развертывание обученных политик

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

  • Код CUDA ® с использованием графического процессора Coder™

  • Код C/C + + с использованием MATLAB Coder™

Чтобы создать функцию оценки политики, которая выбирает действие на основе данного наблюдения, используйте generatePolicyFunction(Панель инструментов обучения по усилению). Эта команда создает сценарий MATLAB, содержащий функцию оценки политики, и MAT-файл, содержащий оптимальные данные политики.

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

Дополнительные сведения см. в разделе Развертывание обученных политик обучения усилению (панель инструментов обучения усилению).

Связанные темы