Пакет Reinforcement Learning Toolbox™ предоставляет несколько предопределённых окружений мира сетки, для которых уже заданы действия, наблюдения, вознаграждения и динамика. Можно использовать эти окружения для:
Изучения концепций обучения с подкреплением.
Ознакомьтесь с функциями пакета Reinforcement Learning Toolbox.
Тестирования своих агентов обучения с подкреплением.
Можно загрузить следующий предопределенный MATLAB® Окружения мира сетки с использованием rlPredefinedEnv
функция.
Окружение | Задача агента |
---|---|
Основной мир сетки | Перемещение из начального местоположения в целевое местоположение на двумерной сетке путем выбора перемещений из дискретного пространства действий {N,S,E,W} . |
Мир сетки водопада | Перейдите из начального местоположения в целевое местоположение на большей двумерной сетке с неизвестной детерминированной или стохастической динамикой. |
Дополнительные сведения о свойствах окружений мира сетки см. в разделе Создание пользовательских окружений мира сетки.
Можно также загрузить предопределённые окружения системы управления MATLAB. Для получения дополнительной информации см. Загрузка предопределённых окружений системы управления.
Основным окружением мира сетки является двумерная сетка 5 на 5 с начальным местоположением, местоположением терминала и препятствиями. Это окружение также содержит специальный переход от состояния [2,4] до состояния [4,4]. Цель агента состоит в том, чтобы переместиться из начального местоположения в конечное местоположение, избегая препятствий и максимизируя общее вознаграждение.
Чтобы создать базовое окружение мира сетки, используйте rlPredefinedEnv
функция. Эта функция создает rlMDPEnv
объект, представляющий мир сетки.
env = rlPredefinedEnv('BasicGridWorld');
Вы можете визуализировать окружение мира сетки с помощью plot
функция.
Расположение агента - это красный круг. По умолчанию агент запускается в состоянии [1,1].
Расположение терминала - голубой квадрат.
Преграды - чёрные квадраты.
plot(env)
Агент может двигаться в одном из четырех возможных направлений (северном, южном, восточном или западном).
Агент получает следующие вознаграждения или штрафы:
+10
вознаграждение за достижение конечного состояния в [5,5]
+5
вознаграждение за переход из состояния [2,4] в состояние [4,4]
-1
штраф за каждое другое действие
Детерминированное окружение сетки водопада представляет собой двумерную сетку 8 на 7 с начальным местоположением и конечным местоположением. Это окружение включает водопад, который толкает агент к дну сетки. Цель агента состоит в том, чтобы переместиться из начального местоположения в терминальное местоположение с максимизацией общего вознаграждения.
Чтобы создать детерминированный мир сетки водопада, используйте rlPredefinedEnv
функция. Эта функция создает rlMDPEnv
объект, представляющий мир сетки.
env = rlPredefinedEnv('WaterFallGridWorld-Deterministic');
Как и в случае с базовым миром сетки, можно визуализировать окружение, где агент является красным кругом, а местоположение терминала - синим квадратом.
plot(env)
Агент может двигаться в одном из четырех возможных направлений (северном, южном, восточном или западном).
Агент получает следующие вознаграждения или штрафы:
+10
вознаграждение за достижение конечного состояния в [4,5]
-1
штраф за каждое другое действие
В этом окружении водопад толкает агент к дну сетки.
Интенсивность водопада изменяется между столбцами, как показано в верхней части предыдущего рисунка. Когда агент переходит в столбец с ненулевой интенсивностью, водопад толкает его вниз на указанное количество квадратов. Для примера, если агент идет на восток от состояния [5,2], он достигает состояния [7,3].
Окружение сетки стохастического водопада представляет собой двумерную сетку 8 на 7 с начальным местоположением и конечными местоположениями. К окружению относится водопад, который толкает агента к дну сетки с стохастической интенсивностью. Цель агента состоит в том, чтобы переместиться из начального местоположения в целевое терминальное местоположение, избегая при этом штрафных конечных состояний вдоль дна сетки и максимизируя общее вознаграждение.
Чтобы создать стохастический мир сетки водопада, используйте rlPredefinedEnv
функция. Эта функция создает rlMDPEnv
объект, представляющий мир сетки.
env = rlPredefinedEnv('WaterFallGridWorld-Stochastic');
Как и в случае с базовым миром сетки, можно визуализировать окружение, где агент является красным кругом, а местоположение терминала - синим квадратом.
plot(env)
Агент может двигаться в одном из четырех возможных направлений (северном, южном, восточном или западном).
Агент получает следующие вознаграждения или штрафы:
+10
вознаграждение за достижение конечного состояния в [4,5]
-10
штраф за достижение любого конечного состояния в нижней строке сетки
-1
штраф за каждое другое действие
В этом окружении водопад толкает агента к дну сетки с стохастической интенсивностью. Интенсивность базовой линии соответствует интенсивности детерминированного окружения водопада. Однако в случае стохастического водопада агент имеет равные шансы испытать указанную интенсивность, на один уровень выше этой интенсивности или на один уровень ниже этой интенсивности. Для примера, если агент идет на восток от состояния [5,2], он имеет равные шансы достичь состояния [6,3], [7,3] или [8,3].
rlMDPEnv
| rlPredefinedEnv
| train