"АльфаЗеро" проти всіх
Нещодавно AlphaZero — нейромережа від DeepMind — виграла у трьох найкращих алгоритмів гри у шахи, го та сьоґі — StockFish, AlphaGoZero та Elmo відповідно.
Я спробую розповісти, яка загальна ідея, чому це круто, а також спростувати деякі хайпи навколо :)
У кінці допису я приблизно опишу, як саме працює "АльфаЗеро".
Результати гри (з оригінальної статті https://arxiv.org/abs/1712.01815)
Ідея "АльфаЗеро" дуже проста:
1.
Ми жорстко описуємо лише правила відповідної гри.
2.
Входом в алгоритм є поточна ситуація на дошці.
Виходом є хід.
3.
Поточна версія алгоритму грає сама із собою.
Ваги нейромережі, що призвели до виграшних ходів, підсилюються, інші — послаблюються.
4.
Жодних евристик, ендшпільних чи дебютних таблиць.
Мережа вчиться вигравати, всі проміжні ситуації на дошці не мають значення.
Один й той самий алгоритм, з одними й тими ж початковими параметрами далі вчиться грати у будь-яку задану гру і через деякий час перевершує все, що було придумано до цього часу :)
Чому це круто.
По-перше, тому що не потребує жодних знань “що таке добре, що таке погане” від людини.
Все, що потрібно — лише задати правила гри й умови виграшу.
По-друге, таким чином можна покращувати якість гри нескінченно, точніше, до теоретичного ліміту цієї гри.
По-третє, хоча це потребує досить немаленької обчислювальної потужності, за сучасними мірками, це не захмарні речі.
Будь-яка середня компанія має такі ресурси, а через кілька років, скоріше за все, це можна буде реалізувати і вдома.
І це я маю на увазі лише тренування.
Які в "АльфаЗеро" обмеження?
1.
Чітка заданість правил гри й умов перемоги.
Життя — не гра, тому алгоритм "АльфаЗеро" не підходить для чогось, де ми не можемо ввести хороший KPI чи чітко визначити ціль.
Більш того, якщо ми визначимо ціль неправильно, то це як загадувати бажання у злого джина: вам дадуть саме те, що ви попросили, а не те, що ви мали на увазі.
2.
Умовно велика кількість необхідних ігор для тренування.
Для тренування "АльфаЗеро" було проведено 20–40 млн ігор.
Це можливо лише для дешевих та швидких процесів у реальному світі або для віртуальних симуляцій.
Якщо ж вартість спроби велика в сенсі часу чи грошей, то….
Як працює "АльфаЗеро" (спрощено)
Двома наріжними каменями алгоритму є нейромережі та Монте-Карло пошук на дереві.
Гра.
Отримавши нову позицію на дошці, "АльфаЗеро:
Image for post
Навчання
Після того, як зіграно якусь якусь кількість партій, ситуації на дошці використовують для навчання наступної ітерації алгоритму, а саме функцій оцінки і пропонування ходів.
Ті, що оцінили правильно, — підсилюються, ті, що неправильно, — послаблюються.
Відповіді на популярні питання
П: В "АльфаЗеро" більший бюджет обчислень.
В: Можливо, це важко порівнювати через занадто різні архітектури.
4 спеціалізованих TPU чипи для "АльфаЗеро" проти 64 поточного CPU із 1Гб кешу для StochFish.
Остання дійсно ефективніша для менших бюджетів, у статті наведено графік:
Image for post
ЕЛО для різних обчислювальних бюджетів.
"Стокфіш" кращий в малому бюджеті, але гірше скейлиться.
П: "Стокфіш" грав без дебютних та ендшпільних таблиць, а "АльфаЗеро" напрацював свої.
В: Це лише щонайменше наполовину правильно.
Я не знайшов в оригінальній статті чіткого визначення, використовував Стокфіш" таблиці чи ні.
А "АльфаЗеро" не має жодних таблиць у тому сенсі, що будь-яку позицію він обробляє таким самим чином, як і іншу, жодних “підглядань як сходити”.
ІМХО, це і є, вміння гри, а не автоматичне запам’ятовування “якщо так, то так”.
П: Був використаний "Стокфіш" не останньої версії з неоптимальними налаштуваннями.
Shannar de Kassal
В: Можливо.
Самі "DeepMind" відмовляються від коментарів до публікації статті в рецензованому журналі, а там обіцяють навести все-все.
Моя думка:
1)
Якщо це так, то це, звісно, дуже некрасиво.
2)
На результаті це би відбилося найменше.
Звичайно, можливо, що правильно налаштований "Стокфіш" грає дуже близько до оптимуму і велику перевагу отримати неможливо в принципі.
Але мені здається, що таки ні і що лишивши "АльфаЗеро" грати саму із собою ще кілька тижнів, можна показати той самий розгром, що і зараз.
3)
А чому ніхто не порівнює кількість оцінених позицій для одного ходу — 70 млн у "Стокфіш" проти 40 тис. у "АльфаЗеро".
Чи це чесно — робити більший перебір?
P.S.
Голова DeepMind у своїй доповіді навів кілька прикладів “нетипової” для людини чи шахового алгоритму гри.
Так, "АльфаЗеро" пожертвував слоном та не намагався його відіграти.
Завів ферзя у кут(!) тощо.
Але всі ці незрозумілі, на перший погляд, ходи врешті-решт привели до перемоги.
