Разработчики из OpenAI создали нейросетевых агентов, самостоятельно обучившихся различным стратегиям игры в прятки. Например, в начале прячущиеся агенты научились блокировать проходы большими блоками, однако через некоторое время ищущие агенты научились использовать блоки-лестицы для преодоления стен, после чего первые стали блокировать и лестницы, рассказывают авторы в блоге, а также в статье.
Обычно при обучении нейросетевых алгоритмов используется метод обучения с учителем. Например, чтобы обучить алгоритм распознавать котов на фотографиях, легче всего предоставить ему множество фотографий, на которых будут размечены коты и другие объекты. Таким образом, обучаемый алгоритм в явном виде получает примеры работы. Однако есть и совершенно другой подход, называемый обучением с подкреплением. Он подразумевает, что алгоритм получает лишь абстрактную награду или штраф от среды обучения.
Исследователи из OpenAI давно используют этот подход для обучения алгоритмов сложному поведению. Например, среди недавних работ можно выделить роборуку, которая научилась десятки раз подряд переворачивать кубик пальцами в нужное положение. В новой работе исследователи решили использовать этот метод для обучения алгоритмов коллективному поведению на примере игры в прятки.
Среда обучения представляет собой плоский виртуальный полигон, на котором располагаются сами агенты, а также неподвижные и подвижные препятствия. Как правило, агенты обучались в формате команд два на два или три на три, и награда или штраф зависела от поведения всех напарников в каждой команде. Задача агентов-ловцов заключается в том, чтобы держать укрывающихся агентов в прямой видимости, а укрывающиеся агенты наоборот стремятся не попадаться на глаза ловцам. Перед началом каждого раунда укрывающейся команде дается небольшое время на подготовку.
Правила взаимодействия со средой одинаковы для обоих команд. Агенты могут двигаться сами, двигать подвижные объекты, а также блокировать их, делая неподвижными, причем разблокировать их после этого может только та же команда, но не соперники. Агенты также могут смотреть на среду с помощью виртуальных лидара и камеры.
Разработчики протестировали три вида подвижных блоков: кубы, лестницы (половина куба) и длинные подвижные стены. Кроме того, неподвижные препятствия также менялись: сначала полигон представлял собой большую комнату и малую, связанные двумя проходами, а затем агенты соревновались в более открытой обстановке. Каждый раунд длится 240 условных шагов, причем первые 96 из них укрывающаяся команда прячется, а команда ловцов не может двигаться, и обе команды не получают никакую награду или штраф.
Исследователи обучали копии алгоритмов параллельно, периодически обновляя их поведение. Изначально агенты двигались случайным образом, затем ловцы научились преследовать укрывающихся агентов, а через примерно 25 миллионов раундов наступил переломный момент, при котором укрывающиеся агенты научились изменять окружающую среду, передвигая подвижные блоки и формируя из них комнату. Еще через примерно 75 миллионов раундов ловцы выработали ответную стратегию и научились приставлять лестницы к стенам, чтобы перепрыгивать через них и попадать в заблокированную укрывающейся командой комнату. Спустя еще 10 миллионов раундов укрывающаяся команда нашла ответ на это — они научились блокировать все ненужные им блоки, чтобы они не достались соперникам. А в некоторых форматах экспериментов укрывающиеся агенты просто затаскивали к себе в комнату все блоки и оставляли ловцов ни с чем.
Исследователи отметили, что укрывающиеся агенты научились еще более впечатляющему навыку. В случае, когда блоки располагались далеко, для достижения общей цели они стали по дороге подтягивать блок ближе к напарнику, после чего принимались за основную цель. Авторы отмечают, что в некоторых случаях агенты удивляли их, используя стратегии поведения, о которых разработчики не знали. Например, после блокировки лестниц укрывающейся командой ловцы научились придвигать к ним блоки, взбираться по заблокированной лестнице, а затем двигаться верхом на блоке к нужному месту.
В начале года компания Unity Technologies представила виртуальную среду для соревнования между алгоритмами, разработанными для прохождения компьютерных игр. Она представляет собой башню из ста этажей, на каждом из которых алгоритму нужно выполнять задания для прохода на следующий уровень.
Иллюстрация к статье:
Обсуждение