Совместное использование проекта | MindSpore подключен к новой среде и новым алгоритмам обучения с подкреплением

Автор: **** Янь Кэси, Цзин Юхэн, Лю Чжихао, Фэн Сяокунь, Лэй Шици-** Институт автоматизации Китайской академии наук

Краткое содержание

Для этого эксперимента по обучению с подкреплением наша команда выбрала тему «Новая среда/новый алгоритм доступа MindSpore к обучению с подкреплением». Мы подключили к платформе MindSpore игровую тестовую среду для сценариев мультиагентного сотрудничества — SISL (Stanford Intelligent Systems Laboratory) и реализовали в этой экспериментальной среде тест производительности алгоритмов QMIX и MAPPO. В ходе этого обмена мы проведем соответствующее введение и анализ пяти аспектов выбора темы, среды, алгоритма, экспериментальных результатов и выводов.

 

Коды, связанные с проектом, см. в приложении.

https://gitee.com/lemonifolds/reinforcement/tree/c03e5f8e6104b5880fdfa53d579332078c7dfb99

01

Введение в тему

Обучение с подкреплением — это дисциплина, изучающая последовательное принятие решений. Она изучает стратегии оптимизации для максимизации совокупной отдачи путем анализа процесса взаимодействия между агентом и средой. Среди них среда является важным элементом обучения с подкреплением. Она не только напрямую определяет формат входных данных модели алгоритма, но также тесно связана с исследовательскими задачами обучения с подкреплением. Некоторые классические алгоритмы обучения с подкреплением часто сопровождаются классическими средами проверки. Например, для одноагентных задач восприятия и принятия решений его классический алгоритм DQN (Deep Q-learning) [1] был проверен в игре Atari, классической среде для этой задачи для полноинформационных задач игры с нулевой суммой; и неполная информация многопользовательские задачи. Для смешанных игровых задач ее представители работают AlphaGo[2][3] и AlphaStar[4] даже назвали алгоритм по соответствующей среде проверки (Go, StarCraft). Это показывает важную роль среды проверки в области обучения с подкреплением.

Существует множество типов сред, используемых в обучении с подкреплением. Типичные среды включают Gym[5], MuJoCo[6], MPE[7], Atari[1], PySC2[8], SMAC[9], TORCS, ISAAC и т. д. В настоящее время архитектура StarCraft MindSpore подключена к двум средам: Gym и SMAC (StarCraft Multi-Agent Challenge), которые соответственно ориентированы на одноагентное обучение с подкреплением и сценарии многоагентного обучения с подкреплением. Что касается последнего, из-за сложного и многомерного пространства состояний, действий и решений игры StarCraft, он стал важным эталоном для многоагентных алгоритмов обучения с подкреплением. Однако в реальной научно-исследовательской практике, когда мы предлагаем новый алгоритм, мы часто сначала проверяем его в некоторых небольших средах (например, в игровой среде Atari в тренажерном зале). Исходя из этого, наша команда выбрала небольшую тестовую среду для мультиагентных сценариев — SISL (Стэнфордскую лабораторию интеллектуальных систем) и подключила ее к платформе MindSpore, чтобы предоставить платформе более разнообразную среду сертификации мультиинтеллектуального опыта. Кроме того, мы также реализовали два типичных алгоритма многоагентного обучения с подкреплением, MAPPO [10] и QMIX [11], для среды SISL и предоставили соответствующие результаты тестов.

Далее в этом разделе сначала будет дано предварительное введение в подключенную среду SISL (глава 2), а также используемые алгоритмы QMIX и MAPPO (глава 3), затем процесс реализации доступа к среде, эксперименты. Полученные результаты тестов производительности; и выявлены и проанализированы проблемы, возникшие в эксперименте (глава 4), наконец, на основании результатов эксперимента даем соответствующие выводы (глава 5);

02

Введение в окружающую среду

PettingZoo[12] — это библиотека Python, обычно используемая в исследованиях многоагентного обучения с подкреплением. SISL (Стэнфордская лаборатория интеллектуальных систем) — это один из пакетов среды, включающий три подсреды: Multiwalker, Pursuit и Waterworld.

Базовое использование PettingZoo аналогично Gym. Ниже приведен пример кода для создания случайно действующего агента в среде Waterworld:

from pettingzoo.sisl import waterworld_v4
env = waterworld_v4.env(render_mode='human')

env.reset()
for agent in env.agent_iter():
    observation, reward, termination, truncation, info = env.last()
    if termination or truncation:
        action = None
    else:
        action = env.action_space(agent).sample()
    env.step(action)
env.close()

Ниже приводится введение в три подсреды SISL.

2.1Мультиходок

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

картинаДиаграмма среды мультиходера

Каждый агент получит возврат вперед_reward, умноженный на изменение позиции пакета по сравнению с предыдущим моментом времени. Если хотя бы один из пакетов упадет или пакет выйдет за левую границу местности, окружение заканчивается и каждый агент получает -100 преимуществ. Если пакет упадет с правого края местности, окружение также закончится с коэффициентом усиления 0.

Если агент падает, он получает дополнительную выгоду -10. Если terminate_on_fall = False, то среда не завершится при падении агента, в противном случае среда закроется после падения агента и принесет выгоду -100. Если remove_on_fall = True, то упавший агент будет удален из среды. Каждый агент также получает -5-кратное изменение угла головы, чтобы голова оставалась ровной. Еслиshared_reward = True, то личное вознаграждение каждого агента усредняется и возвращается каждому агенту.

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

2.2 Преследование

В режиме «Преследование» некоторые агенты преследования пытаются преследовать и окружать беглецов, как показано на рисунке ниже (красный — агент контролируемой погони, синий — случайное движение беглецов).

картина

Диаграмма среды преследования

По умолчанию на сетке 16X16 имеется 30 беглецов и 8 агентов-преследователей, а в центре карты есть препятствие (белая часть). Если агент полностью окружает беглеца, каждый окружающий агент получает преимущество 5, и беглец удаляется из окружающей среды. Каждый раз, когда агент прикасается к беглецу, он также получает выгоду 0,01.

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

2.3 Водный мир

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

картина

Схема окружающей среды водного мира

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

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

03

Введение в алгоритм

В этом разделе мы представим алгоритм MAPPO[10] и алгоритм QMIX[11], использованные в эксперименте.

3.1 Алгоритм MAPPO

Полное название MAPPO — Multi-Agent Proximal Policy Optimization. Как видно из названия, алгоритм MAPPO представляет собой классический алгоритм обучения с подкреплением — алгоритм PPO [13], который расширяется в среде с несколькими интеллектами. Для многоагентных сред они часто картинаописываются с помощью семикортежей < >. Среди них n представляет количество агентов; S представляет пространство состояний среды; картинаэто пространство поведения, состоящее из действий всех агентов, картинаоно представляет собой локальное наблюдение, полученное агентом i из глобального состояния s (если оно есть); полностью наблюдаемая среда, тогда картина); картинапредставляет вероятность преобразования из s в s' при совместном действии; R(s,A) представляет собой функцию общего вознаграждения картина;

Алгоритм MAPPO использует классическую структуру актер-критик, которая требует обучения двух отдельных нейронных сетей: сети политики картинаи функции ценности картина(как актера и критика соответственно).

Для сети политик картинаон используется для изучения сопоставления наблюдения o_i с распределением действий a_i, и соответствующая цель оптимизации:

картина

Среди них B представляет размер пакета, который картинарассчитывается с использованием метода GAE [14], картинапредставляет энтропию политики и картинапредставляет собой гиперпараметр весового коэффициента.

Для функции значения картина, которая используется для изучения отображения состояния S на оценку вознаграждения картина, соответствующая цель оптимизации:

картина

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

На основе приведенной выше формулы цели оптимизации можно получить процесс работы MAPPO. Процесс обработки циклического алгоритма MAPPO, представленный в оригинальной статье [10], организован следующим образом:

картина

3.1 Алгоритм MAPPO

В этом разделе u используется для обозначения действий, а u картинаиспользуется для обозначения истории действий-наблюдений. Идея построения алгоритма QMIX аналогична VDN. Есть надежда, что картинакаждый из них можно получить путем вычисления глобального картина. нужно всего лишь

картина

Это удовлетворит требование. Чтобы приведенная выше формула выполнялась, картинадолжна быть монотонность по отношению к Q_i, то есть

картина

Структура нейронной сети QMIX показана на рисунке ниже: картинаСхема структуры QMIX.

Для каждого агента i существует сеть агентов, используемая для его расчета картина, как показано на рисунке (c). Эта сеть представляет собой сеть DRQN, то есть полносвязный уровень в DQN заменяется GRU, а входом является наблюдение за агентом в момент времени t картинаи действие в момент времени t-1 картина.

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

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

картина

Среди них картинакартинапараметры целевой сети (аналогично DQN).

04

Результаты эксперимента

В этом разделе проводится конкретный экспериментальный анализ на основе приведенного выше введения в среду SISL и алгоритмы MAPPO и QMIX. Сначала мы представляем процесс доступа к среде SISL (раздел 4.1), затем на основе алгоритмов MAPPO и QMIX, представленных в исходном хранилище MindSporeRL, после модификации и настройки пытаемся применить их в вновь доступной среде. тестовый эксперимент (разделы 4.2 и 4.3) завершен в среде SISL, мы покажем и представим соответствующие точки инженерного улучшения, результаты экспериментов и мысли.

4.1 Процесс доступа к среде SISL

Мы используем команду pip install pettingzoo[sisl] для установки базовой библиотеки среды SISL. Конечно, вы также можете установить базовую среду локально с помощью следующего метода:

cd ~/reinforcement/mindspore_rl/environment
git clone https://github.com/Farama-Foundation/PettingZoo.git
cd PettingZoo
pip install -e .[sisl]

На основе этой базовой среды мы инкапсулируем SISL в соответствии с режимом инкапсуляции существующей среды MindSpore Reinforcement. Для конкретной реализации кода см. sisl_environment.py.

Класс Wrapper среды SISL в основном наследует следующие классы:

from mindspore_rl.environment import Environment

Чтобы обеспечить совместимость с MindSpore Reinforcement и обучающей средой MindSpore, мы наследуем или используем следующую структуру данных в классе Wrapper среды SISL:

import mindspore as ms
from mindspore.ops import operations as P
from mindspore_rl.environment.space import Space

Изучив структуру кода MindSpore Reinforcement, мы обнаружили, что разные алгоритмы адаптируются только к конкретным средам, а не все среды и алгоритмы универсальны. Например, алгоритм MAPPO адаптирован только к среде MPE, поэтому алгоритм поддерживает только непрерывное векторное пространство состояний и пространство дискретных действий. Более того, поскольку реализация среды MPE использует несколько процессов, алгоритм MAPPO также реализуется для нескольких процессов. Специализированная адаптация. Другой пример: алгоритм QMIX адаптирован только к среде SMAC, поэтому алгоритм поддерживает только непрерывное векторное пространство состояний и пространство дискретных действий. Среда SMAC представляет собой один процесс, поэтому алгоритм QMIX подходит только для одного процесса. Таким образом, существующие алгоритмы MindSpore Reinforcement не могут универсально поддерживать дискретные и непрерывные пространства состояний или действий, а пространства состояний обычно подходят только для векторных форм. Для других форм ввода, таких как изображения, необходимо реализовать дополнительные магистральные сети, такие как CNN. Кроме того, среда доступа также требует специальной адаптации, основанной на однопроцессной или многопроцессной реализации алгоритма.

Для адаптации к алгоритму QMIX мы реализуем однопроцессную версию класса Wrapper среды SISL SISLEnvironment и инкапсулируем все API среды в соответствии с форматом инкапсуляции MindSpore Reinforcement.

Чтобы адаптироваться к алгоритму MAPPO, мы реализуем многопроцессную версию среды SISL, класс Wrapper SISLMultiEnvironment и библиотеку многопроцессорности на основе Python для реализации класса многопроцессного планирования EnvironmentProcessNew и инкапсулируем все API среды. в соответствии с форматом инкапсуляции MindSpore Reinforcement.

4.2 Эксперимент по эталонному тестированию алгоритма MAPPO

reinforcement_MAPPO
├─ example
│  ├─ make_plot.py
│  ├─ scripts
│  │  ├─ mappo_train_log.txt
│  │  └─ run_standalone_train.sh
│  └─ train_SISL.py
└─ mindspore_rl
   ├─ algorithm
   │  ├─ config.py
   │  ├─ config_SISL.py
   │  ├─ mappo.py
   │  ├─ mappo_replaybuffer.py
   │  ├─ mappo_session.py
   │  ├─ mappo_trainer.py
   │  ├─ mappo_vmap.py
   │  ├─ mappo_vmap_trainer.py
   │  ├─ mpe
   │  ├─ mpe_environment.patch
   │  ├─ mpe_environment.py
   │  ├─ on-policy
   │  ├─ sisl_environment.py
   │  └─ __init__.py
   └─ environment
      └─ sisl_environment.py

Дерево кодов среды SISL, реализованное алгоритмом MAPPO

Алгоритм MAPPO**** отделен от окружающей среды.

MAPPO в Shengsi Mindspore изначально подключен к среде MPE и при попытках членов команды может работать непосредственно в среде MPE, успешно выполняя этапы взаимодействия со средой, обучения, обновления параметров и т. д., обеспечивая корректность кода алгоритма MAPPO. В качестве экспериментальных сред SISL используются различные карты, включая Multiwalker, Pursuit и Waterworld. Однако непосредственное изменение файла config.py не может успешно работать в среде SISL. После исследования и обсуждения среди членов команды они обнаружили, что в реализации MAPPO в среде MindSpore алгоритм MAPPO тесно связан с окружающей средой. Например, в MAPPOSession.py все переменные, связанные со средой, такие как количество агентов, измерение измерения состояния и измерение возможного действия, реализованы как конкретные значения, а не переменные среды, аналогично в sisl_environment.py; определяются явно. Переменные, такие как количество агентов, которые должны быть параметрами конфигурации, удаляются. Это явное определение предотвращает передачу изменений в файле config.py внутри алгоритма, что приводит к ошибкам во время выполнения на интерфейсе сети ввода объектов.

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

Доступ MAPPO к среде SISL****

После завершения вышеуказанной работы мы можем убедиться в корректности алгоритма MAPPO и корректности передачи параметров файла конфигурации в алгоритм. Впоследствии члены команды начали подключаться к среде SISL. В рамках MindSpore разные алгоритмы соответствуют разным средам и имеют разное исполнение. В процессе отладки мы обнаружили, что для многопоточной версии среды SISL количество многопоточных потоков и количество сред, существующих в каждом потоке, не могут быть напрямую изменены. среда приведет к зависанию алгоритма в определенной точке, кроме того, во время выполнения кода из-за несоответствия типов данных, например, numpy.int32 несовместим с int32, что приводит к проблемам среды; преобразование; из среды возвращается горячее кодирование действия, которое не может напрямую вводить его в определенную сеть Mappo для обучения и других проблем.

После решения проблем с типом данных и взаимодействием со средой члены команды обучили MAPPO в среде SISL. Однако согласно коду обучения по умолчанию программа сообщала об ошибке и завершала работу после каждого обучения из 19 эпизодов. После обсуждения членами команды и построчной отладки в соответствии с исходным кодом обучения, после каждого обучения он не содержит подсказки об усечении для завершения эпизода, поэтому, когда начинается следующий раунд обучения, среда из предыдущего Раунд продолжится. Выполнение начнется в этом состоянии, и количество выполненных шагов предыдущего раунда среды не будет очищено. Поскольку среда Pursuit настроена на максимальное количество шагов выполнения, после запуска до максимального количества выполнений среды, в соответствии со структурой среды, все награды и наблюдения в функции запуска sisl_environment.py, которые выполняются для Среда последнего шага будет очищена, а функция запуска не будет. Очищенные переменные не обрабатываются, поэтому во время выполнения функции, когда достигается максимальное количество шагов, указанное средой, программа выходит из строя. Это также является причиной. почему программа выдает ошибку после каждых 19 серий обучения. Поэтому члены команды добавили тест, чтобы проверить, достигнуто ли установленное максимальное число. Если максимальное число достигнуто, среда отправляет сигнал обрезания, завершает функцию запуска и сбрасывает среду.

После решения вышеуказанных трудностей алгоритм MAPPO смог успешно работать в среде SISL. Установите информацию о состоянии, необходимую для MAPPO, для объединения всех наблюдений агентов и запустите максимум 500 эпизодов. Каждый эпизод содержит 500 временных шагов. Проводите эксперименты MAPPO в среде SISL и рисуйте кривые вознаграждения и потерь во время обучения. После завершения обучения мы получаем следующие результаты:

картина

4.3 Эксперимент по эталонному тестированию алгоритма QMIX

reinforcement_QMIX
├─ example
│  ├─ qmix
│  │  ├─ eval.py
│  │  ├─ scripts
│  │  │  ├─ run_standalone_eval.sh
│  │  │  └─ run_standalone_train.sh
│  │  └─ train.py
│  └─ __init__.py
└─ mindspore_rl
   ├─ algorithm
   │  ├─ qmix
   │  │  ├─ config.py
   │  │  ├─ qmix.py
   │  │  ├─ qmix_session.py
   │  │  ├─ qmix_trainer.py
   │  │  ├─ _config.py
   │  │  ├─ __init__.py
   │  └─ __init__.py
   └─ environment
      ├─ sc2_environment.py
      └─ sisl_environment.py

Дерево кода среды SISL, реализованное алгоритмом QMIX

Исправление алгоритма QMIX

В ходе реализации мы обнаружили, что в среде MindSpore исходный алгоритм QMIX и соответствующая ему экспериментальная среда SMAC не могут работать, а процедура eval.py также сообщает об ошибке и не может быть запущена. Поэтому, чтобы проверить корректность алгоритма и возможности среды, мы сначала пересмотрели алгоритм QMIX и соответствующую среду, реализованную в рамках.

Поскольку фреймворк MindSpore использовался впервые, члены команды обнаружили, что сообщение об ошибке фреймворка не было очевидным во время эксперимента. После обсуждения и сотрудничества между членами команды было обнаружено, что это связано с повторным использованием наследования и перегрузки в структуре, а также базовой вычислительной логики для перевода языка Python в граф вычислений cpp для вычислений, что привело к почти одни и те же отчеты об ошибках, а отладчик в рамках не всегда может вернуть соответствующее место ошибки.

Путем построчной отладки мы обнаружили, что в реализованном классе QMIXTrainer должен был быть возвращен save_reward, но Step_info в среде SMAC был возвращен неправильно. После отладки алгоритм QMIX можно проверить правильно в одной из сред SMAC.


Отделение алгоритма QMIX от среды

 

Основываясь на предыдущем опыте членов команды, SMAC имеет различные карты в качестве экспериментальных сред, например 2s3z, реализованную в Shengsi MindSpore, а также 3m, 3s5z и т. д. Однако когда мы изменяем соответствующий файл config.py, как описано в документе, исходную программу невозможно запустить напрямую. После исследования и обсуждения среди членов команды они обнаружили, что в реализации QMIX в среде MindSpore алгоритм QMIX тесно связан с окружающей средой. Например, в QMIXTrainer почти все переменные, связанные со средой, такие как количество агентов Agent_num, измерение наблюдения obs_shape и измерение возможного действия, реализованы как конкретные значения, а не переменные среды.


  • Вышеупомянутая функция Assessment() повторно используется на этапах обучения и тестирования, и возникают описанные выше проблемы. Разделите их здесь, чтобы избежать функциональной путаницы.

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

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

В среде 3s5z, используя наш код для тестирования QMIX, мы получаем следующие результаты:

картина

Доступ QMIX к среде SISL

После завершения вышеуказанной работы мы можем убедиться в корректности алгоритма QMIX и получить соответствующие результаты в соответствующей среде SMAC. Впоследствии члены команды начали подключаться к среде SISL. Как упоминалось ранее, в среде MindSpore разные алгоритмы соответствуют разным средам и имеют разное исполнение. Алгоритм QMIX реализует только однопоточную версию, поэтому он несовместим с вышеупомянутой средой MAPPO. В процессе отладки мы обнаружили, что однопоточная версия среды SISL никогда не может работать нормально. Местоположение ошибки трудно определить. Ее содержание: невозможно привести экземпляр Python к типу C++.

Члены команды обсудили и отладили построчно и обнаружили, что фреймворк MindSpore использует нижний уровень Cpp для компиляции в граф вычислений для ускоренных вычислений, поэтому существует процесс перевода с Python на CPP, и этот процесс немного отличается от традиционный процесс запуска Python. Традиционная программа Python является интерпретируемым языком, и программа выполняется практически построчно, в то время как cpp, как компилируемый язык, необходимо полностью скомпилировать и запустить; Из-за этого члены команды предположили, что такое смешивание привело к вышеупомянутой неясной проблеме с отчетами об ошибках. При этом вам необходимо постоянно проверять тип данных каждой переменной в процессе написания программы. В отличие от традиционного Python, numpy.int32 не совместим с int32, что приводит к необходимости тратить много времени. проверка типа данных каждого шага от среды до алгоритма.

Столкнувшись с возникшими трудностями, студенты в группе попытались поочередно проверить типы данных каждого типа данных в среде и алгоритме, но им так и не удалось определить конкретную переменную, в которой возникла проблема, и место, где возникла проблема. Кроме того, мы реализовали многопроцессную версию среды SISL и запустили код MAPPO. После обсуждения члены команды пришли к выводу, что проблема вызвана несоответствием между типом данных и вызываемым базовым типом данных C++. Трудно обнаружить проблему с помощью точечной отладки. Необходимо попробовать компиляцию и отладку. В то же время этот вопрос мало связан с содержанием курса обучения с подкреплением, поэтому мы не стали дальше тратить время на отладку реализации алгоритма QMIX в однопроцессной среде SISL.

05

в заключение

В этом эксперименте по обучению с подкреплением наша команда успешно подключила игровую тестовую среду для сценариев многоагентного взаимодействия — SISL (Стэнфордская лаборатория интеллектуальных систем) к платформе MindSpore и попыталась использовать для этого алгоритмы QMIX и MAPPO. В ней были проведены тесты производительности; экспериментальная среда. После выполнения различных требований, приведенных в задании, мы также имеем более глубокое понимание базовой архитектуры MindSpore, что поможет нам более умело применять библиотеку MindSporeRL в нашей научно-исследовательской деятельности в будущем.

Рекомендации

[1]. Мних В., Кавукчуоглу К., Сильвер Д. и др. Игра в Atari с глубоким обучением с подкреплением[J]. Препринт arXiv arXiv:1312.5602, 2013.

[2]. Сильвер Д., Хуан А., Мэддисон С.Дж. и др. Освоение игры в го с помощью глубоких нейронных сетей и поиска по дереву[J]. природа, 2016, 529(7587): 484-489.

[3]. Сильвер Д., Шритвизер Дж., Симонян К. и др. Освоение игры го без ведома человека[J]. природа, 2017, 550(7676): 354-359.

[4]. Виньялс О, Бабушкин И, Чарнецкий ВМ и др. Уровень гроссмейстера в StarCraft II с использованием многоагентного обучения с подкреплением[J]. Природа, 2019, 575(7782): 350-354.

[5]. Брокман Г., Чунг В., Петтерссон Л. и др. Тренажерный зал Опенай[J]. Препринт arXiv arXiv:1606.01540, 2016.

[6]. Тодоров Э., Эрез Т., Тасса Ю. Мужоко: Физический двигатель для управления на основе моделей[C] // Международная конференция IEEE/RSJ 2012 по интеллектуальным роботам и системам. ИИЭР, 2012: 5026-5033.

[7]. Мордатч И., Аббил П. Появление обоснованного композиционного языка в мультиагентных популяциях[C]//Материалы конференции AAAI по искусственному интеллекту. 2018, 32(1).

[8]. Ромо Л., Джайн М. Обучение с подкреплением PySC2[J].

[9]. Самвелян М., Рашид Т., Де Витт К.С. и др. Мультиагентное испытание Starcraft[J]. Препринт arXiv arXiv:1902.04043, 2019.

[10]. Ю С, Велу А, Виницкий Е и др. Удивительная эффективность ppo в кооперативных многоагентных играх[J]. Достижения в области нейронных систем обработки информации, 2022, 35: 24611-24624.

[11]. Рашид Т., Самвелян М., Де Витт К.С. и др. Монотонная факторизация функции значения для глубокого многоагентного обучения с подкреплением [J]. Журнал исследований машинного обучения, 2020, 21 (1): 7234-7284.

[12]. https://pettingzoo.farama.org/environments/sisl/

[13]. Шульман Дж., Вольски Ф., Дхаривал П. и др. Алгоритмы оптимизации проксимальной политики[J]. Препринт arXiv arXiv:1707.06347, 2017.

[14]. Джон Шульман, Филипп Мориц, Сергей Левин, Майкл Джордан и Питер Аббил. Многомерное непрерывное управление с использованием обобщенной оценки преимуществ. В материалах Международной конференции по обучению представлениям (ICLR), 2016.

Программист, родившийся в 1990-х годах, разработал программу для переноса видео и заработал более 7 миллионов менее чем за год. Концовка была очень суровой! Google подтвердил увольнения, связанные с «проклятием 35-летней давности» китайских программистов в командах Flutter, Dart и . Python Arc Browser для Windows 1.0 через 3 месяца официально Доля рынка Windows 10 достигает 70%, Windows 11 GitHub продолжает снижаться GitHub выпускает собственный инструмент разработки AI GitHub Copilot Workspace JAVA. — единственный запрос строгого типа, который может обрабатывать OLTP+OLAP. Это лучший ORM. Мы встречаемся слишком поздно.
{{o.name}}
{{м.имя}}

рекомендация

отmy.oschina.net/u/4736317/blog/11072547
рекомендация