Мельник Євгеній Іванович

студент Харківського національного університету радіоелектроніки 

м. Харків

 

 Анотація: Цей документ представляє нещодавні досягнення навчання з підкріпленням в області стратегій реального часу та Starcraft зокрема. Використовується мультиагентний A2C та асинхронний градієнтний спуск для оптимізації глибоких нейронно-мережевих контролерів. Ідея описана тут може використовуватися для ігор, робототехніки та проблем, пов'язаних з відсутністю попередніх знань агента про навколишнє середовище.

 Ключові слова: reinforcement learning, actor critic, deepmind, starcraft, deep learning

 

Введення та проблема

 Завдяки розвитку глибокого навчання в області навчання з підкріпленням почали з’являтися агенти, що здатні вчитися діяти у великих розмірах вхідних даних. Наприклад, алгоритми, такі як Deep Q-Network (DQN) змогли досягти виступів на рівні людини на більшості класичних ігор ATARI 2600, де контролер навчався безпосередньо з сирих пікселів і без будь-якого додаткового нагляду. Тим не менш, більша частина робот , які в даній області пов’язані з середовищами, де усі можна змоделювати та побачити усі можливі вхідні, а набір дій - відносно невеликий. Щоб вирішити величезну більшість проблем реального життя, агенти повинні, натомість, бути спроможними обробляти часткові спостереження, структурована і складна динаміка, і зашумлені та високорозмірні керуючі інтерфейси.

 Група дослідників штучного інтелекту Google, DeepMind нещодавно випустили python API pySC2 для популярної стратегії StarCraftII [1]. Після успішних перемог у Go, зі своїми агентами AlphaGo, DeepMind встановила свої погляди на наступному великому виклику для систем інтелектуальної власності у спробі навчити їх системи, щоб навчитися конкурувати з чемпіонами світу в досконало складному світі StarCraft.

 Стратегії в режимі реального часу (RTS) історично є областю інтересів у дослідницької спільноти. Цей тип ігор має на меті імітувати контроль кількох військових одиниць в різних масштабах і рівнях складності, зазвичай на 2D карті фіксованого розміру, в дуелі або в невеликих командах. Мета гравця - збирати ресурси, які можна використовувати для розширення їхнього контролю на карту, створювати будівлі та підрозділи для боротьби з розгортанням ворога, і в кінцевому підсумку знищити противників. Одна з причин, чому ці ігри настільки важкі є те, що високий рівень гри вимагає мислення та дії на різних рівнях абстракції. Гра вимагає управління ресурсами, складання плану будівництва, визначення пріоритетів розвитку технологій, розвідки, мікро-управління військами, а також загальна стратегія та способи протидії стратегії супротивника. Побудувати AI, який зможе зробити все це добре буде дуже важко. Метою даної роботи було відтворити результати оригінальної роботи, спробувавши оптимізувати алгоритм для меншого використання обчислювальних ресурсів.

 Архітектура агента

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

 Використовуваним агентом є агент FullyConv з деякими покращеннями вихідних шарів. Запропонована мережа не має кроків і використовує заповнення на кожному шарі, тим самим зберігаючи роздільну здатність просторової інформації на вході. Для простоти, ми припускаємо, що екран та мінімальні входи мають однакову роздільну здатність. Спостереження екрану та мінікарти передаємо у 2 згорткових шари нейронної мережі з 16, 32 фільтрами розміром 5 × 5, 3 × 3 відповідно. Представлення стану потім утворюється шляхом об’єднання екрана та мінікартних виходів мережі, а також розповсюдження вектору категоріальних елементів вздовж розмірності каналу.

 Категоріальний векторний вектор включає в себе спостереження про стан користувача, такі як player_id, мінерали, веспен, харчові продукти (інакше називаються постачанням), максимум їжі, продукти, що використовуються армією, харчування, що використовується працівниками. Крім того, кроки гри додані до категоріальних функцій, щоб стимулювати агента виконувати швидше, оскільки, щоб дізнатися лише про незначні нагороди, потрібно більше часу. Для того, щоб обчислити значення та правила над категоріальними (непросторовими) діями, стан спочатку проходить через повністю з’єднаний шар з 256 одиницями та активацією ReLU, за яким слідують повністю пов’язані лінійні шари. Ці лінійні шари представляють типи дій та параметри дії. Наприклад, функція move_camera приймає точку на мінімапу як параметр, тоді як select_rect для вибору армії вимагає три параметри: прапор, що показує необхідність додати до існуючого вибору та дві точки на екрані. Таким чином, непросторовий вихід має декілька рівнів, які є розподілом над діями разом з розподілом за кожним варіантом типу параметрів [4]. Нарешті, політика щодо просторових дій, точок на карті, отримується з використанням 1 × 1 згортки стану з єдиним вихідним каналом.

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

Результати досліджень

 Для оцінки роботи алгоритму DeepMind бере середнє значення індивідуальних оцінок після 100 ігор для кожної гри, де початковий коефіцієнт навчання був випадково відібраний для кожного запуску. Я використовую постійний початковий швидкість навчання для значно меншої кількості пробігів через обмеженість апаратного забезпечення. Всі агенти використовують один і той же агент FullyConv. З налаштування за замовчуванням (32 середовища), навчання MoveToBeacon до конкурентного ріня займає від 3K до 8K повних епізодів. Це залежить від кожного запуску в залежності від випадкової ініціалізації та вибірки дій. На комп’ютері з Nvidia GTX 1060 і Core i7 6700 це займає близько 2 годин.

 

Мапа

Цей агент

Deepmind

MoveToBeacon

26

26

CollectMineralShards

102

103

FindAndDefeatZerglings

43

45

DefeatRoaches

90*

100

DefeatZerglingsAndBanelings

42*

62

CollectMineralsAndGas

3340

3978

BuildMarines

0.55

 3

 

Висновки

 Підводячи підсумок, робота була успішною, вдалося відтворювати результати оригінального паперу зі значно меншими обчислювальними ресурсами. Все ще є багато можливостей для вдосконалення існуючого рішення: використання алгоритмів типу PPO [5] або альтернативних підходи, наприклад, ієрархічного навчання [7] або допоміжних завдання [6].

 

Література

[1] O. Vinyals, T. Ewalds, S. Bartunov, P. Georgiev, StarCraft II: A New Challenge for Reinforcement Learning, 2017.

[2] V. Mnih. Asynchronous Methods for Deep Reinforcement Learning, 2016.

[3] Y. Wu, E. Mansimov. Scalable trust-region method for deep reinforcement learning using Kronecker-factored approximation, 2017.

[4] L. Metz, J. Ibarz. Discrete Sequential Prediction of Continuous Actions for Deep RL, 2017.

[5] J. Schulman, F. Wolski. Proximal Policy Optimization Algorithms, 2017.

[6] M. Jaderberg, V. Mnih. Reinforcement Learning with Unsupervised Auxiliary Tasks, 2016.

[7] T. D. Kulkarni, K. R. Narasimhan. Hierarchical Deep Reinforcement Learning: Integrating Temporal Abstraction and Intrinsic Motivation, 2016.