DeepMind навчила нейромережу грі в StarCraft 2. І вона програла легкому боту

Команда розробників з DeepMind і Blizzard слідом за релізом API для навчання машин грі в StarCraft 2 розповіла про перші результати на цьому терені. Дослідники створили кілька базових архітектур на основі нейромереж, навчили їх, і випробували в серії міні-ігор, а також в матчах 1 на 1 проти найслабшого з вбудованих в StarCraft 2 скриптових ботів. Повні результати опубліковані у вигляді препринту, доступного в блозі DeepMind.


Незважаючи на те, що існує безліч ботів для різних комп'ютерних ігор, у разі стратегій на кшталт StarCraft 2 штучному інтелекту так і не вдалося перемогти людину. Але більшість подібних ботів є скриптовими, тобто спочатку в них закладена певна стратегія, якої вони йдуть всю гру. На максимальних рівнях складності ботам також зазвичай даються «бонуси» у вигляді додаткових стартових будівель, юнітів та інших внутрішньоігрових ресурсів, щоб зробити бій цікавішим для досвідченого гравця-людини. Однак в останні кілька років завдяки методам машинного навчання вдалося створити навчальних ботів. Вони добре проявили себе в іграх з відкритою інформацією, наприклад, настільній грі го, проте в іграх з частковою інформацією (наприклад, комп'ютерних стратегіях) людина все ще виявляється сильнішою.


Колектив DeepMind завдяки новому API для StarCraft 2 навчив випробував у цій грі кількох ботів на основі нейромереж. Автори вивчали як системи, що навчаються з підкріпленням, так і ботів, які навчалися з учителем - розміченими даними в цьому випадку виступали записи ігор людей. Результати порівнювалися з роботою найслабшого зі скриптових ботів, вбудованих в StarCraft, а так само з роботою абсолютно випадкового бота, з грою людини-аматора і гравця, який досяг максимального ранку «грандмайстер» в турнірній драбині StarCraft.

Найпростішим випробуванням для нейромереж була серія міні-ігор з примітивними завданнями: пересунути юніта в потрібну точку, видобувати мінерали, видобувати мінерали і газ, побудувати піхотинців і так далі. У цих випробуваннях гравець-грандмайстер досяг практично максимально досяжних показників, гравець-аматор теж був близький до них, а ось нейромережі не завжди справлялися із завданням. Так, у місії на видобуток кристалів і газу тільки одна архітектура зметикувала, що можна побудувати додаткових робітників, тоді видобуток кристалів прискориться. Зазначимо, що ці нейромережі навчалися з підкріпленням, тобто спочатку їм не повідомлялося ніяких «підказок». Все, що вони могли - це дізнаватися свій поточний «рахунок» (наприклад, здобуті ресурси) і виконувати одне з декількох десятків або сотень доступних дій (пересунути камеру, виділити юніт, пересунути юніт, побудувати юніт і так далі). Найскладнішою грою (але і найближчою до реального бою), як і очікувалося, була споруда піхотинців, в ній боти не надто далеко пішли від повністю випадкової системи. І тільки в одній міні-грі нейромережам вдалося наблизитися до результату грандмайстрів: у завданні «пересунь юніта в зазначену точку».

Іншим випробуванням була повноцінна гра нейромережі проти вбудованого легкого бота. У переважній кількості випадків нейромережі програвали, а рідкісні випадки нічиїх досягалися тільки завдяки заздалегідь встановленій відсічці в 30 хвилин. Якщо в якості «рахунку» на який спиралися нейромережі, використовувалося «-1» - програв, «0» - нічия, «1» - виграв, тобто боти отримували відгук тільки по закінченню гри, велика частина архітектур не змогла хоч якось пристосуватися до гри. Тим не менш, одній нейромережі вдалося створити і застосувати цікаву стратегію: вона скористалася здатністю будівель Терранів (однієї з ігрових рас) злітати і тікати від армії противника, дотягуючи таким чином до нічиєї. Якщо ж в якості рахунку використовувався Blizzard score (сукупна оцінка всіх видобутих ресурсів, побудованих будівель і юнітів і так далі), то максимум, на що вистачало нейромереж - це не відволікати робітників від видобутку ресурсів. У цьому випадку рахунок стабільно зростав, поки не приходила армія суперника.

Нарешті, розробники також навчали ботів на записах реальних ігор, наданих Blizzard. У цьому випадку нейромережі в основному вчилися передбачати результат партії, спираючись на «кадр» з гри. За результатами виявилося, що в перші кілька хвилин програма не могла передбачити, хто виграє (що не дивно для таких ранніх етапів гри), то ближче до кінця нейромережа передбачала результат партії з точністю до 64 відсотків. При цьому програмам вдавалося до якоїсь міри передбачати наступну дію гравця. Подібні операції є базовими для гравців-ботів, і надалі саме на таких оцінках нейромережі будуватимуть свої дії.

Автори відзначають, що до нинішніх результатів варто ставитися лише як до попередніх, і навіть прості стратегії, до яких нейромережам вдалося дійти самим, можна вважати першими успіхами в підкоренні StarCraft 2. Вчені зробили висновок, що в майбутньому варто тестувати будь-яку перспективну архітектуру на міні-іграх, оскільки в них боти повинні показувати показники, близькі до людських, в іншому випадку навряд чи варто очікувати, що нейромережі освоють більш складні аспекти гри. Так, використовуючи міні-ігри, іншій команді дослідників вдалося навчити нейромережу найпростіших тактичних прийомів на кшталт Hit & Run - тактики, при якій юніти з дистанційною атакою короткими перебіжками йдуть від ближнього бою в перервах між пострілами.

Раніше цього тижня спочатку команда з FaceBook виклала базу передоброблених записів ігор STARDATA для машинного навчання, а незабаром і Blizzard у співпраці з DeepMind оголосив про вихід API для StarCraft і бібліотеки для Python, що забезпечує зв'язку API з популярними системами машинного навчання.


COM_SPPAGEBUILDER_NO_ITEMS_FOUND