Размышления о будущем машинного обучения, вызванные очередными успехами AlphaStar
AlphaStar — это алгоритм для игры в StarCraft от компании DeepBrain, той самой, которая когда-то победила человека в го: вначале
чемпиона Европы, затем
Ли Седоля, а потом уже и
сильнейшего из людей, Кэ Цзе. StarCraft — игра намного более сложная по сравнению с го и уж, тем более, по сравнению с шахматами: количество возможных позиций актуально бесконечно с позиции любой разумной прагматики, в игре неполная информация (действия противника можно понять только если хорошо разведывать), ну и так далее.
Я к StarCraft отношусь с большой нежностью, поэтому за приключениями AlphaStar следил с большим любопытством. Горячие публичные обсуждения начались в январе 2019-го года, когда в выставочном матче AlphaStar обыграл очень сильного профессионального игрока. Про это можно почитать в
блоге DeepMind, хорошая русскоязычная адаптация
есть на Хабре. Там же (да и в других местах) в подробностях обсуждали, что алгоритм всё-таки
делает слишком много кликов; не было понятно, видит ли он карту целиком (люди так не умеют) или же только небольшой её кусочек; были и какие-то более мелкие подозрительные моменты.
Я к этим подозрениям всегда относился очень спокойно. Даже если алгоритм кликает слишком быстро, всё равно он кликает на ранее недостижимом (для алгоритмов) уровне умности. Два моих любимых момента: в первом
AplhaStar берёт человеческие войска в «котёл», во втором —
производит дополнительного рабочего, что резко расходится с общепринятой практикой на начальной стадии игры, оцените эмоции комментатора! Конечно, лишние или хотя бы более точные клики очень помогают победить, но вот эти чисто тактические действия, конечно, никак с кликами не связаны. Если хочешь выиграть за количество кликов — будешь играть совсем по-другому.
Короче, было ясно, что получение совсем честного и при этом круто играющего алгоритма — дело времени. И вот время пришло. AlphaStar начал играть на BattleNet и два дня назад прошёл в высшую профессиональную лигу. Про это вышло
сообщение в блоге DeepMind, а ещё есть
статья в Nature. Заявляется несколько очень важных апдейтов:
— алгоритм теперь лимитирован примерно так же, как и человек: может действовать только в рамках того, что попадает в область обзора камеры;
— умеет играть за все три игровые расы;
— учится, что называется, from scratch, полностью автоматически. В прошлых сериях строились целые стратегические карты и из множества агентов для будущей игры ещё нужно было как-то выбирать.
Такие обновления в алгоритме и их результативность — это очень-очень круто, мы (человечество) всё лучше начинаем нащупывать подходы в обучении с подкреплением.
Обучение с подкреплением (reinforcement learning) — это когда есть система, на неё можно разными способами действовать, в ответ получать реакции (какой-то профит, грубо говоря) и учиться действовать так, чтобы профита было как можно больше.
В шахматах, го или даже старкрафте этот подход работает: возьмём большой компьютер, будем много-много раз разыгрывать партии, смотреть, какие ходы ведут к победе и впоследствии делать такие почаще.
К сожалению, прямое переложение этих методов на физический мир (мне) очень трудно себе представить. Скажем, если делать reinforcement learning в обычном человеческом образовании, придётся каких-то вполне конкретных людей направлять по неоптимальным дорогам развития только для того, чтобы выучить, что они неоптимальны. Да и «разыграть партию» в приложениях, отличных от игр, не всегда возможно. Особенно в нужных количествах.
Поэтому по меньшей мере половина авторов нашего канала придерживается позиции, что будущее принадлежит не обучению с подкреплением, а более прогрессивным методам — например, imitation learning'у. Про него есть
отличный туториал с ICML 2018, а ещё есть всякие забавные видосы — например, как
роботы учатся наливать воду из бутыки.
Алексей Шаграев