Чому NN + MCTS & AB + рукописний eval домінує в шахах двигуна?


14

Як я розумію, двигуни зараз можна розділити на чотири групи: ті, які використовують альфа-бета (AB) + ті, які використовують пошук в Монте-Карло дереві (MCTS) для пошуку, і ті, що використовують рукописні функції + ті, що використовують нейронні мережі для eval. Два найсильніших двигуна - Leela та Stockfish. Ліла використовує MCTS + NN, тоді як Stockfish використовує AB + від руки.

Чому ці дві комбінації? Чому б NN + AB або MCTS + від руки? Якщо MCTS кращий за AB, то чому Komodo MCTS не сильніший за Komodo AB? Якщо AB кращий за MCTS, чому Leela замість цього не використовує AB?


Просто спекулюючи: NN - це розпізнавачі шаблонів. Оскільки MCTS відкидає більш широку мережу, швидше за все зустрічаються зразки, які NN пройшов навчання, щоб визнати як добрий, чи поганий.
Джон Коулман

Відповіді:


12

Швидкість

Нейронні мережі працюють набагато повільніше, ніж функції ручної оцінки. У суперфіналі TCEC Leela Chess Zero, що працює на двох графічних процесорах, кожен з виділеними тензорними ядрами, здатний шукати близько 60 тис. Позицій в секунду. Навпаки, Stockfish на одному ядрі мого ПК шукає понад 2 мільйони позицій в секунду.

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

MCTS, навпаки, набагато вибірковіший і лише розширює своє дерево пошуку на найбільш перспективні кроки, що дозволяє йому максимально використовувати більш обмежену кількість вузлів, за якими можна шукати.

Найгірша поведінка

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

За своєю складністю нейронні мережі схильні до надмірного оснащення і можуть бути такими ж хорошими, як дані, що використовуються для їх навчання. Наприклад, у матчі 80 Суперфіналу TCEC Season 14 у ході руху 47 Lc0, очевидно, не вразила додаткова королева Stockfish, оцінивши позицію як прохолодна +0,77, тоді як Stockfish (та більшість інших двигунів) оцінили оцінку +8,31. Популярне пояснення цьому полягає в тому, що Lc0, можливо, не мав значної кількості ігор з кількома королевами на дошці у своєму навчальному наборі.

Таким чином, нейронні мережі мають погану поведінку в гіршому випадку, а отже, швидше за все, вони працюють погано при пошуку бета-версії альфа. MCTS, навпаки, дозволяє компенсувати неправильну оцінку, присвоєну одній позиції, усереднюючи її з розумними балами, присвоєними позиціям поблизу в пошуку.

Спокій

Усі сильні альфа-бета-версії використовують техніку, яку називають пошуком тиші , обмеженою формою пошуку альфа-бета-версії, застосовуваною на вузлах листя, на підтвердження того, що їх функції оцінки ручної роботи добре працюють лише в «тихих» положеннях, де немає очікуваних захоплень і перевірок. .

Наприклад, одразу після першої половини королеви обмін, функція оцінки ручної роботи може сказати вам, що сторона, яка щойно взяла свою королеву, повністю втрачена, тоді як нейронна мережа може зрозуміти, що королеву незабаром буде відловлено.

Це робить функції оцінювання ручної роботи аналогічно непридатними для MCTS через відсутність пошуку спокою, в результаті чого ручні роботи функціонують погано значну частину часу (хоча Komodo 12 MCTS подолає це обмеження, використовуючи короткі альфа-бета-пошуку в будь-якому разі , щоб отримати спокійні позиції та отже, дозвольте її ручній оцінці повернути розумну оцінку)


2

AB і MCTS не обов'язково кращі один за одним за власними заслугами. Просто вони є різними алгоритмами пошуку, які краще працюють з різними основами. Для NN MCTS працює добре, оскільки дозволяє двигуну досліджувати гілки, які працюють краще. Це дає двигуну більше свободи дивитися на те, що він "хоче".

Між тим з AB, в принципі, слід переглянути всі гілки. Це тому, що навіть при повторному поглибленні двигун дивиться так далеко на кожну гілку в кожній ітерації. Тож не відомо, чи справді одна гілка виграє за одну сторону, навіть якщо вона здається програшною на обмеженій глибині.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.