Unity розробила гру спеціально для нейромережевих ботів

Компанія Unity Technologies оголосила про запуск конкурсу для алгоритмів машинного навчання, призначених для проходження комп'ютерних ігор. Вони змагатимуться в ігровому середовищі, що складається зі ста рівнів, в кожному з яких алгоритму необхідно буде вирішувати завдання, щоб просунутися далі. Загальний призовий фонд змагання становить понад сто тисяч доларів, а його старт призначено на 11 лютого, повідомляється в блозі Unity. Опис ігрового середовища і результати перших експериментів опубліковані в статті, представленій на конференції AAAI-2019.


Для людини навчитися грати в комп'ютерну гру на непоганому рівні - просте завдання, що вимагає відносно трохи часу. Однак для комп'ютерних алгоритмів навіть прості 2D-платформери являють собою складне завдання. В останні роки дослідники почали використовувати для її вирішення алгоритми машинного навчання, при використанні яких агент навчається грі, а не просто виконує закладені в нього скрипти. Але для навчання таких алгоритмів гру необхідно адаптувати і створити API для взаємодії агента з грою. Крім того, сама механіка ігор, створених для людини, може бути не адаптована під проходження ботом.


Компанія Unity Technologies, що розробляє один з найпопулярніших ігрових движків Unity, створила ігрове середовище Obstacle Tower, призначене саме для навчання алгоритмів. Вона являє собою ігровий світ, що складається з вежі зі ста поверхами. Кожен поверх складається з декількох кімнат, в одній з яких агент починає гру, а в іншій може переміститися на наступний рівень, причому кількість кімнат збільшується з кожним поверхом вежі. Для доступу на наступний поверх алгоритму необхідно вирішити певні завдання на поточному рівні, наприклад, впоратися з головоломками або перемогти ворогів. Час проходження рівня обмежений, але агент може збільшувати його, збираючи капсули часу і проходячи рівні. Особливість гри полягає в тому, що рівні створюються за допомогою процедурної генерації, завдяки чому гра перевіряє генералізованість вивчених алгоритмом навичок.

Під час гри агент отримує два типи даних: кольорове зображення з роздільною здатністю 168 на 168 пікселів, а також допоміжний вектор, створюваний з кількості ключів, які зібрав агент на цьому рівні, а також часу, що залишився на проходження рівня. Агент може рухатися в чотири сторони, повертатися в дві сторони, а також стрибати. Оскільки розробники розглядають Obstacle Tower як середовище для алгоритмів навчання з підкріпленням, вони реалізували дві функції винагороди. При грі в одному з них агент отримує нагороду тільки за прибуття до останніх дверей, що ведуть на наступний поверх, а в другому режимі він отримує нагороду і за проміжні події, такі як збір ключів і відкриття дверей між кімнатами.

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

Розробники опублікували на GitHub першу версію середовища, що складається з 25 перших рівнів, а також збираються опублікувати повну версію. Конкурс Obstacle Tower Challenge на першій версії середи розпочнеться 11 лютого і триватиме до 31 березня, а його етап змагань на повній 100-рівневій версії пройде з 15 квітня по 14 червня.

У 2017 році компанія Blizzard оголосила про створення відкритого API для багатокористувацької гри StarCraft II, що дозволяє стороннім розробникам навчати свої алгоритми на цій грі. Наприкінці січня 2019 року пройшли змагання між нейромережею AlphaStar, розробленою DeepMind, і гравцями в StarCraft II, що входять до сотні найсильніших гравців світу. За підсумками змагань дві версії нейромережі перемогли двох гравців, вигравши по п'ять матчів з п'яти.

COM_SPPAGEBUILDER_NO_ITEMS_FOUND