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