Нейромережеві персонажі самостійно навчилися грати в хованки

Розробники з OpenAI створили нейромережевих агентів, які самостійно навчилися різним стратегіям гри в хованки. Наприклад, на початку ховаються агенти навчилися блокувати проходи великими блоками, проте через деякий час шукаючі агенти навчилися використовувати блоки-сходи для подолання стін, після чого перші стали блокувати і сходи, розповідають автори в блозі, а також у статті.


Зазвичай при навчанні нейросетевих алгоритмів використовується метод навчання з учителем. Наприклад, щоб навчити алгоритм розпізнавати котів на фотографіях, найлегше надати йому безліч фотографій, на яких будуть розмічені коти та інші об'єкти. Таким чином, навчаний алгоритм в явному вигляді отримує приклади роботи. Однак є і зовсім інший підхід, званий навчанням з підкріпленням. Він передбачає, що алгоритм отримує лише абстрактну нагороду або штраф від середовища навчання.


Дослідники з OpenAI давно використовують цей підхід для навчання алгоритмів складної поведінки. Наприклад, серед недавніх робіт можна виділити роборуку, яка навчилася десятки разів поспіль перевертати кубик пальцями в потрібне положення. У новій роботі дослідники вирішили використовувати цей метод для навчання алгоритмів колективної поведінки на прикладі гри в хованки.

Середовище навчання являє собою плоский віртуальний полігон, на якому розташовуються самі агенти, а також нерухомі і рухомі перешкоди. Як правило, агенти навчалися у форматі команд два на два або три на три, і нагорода або штраф залежала від поведінки всіх напарників у кожній команді. Завдання агентів-ловців полягає в тому, щоб тримати переховуються агентів у прямій видимості, а переховуються агенти навпаки прагнуть не попадатися на очі ловцям. Перед початком кожного раунду команді, що ховається, дається невеликий час на підготовку.

Правила взаємодії з середовищем однакові для обох команд. Агенти можуть рухатися самі, рухати рухомі об'єкти, а також блокувати їх, роблячи нерухомими, причому розблокувати їх після цього може тільки та ж команда, але не суперники. Агенти також можуть дивитися на середовище за допомогою віртуальних лідара і камери.

Розробники протестували три види рухомих блоків: куби, сходи (половина куба) і довгі рухливі стіни. Крім того, нерухомі перешкоди також змінювалися: спочатку полігон являв собою велику кімнату і малу, пов'язані двома проходами, а потім агенти змагалися у більш відкритій обстановці. Кожен раунд триває 240 умовних кроків, причому перші 96 з них команда ховається, а команда ловців не може рухатися, і обидві команди не отримують ніяку нагороду або штраф.

Дослідники навчали копії алгоритмів паралельно, періодично оновлюючи їх поведінку. Спочатку агенти рухалися випадковим чином, потім ловці навчилися переслідувати агентів, а через приблизно 25 мільйонів раундів настав переломний момент, при якому переховуються агенти навчилися змінювати навколишнє середовище, пересуваючи рухомі блоки і формуючи з них кімнату. Ще через приблизно 75 мільйонів раундів ловці виробили відповідну стратегію і навчилися приставляти сходи до стін, щоб перестрибувати через них і потрапляти в заблоковану кімнату. Ще через 10 мільйонів раундів команда знайшла відповідь на це - вони навчилися блокувати всі непотрібні їм блоки, щоб вони не дісталися суперникам. А в деяких форматах експериментів агенти просто затягували до себе в кімнату всі блоки і залишали ловців ні з чим.

Дослідники відзначили, що переховуються агенти навчилися ще більш вражаючому навичці. У випадку, коли блоки розташовувалися далеко, для досягнення спільної мети вони стали по дорозі підтягувати блок ближче до напарника, після чого приймалися за основну мету. Автори зазначають, що в деяких випадках агенти дивували їх, використовуючи стратегії поведінки, про які розробники не знали. Наприклад, після блокування сходів ховається командою ловці навчилися присувати до них блоки, підійматися заблокованими сходами, а потім рухатися верхи на блоці до потрібного місця.


На початку року компанія Unity Technologies представила віртуальне середовище для змагання між алгоритмами, розробленими для проходження комп'ютерних ігор. Вона являє собою вежу зі ста поверхів, на кожному з яких алгоритму потрібно виконувати завдання для проходу на наступний рівень.

COM_SPPAGEBUILDER_NO_ITEMS_FOUND