Чому немає шахматних двигунів для вивчення шахів, подібних до AlphaGo?


32

Комп’ютери вже давно вміють грати в шахи, використовуючи техніку "грубої сили", шукаючи певну глибину і потім оцінюючи позицію. Комп'ютер AlphaGo, однак, використовує лише ANN для оцінки позицій (наскільки я не знаю, він не здійснює глибокого пошуку). Чи можливо створити шаховий двигун, який грає в шахи так само, як AlphaGo грає Go? Чому цього ніхто не робив? Чи буде ця програма краще, ніж найкращі шахові двигуни (та шахісти) сьогодні?


5
Дивіться arxiv.org/abs/1509.01549 (Giraffe: Використання глибокого підсилення, навчившись грати в шахи) та популярну статтю technologyreview.com/s/541276/… . Також erikbern.com/2014/11/29/deep-learning-for-chess.html
каже

Це було лише питання часу, поки хтось не обійдеться зробити це належним чином. Отож через місяць після того, як ви опублікували своє запитання, ви переходите: arxiv.org/abs/1712.01815 .
амеба каже, що поверніть Моніку

Відповіді:


49

EDIT (після прочитання статті):

Я задумливо прочитав папір. Давайте почнемо з того, що Google стверджував у статті:

  • Вони перемогли запасів за допомогою нейтральних мереж Монте-Карло-Дерево-Пошук + Глибокі
  • Матч був абсолютно однобічним, багато перемог для AlphaZero, але жодної для Stockfish
  • Вони змогли це зробити всього за чотири години
  • AlphaZero грав як людина

На жаль, я не думаю, що це гарний журнал. Я збираюся пояснити посиланнями (щоб ви знали, що я не мрію):

https://www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author

Результати поєдинків самі по собі не мають особливого значення через досить дивний вибір регуляторів часу та параметрів запасів Stockfish: Ігри грали у фіксований час 1 хвилину / хід, що означає, що Stockfish не використовує евристики управління часом ( багато зусиль було докладено, щоб змусити Stockfish визначити критичні моменти в грі та вирішити, коли витратити трохи зайвого часу в русі; за фіксований час за ходу сила значно постраждає).

Запаси не могли грати в найкращі шахи лише хвилиною за ходу. Програма не була розроблена для цього.

  • Stockfish працював на звичайній комерційній машині, тоді як AlphaZero був на 4-мільйонній машині + TPU, налаштованій на AlphaZero. Це схоже на відповідність вашого високого класу робочого столу проти дешевого телефону Android. Торд написав:

Один - це звичайна шахова програма, що працює на звичайних комп’ютерах, інша використовує принципово різні методи і працює на спеціально розробленому обладнання, яке недоступне для придбання (і було б виходу з бюджету звичайних користувачів, якби це було).

  • Google ненавмисно передав 64 теми для 32-ядерної машини для Stockfish. Я цитую Г.М. Ларрі Кауфмана (знавця з комп'ютерних шахів світового класу):

http://talkchess.com/forum/viewtopic.php?p=741987&highlight=#741987

Я згоден, що тест був далеко не справедливим; Інша проблема, яка зачепила SF, полягала в тому, що він, мабуть, працював на 64-х потоках на 32-ядерній машині, але він би грав набагато краще, працюючи лише на 32 потоках на цій машині, оскільки майже немає переваги SMP, щоб компенсувати приблизно 5 до 3 уповільнення. Також співвідношення витрат було більше, ніж я сказав; Я думав, що це 64-ядерна машина, але 32-ядерна машина коштує приблизно вдвічі, ніж я здогадався. Тому, можливо, загалом від 30 до 1 не така вже й погана оцінка. З іншого боку, я думаю, що ви недооцінюєте, наскільки це може бути вдосконалено.

  • Запаси дали лише хеш-таблицю на 1 Гб. Це жарт ... У мене є більший хеш-таблиця для мого додатка iOS Stockfish (відмова: я автор) на своєму iPhone! Торд написав:

    ... занадто малі хеш-таблиці для кількості потоків ...

Хеш-таблиця розміром 1 Гб абсолютно неприйнятна для подібного матчу. Собаки часто стикаються з хеш-зіткненням. Для заміни старих хеш-записів потрібні цикли процесора.

  • Риба-порода не призначена для роботи з такою кількістю ниток. У моєму шаховому додатку iOS використовується лише декілька потоків. Торд написав:

... грала з набагато більшою кількістю пошукових ниток, ніж коли-небудь отримала значну кількість тестування ...

  • Stockfish працював без вступної книги або 6-ти частинної таблиці ендграйдів Syzygy. Розмір вибірки був недостатнім. Версія Stockfish була не останньою. Тут обговорення .

ВИСНОВОК

Google не доведено без сумніву методи їх перевершують в'яленої. Їх кількість поверхово і сильно упереджена AlphaZero. Їхні методи не можуть бути відтворені незалежною третьою стороною. Казати, «Глибоке навчання» є чудовим методом традиційного шахового програмування ще зарано.


EDIT (грудень 2017):

Існує новий документ від Google Deepmind ( https://arxiv.org/pdf/1712.01815.pdf ) для глибокого підкріплення в шахах. З реферату, світовий шаховий двигун номер один був «переконливо» переможений. Я думаю, що це найважливіше досягнення в комп'ютерних шахах після матчу за глибокий синій 1997 рік. Я оновлю свою відповідь, як тільки детально прочитаю статтю.


Оригінал (до грудня 2017 року)

Давайте уточнимо ваше запитання:

  • Ні, шахові двигуни не застосовують грубу силу.
  • AlphaGo робить пошук використання дерева, він використовує Монте - Карло дерево пошуку . Google " Monte Carlo Tree Search alphaGo ", якщо ви хочете переконатися.

ANN можна використовувати для шахових двигунів:

Чи буде ця програма краще, ніж найкращі шахові двигуни (та шахісти) сьогодні?

Giraffe грає на рівні Internation Master, що становить приблизно FIDE 2400. Однак, Stockfish, Houdini та Komodo всі грають приблизно на FIDE 3000. Це великий розрив. Чому? Чому б не пошукати дерево в Монте-Карло?

  • Матеріальна евристика в шахах проста. Здебільшого шахова позиція виграє / програє, просто перераховуючи матеріали на дошці. Згадайте, що підрахунок матеріалів не працює для Go. Підрахунок матеріалів на порядок швидший, ніж запуск нейронних мереж - це можна зробити за допомогою бітбордів, представлених 64-бітовим цілим числом. У системі 64 біт це можна зробити лише за допомогою декількох інструкцій на машині. Пошук за традиційним алгоритмом відбувається набагато швидше, ніж машинне навчання. Більш високі вузли в секунду перекладають на більш глибокий пошук.
  • Так само є дуже корисні та дешеві методи, такі як обрізка нульових рухів, затримка зворотнього руху та вбивцькі ходи тощо. Вони дешеві для запуску та значно ефективніші для підходу, який використовується в AlphaGo.
  • Статичне оцінювання в шахах швидко і корисно
  • Машинне навчання корисне для оптимізації параметрів, але ми також маємо SPSA та CLOP для шахів.
  • Існує маса корисних показників для скорочення дерева в шахах. Набагато менше для Go.

Було проведено дослідження, що пошук дерев в Монте-Карло не підходить для шахів. Go - це інша гра в шахи. Алгоритми шахів не працюють для Go, оскільки шахи покладаються на жорстоку тактику. Тактика, мабуть, важливіша в шахах.

Тепер ми встановили, що MCTS добре працює для AlphaGo, але менш для шахів. Глибоке навчання було б кориснішим, якщо:

  • Налаштована оцінка NN краща, ніж традиційні алгоритми. Однак ... глибоке навчання не є магією, вам як програмісту все-таки потрібно займатися програмуванням. Як вже згадувалося, у нас є щось на зразок SPSA для самостійної гри для налаштування параметрів у шахах.
  • Інвестиції, гроші! Грошей на машинне навчання шахам не так багато. Запаси вільні та з відкритим кодом, але досить сильні, щоб перемогти всіх гравців людини. Навіщо Google витрачати мільйони, якщо хтось може просто завантажити Stockfish безкоштовно? Чому платитимуть за кластери процесора? Хто заплатить за таланти? Ніхто не хоче цього робити, тому що шахи вважаються грою «вирішеною».

Якщо глибоке навчання може досягти наступного, воно обіграє традиційний алгоритм:

  • Враховуючи шахову позицію, "відчуйте" це як людський гросмейстер. Наприклад, людський гросмейстер не вдавався б у погані - за досвідом. Ні традиційний алгоритм, ні глибоке навчання не можуть цього досягти. Ваша модель NN може дати вам ймовірність [0..1] для вашої позиції, але це недостатньо добре.

Дозвольте мені зазначити:

Ні. Жирафа (посилання, яку опублікував @Tim) не використовує Пошук дерев Монте-Карло. Він використовує звичайний алгоритм nega-max. Все, що він робить, це замінити звичайну функцію оцінювання на NN, і це дуже повільно.

ще один:

Хоча Каспаров був побитий Deep Blue у матчі 1997 року. "Людство" було дійсно програно приблизно в 2003-2005 роках, коли Крамник програв матч з "Глибоким Фріцем" без виграшу, а Майкл Адамс програв на кластерній машині в однобічному матчі. В цей час Рибка виявився занадто сильним для навіть найкращих гравців світу.

Довідка:

http://www.talkchess.com/forum/viewtopic.php?t=64096&postdays=0&postorder=asc&highlight=alphago+chess&topic_view=flat&start=0

Цитую:

У шахах у нас є концепція суттєвості, яка вже дає резонну оцінку того, наскільки добре працює двигун і його можна швидко обчислити. Крім того, існує багато інших аспектів гри, які можна закодувати у функції статичного оцінювання, чого неможливо зробити в Go. Завдяки безлічі евристики та хорошої оцінки, коефіцієнт ЕФП (Ефективний-Відгалуження-Фактор) є досить малим. Використання нейронної мережі в якості заміни функції статичної оцінки, безумовно, сповільнить двигун досить багато.


1
Дякую. Деякі питання: Шахові двигуни використовують альфа-бета-алгоритм, це не алгоритм "грубої сили"? Чи означає "Пошук дерев в Монте-Карло", що за нинішню позицію потрібно переглянути кілька кроків?
lijas

1
@lijas "груба сила", як правило, визначається як пошук усіх можливостей. Шахові двигуни цього не роблять.
SmallChess

7
@lijas Ви щойно відповіли на питання. Матричне множення - це повільна робота.
SmallChess

3
Пошук у Alpha Beta впевнений, що це "груба форсиш". Ганс Берлінер щодо тенденцій AI: "Я вважаю, що найважливішою тенденцією було те, що комп’ютери стали значно швидшими за останні 50 років. У цьому процесі ми виявили, що багато речей, для яких у нас було в кращому випадку антропоморфні рішення, які в багатьох випадках не змогли зафіксувати справжню суть людського методу можна було б виконати більш жорстокими методами, які просто перелічували, поки не було знайдено задовільного рішення. Якщо це єресь, так і нехай ". (див. ieeexplore.ieee.org/document/820322/?reload=true )
Daniel Lidström

1
@smallchess альфа-бета - це фактично алгоритм пошуку, навіть такі варіанти, як негагаут, які є лише поступовими вдосконаленнями. Що ще він мав на увазі? Це було написано задовго до появи глибоких систем навчання.
Даніель Лідстрем

6

DeepBlue вже переміг Каспарова, тому ця проблема вирішується набагато простішим підходом. Це було можливо, оскільки кількість можливих рухів у шахах набагато менша, ніж у ході, тому це набагато простіша проблема. Більше того, зауважте, що і NN, і груба сила потребують величезних обчислювальних ресурсів ( тут ви можете знайти фотографію комп'ютера позаду AlphaGo, зауважте, що для обчислення він використовує навіть не GPU, а TPU). Вся суєта з ходом полягала в тому, що, коли Deep Blue переміг Каспарова, спільнота go стверджувала, що це неможливо з переходом (з безлічі різних причин, але щоб узагальнити аргументи, які мені потрібно було б детально ознайомити з грою ходити). Так, ви можете навчити NN грати в шахи, Маріо , або спробувати навчити його гратиStarcraft ...

Я здогадуюсь, що причина цього в тому, що ви просто не часто чуєте в масових ЗМІ про випадки, коли люди вирішують проблеми, які вже були вирішені.

Крім того ваша посилка не так, Deep Learning буде використовуватися , щоб грати в шахи, наприклад , як описано в Deep Learning Machine Навчає Сам по шахам в 72 годин, П'єси на міжнародному рівні майстра . Дивіться також відповідний документ, Giraffe: Використання глибокого посилення Навчання грати в шахи .


3
Незважаючи на те, що явно існують деякі шахові програми, які навчаються з глибоким вивченням підкріплення, залишається фактом, що ніхто не побудував таку, яка б обіграла "традиційні" шахові двигуни. Я припускаю, що це тому, що ця проблема (побиття традиційних двигунів) просто не є цікавою / достатньо мотивувальною, щоб вкласти багато зусиль, необхідних для розробки чогось рівня AlphaGo.
амеба каже: Відновити Моніку

1
@amoeba широко доступне програмне забезпечення для ігор також не використовує глибокого навчання, і воно, як правило, слабше, ніж аматорські гравці на 1 дан, набагато гірше, ніж AlphaGo. AlphaGo - це доказ концепції.
Тім

1
@ rus9384 це непросто, але ми вже "вирішили" це, "Глибокий Блю" побив Каспарова, у нас є наш чорний лебідь, який пройшов шаховий тест Тьюрінга.
Тім

5
Вирішена гра - інша річ: ми не знаємо, чи ідеальна гра гарантує виграш для чорно-білих чи закінчується нічиєю.
rus9384

1
@ rus9384: Було б весело розпочати гру проти ідеального шахового AI і побачити "Білі перемоги. Матч у 97 ходах".
Ерік Думініл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.