Нейромережа AlphaZero, розроблена фахівцями DeepMind, виграла у трьох найкращих алгоритмів гри у шахи, го та сьоґі — StockFish, AlphaGoZero та Elmo відповідно. До AlphaZero компанії не робили large-scale алгоритмів, які вчаться лише самостійно.
Як часто буває у таких випадках, новина викликала хвилю фаталістичних прогнозів про наближення «повстання машин» і загрозу для людства, яку становлять AI-програми. Ми вирішили з’ясувати деталі про AlphaZero і про те, чи варто боятися таких алгоритмів. На запитання редакції відповів Дмитро Мішкін, засновник Української Szkocka Research Group, аспірант Чеського технічного університету в галузі машинного навчання та комп’ютерного зору.
Що таке AlphaZero. Характеристика алгоритму
Ідея нейромережі дуже проста:
- ми жорстко описуємо лише правила відповідної гри;
- входом в алгоритм є поточна ситуація на дошці, виходом є хід;
- поточна версія алгоритму грає сама із собою. Ваги нейромережі, що призвели до виграшних ходів, підсилюються, інші — послаблюються;
- жодних евристик, ендшпільних чи дебютних таблиць. Алгоритм вчиться вигравати, всі проміжні ситуації на дошці не мають значення.
Один і той самий алгоритм, з одними й тими ж початковими параметрами продовжує вчитися грати у будь-яку задану гру і через деякий час перевершує все, що було придумано до цього часу.
Крутість AlfaZero полягає у тому, що нейромережа не потребує жодних знань «що таке добре, що таке погано» від людини. Все, що потрібно — задати правила гри і умови виграшу. Таким чином можна покращувати якість гри нескінченно, точніше, до теоретичного ліміту даної гри.
Сам принцип такої роботи алгоритму був відомий давно. Але раніше успішно натренувати алгоритм не могли через брак ресурсів і необхідність вирішити додаткові питання, як саме тренувати. І зараз процес потребує досить немаленької обчислювальної потужності, але, по сучасним міркам, — це не захмарні речі. Будь-яка середня компанія має такі ресурси, а через пару років, скоріше за все, це можна буде реалізувати і вдома. І це я маю на увазі лише тренування.
Як працює нейромережа
Двома наріжними каменями алгоритму є нейромережі та Монте-Карло пошук на дереві (алгоритм прийняття рішень — прим. ред.).
- Гра
Отримавши нову позицію на дошці, AlphaZero робить наступне:
- Генерує ймовірність для вибору кожного можливого ходу в поточній ситуації за допомогою нейромережі. Ймовірність базується на вивченій в процесі гри корисності кожного ходу. На початку навчання вірогідності є випадковими.
- Для найвірогідніших ходів, за допомогою другої половини нейромережі, оцінює вірогідність виграшу, «хорошість позиції». Ця характеристика також вивчена нейромережею, на початку навчання — випадкова.
- Поки є час на хід, повторює все це далі для обраних ходів, тобто на 1,2,3,… ходів вперед. Кількість оцінених позицій — на порядки менша, ніж у конкурентів.
- Для остаточного ходу обирається той, що веде до найкраще оціненої позиції.
- Навчання
Після того, як зіграна деяка кількість партій, ситуації на дошці використовуються для навчання наступної ітерації алгоритму, а саме: для функцій оцінки та пропонування ходів. Ті, що оцінили правильно — підсилюються, ті, що неправильно — послаблюються.
Як практично застосовувати AlphaZero, окрім ігор?
Саме AlphaZero — ніяк, бо вхід і вихід нейромережі адаптований під конкретну гру. Якщо ж ми кажемо про принципи, на яких вона побудована, то застосувань можна віднайти багато. Більш точно, є дві вимоги:
- ми можемо чітко сказати, дивлячись на результат роботи, це #зрада, чи #перемога, виграшний чи невдалий крок;
- з’явилася можливість швидко і багато «грати». До гри із StockFish, AlphaZero зіграла 40 млн партій сама із собою. Наприклад, так можна швидко навчитися складати кубік Рубіка. В симуляції — процес йде дуже швидко, а з фізичною реалізацією (в моторах, камерах) — повільніше, за рахунок фізичних рухів.
З найбільш очевидних прикладів: можна вчити самокеровані автомобілі чи безпілотні літальні апарати. Завдяки, в першу чергу, реалістичним симуляторам на базі ігор та дешевим моделям-іграшкам. А потім ці технології можна доводити до ладу вже на звичайних машинах. Інакше, якщо не починати з ігор, можемо отримати занадто повільний і дорогий процес навчання, — уявіть купу зламаних машин. Насправді, схожим чином вже вчать літати дрони, але поки що лише на симуляторах; чи тренують роботизовані руки наливати воду в склянку. Але такі алгоритми напряму не дуже можна застосувати у медицині — чи дозволили б ви хірургу вчитися методом спроб і помилок на реальних пацієнтах?
Як успіхи AlphaZero змінять побут пересічних користувачів? Це початок «повстання машин»?
Саме AlphaZero, саме зараз — ніяк. Але багато професій, так чи інакше, зазнають змін через технології машинного навчання взагалі, а не якоїсь специфічної програми. На думку спадає елементарна ідея з появою кнопки «зробити класно» в Photoshop, — про неї часто жартували, але сьогодні вона вже майже існує. Ось приклад, представлений на цьогорічній профільній конференції з машинного навчання:
Щодо «повстання машин», про нього мова взагалі не йде. Ми як були далеко від «розумного ШІ» із «самосвідомістю», так і є. AlphaZero — звичайна комп’ютерна програма на штучних нейромережах. Так само, як, скажімо, Google Translate, якщо не вдаватися в подробиці тренування і математики. Тільки Google Translate отримує на вхід одну мову, а видає іншу, а AlphaZero отримує позицію і видає хід у грі. Google має ресурси щоб натренувати цей алгоритм, але й вона ними не розкидається: потренували, обіграли StockFish, написали статтю про це і вимкнули. Бо нащо витрачати електрику далі?
Набагато важливішими є інші проблеми, наприклад, дискримінація. Уявіть район А і район Б. Банк вирішує застосувати ШІ, робить це в найпростіший спосіб: завантажує всю інформацію про клієнтів і те, кому відмовили, а кому видали кредит. І тренує на цих даних алгоритм. Район Б не дуже респектабельний, там живуть бідні люди, зазвичай там не видавали кредити. Тому алгоритм, скоріш за все, це вивчить. І тепер з’явиться замкнене коло зворотного зв’язку: вам не дадуть кредит, тому що ви не з правильного району. А ці дані підуть далі в навчання. Звичайно, так напряму і так примітивно ніхто алгоритми не навчає, розробники в курсі подібних проблем. Але не настільки очевидні речі помітити важче, а шкода від них може бути велика.
Про розвиток нейромереж і фактори, що його стримують
Це складне і загальне питання. Стримує багато чого: наше нерозуміння та незнання в багатьох галузях, недостатня кількість «чистих даних». Сюди ж можна віднести обмеженість ресурсів — деякі дослідження під силу лише великим університетам чи корпораціям. Також гальмує розвиток вже згадана мною, у прикладі з хірургом, фізична природа різних задач.
Якщо казати саме про AlphaZero і самонавчання в іграх, то наступний крок — ігри з неповною інформацією і більшою варіативністю ходів, наприклад, відеогра StarCraft. В шахах і го ви одразу бачите всю дошку, знаєте все про позицію супротивників на полі. А от в комп’ютерних іграх-стратегіях, як правило, мапа закрита і треба спеціально відправляти розвідників. Ви не знаєте, що саме відбувається, тому цей процес є складнішим за шахи. Лабораторія DeepMind вже оголосила, що збирається спрямувати сили на гру StarCraft 2.
БІЛЬШЕ ЦІКАВОГО:
Коментар частково — з каналу Дмитра Мішкіна на Medium