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

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

Reinforcement Learning Toolbox™ позволяет вам создать пользовательский MATLAB® окружения мира сетки для ваших собственных приложений. Чтобы создать пользовательское окружение мира сетки:

  1. Создайте модель мира сетки.

  2. Сконфигурируйте модель мира сетки.

  3. Используйте модель мира сетки, чтобы создать своё собственное окружение мира сетки.

Модель мира сетки

Вы можете создать свою собственную модель мира сетки, используя createGridWorld функция. Задайте размер сетки при создании GridWorld объект модели.

The GridWorld объект имеет следующие свойства.

СвойствоТолько для чтенияОписание
GridSizeДа

Размерности мира сетки, отображаемые как m -by - n массив. Здесь m представляет количество строк сетки, а n - количество столбцов сетки.

CurrentStateНет

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

Агент стартует с CurrentState как только вы используете функцию сброса в rlMDPEnv объект окружения.

StatesДа

Строковый вектор, содержащий имена состояний мира сетки. Для образца для модели мира сетки 2 на 2 GW, задайте следующее:

GW.States = ["[1,1]";
             "[2,1]";
             "[1,2]";
             "[2,2]"];
ActionsДа

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

GW = createGridWorld(m,n,moves)

Задайте moves либо как 'Standard' или 'Kings'.

movesGw.Actions
'Standard'['N';'S';'E';'W']
'Kings'['N';'S';'E';'W';'NE';'NW';'SE';'SW']
TНет

Матрица переходов состояний, заданная как трехмерный массив. T - матрица вероятностей, которая указывает вероятность того, что агент перейдет из текущего состояния s в любое возможное следующее состояние s' выполнением операции a.

T может быть обозначена как

T(s,s',a) = probability(s'|s,a).

Для образца рассмотрим детерминированный объект мира сетки 5 на 5 GW с агентом в камере [3,1]. Просмотрите матрицу переходов состояний для северного направления.

northStateTransition = GW.T(:,:,1)

Из приведенного выше рисунка значение northStateTransition(3,2) равен 1, поскольку агент перемещается из камеры [3,1] в камеру [2,1] с помощью 'N' действий. Вероятность 1 указывает, что из заданного состояния, если агент идет на север, он имеет 100% вероятность перемещения одной камеры на север по сетке. Для примера, показывающего, как настроить матрицу переходов, смотрите Обучите Агента Обучения с Подкреплением в Основном Мире Сетки.

RНет

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

Область матрицы вознаграждений при переходе R может быть обозначена как

r = R(s,s',a).

Настройка R таким образом, что после каждого действия агент получает вознаграждение. Для образца можно настроить положительное вознаграждение, если агент переходит через состояния препятствий и когда он достигает конечного состояния. Можно также настроить вознаграждение по умолчанию -11 для всех действий, которые принимает агент, независимо от текущего и последующего состояния. Для примера, который показывает, как настроить матрицу вознаграждений при переходе, смотрите Обучите Агента Обучения с Подкреплением в Основном Мире Сетки.

ObstacleStatesНет

ObstacleStates являются состояниями, которые не могут быть достигнуты в мире сетки, заданными как строковый вектор. Рассмотрим следующую модель мира сетки 5 на 5 GW.

Черные камеры являются состояниями препятствий, и можно задать их с помощью следующего синтаксиса:

GW.ObstacleStates = ["[3,3]";"[3,4]";"[3,5]";"[4,3]"];

Пример рабочего процесса см. в разделе «Train агента обучения с подкреплением в основном мире сетки».

TerminalStatesНет

TerminalStates являются конечными состояниями в мире сетки, заданными как строковый вектор. Рассмотрим предыдущую модель мира сетки 5 на 5 GW. Синяя камера является конечным состоянием, и вы можете задать ее следующим образом:

GW.TerminalStates = "[5,5]";

Пример рабочего процесса см. в разделе «Train агента обучения с подкреплением в основном мире сетки».

Окружение мира сетки

Вы можете создать окружение марковского процесса принятия решений (MDP), используя rlMDPEnv из модели мира сетки с предыдущего шага. MDP является стохастическим процессом управления с дискретным временем. Это обеспечивает математическую среду для моделирования принятия решений в ситуациях, когда результаты частично случайны и частично находятся под контролем лица, принимающего решения. Агент использует объект окружения мира сетки rlMDPEnv для взаимодействия с объектом модели мира сетки GridWorld.

Для получения дополнительной информации смотрите rlMDPEnv и Обучите Агента Обучения с Подкреплением в Основном Мире Сетки.

См. также

| |

Похожие темы