" АльфаЗеро " проти всіх
Нещодавно 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 у своїй доповіді навів кілька прикладів “ нетипової ” для людини чи шахового алгоритму гри .
Так , " АльфаЗеро " пожертвував слоном та не намагався його відіграти .
Завів ферзя у кут ( ! ) тощо .
Але всі ці незрозумілі , на перший погляд , ходи врешті - решт привели до перемоги .
