Десять месяцев на создание самого человечного шахматного бота
Spending 10 months building the most human-like chess bot
Автор потратил десять месяцев на Chessbook-1 — бота, который играет как случайный соперник на Lichess при любом рейтинге и контроле времени. На 28 000 блиц-позиций он в статистической ничьей с Allie 2.0 и Maia-3 (57,3% точности первого хода), но единственный сохраняет правильную силу игры на всех рейтингах, ошибается в цейтноте как человек и предсказывает, сколько времени потратит на ход.
Модель без входа часов играет одинаково при 2 секундах и при 2 минутах; Chessbook-1 знает, что люди в цейтноте играют быстрее и хуже, и делает так же.
- fps-hero
Здесь есть несколько новых идей, которые стоит оценить. Классическая «цейтнотная гонка» абсолютно заслуживает внимания, даже в игре людей высшего уровня.
Странно, что даже с такими довольно обширными наборами данных, как Lichess, всё ещё трудно приблизить человеческую силу с помощью бота.
Как «слабый человек», очень легко увидеть, как традиционные шахматные движки не могут имитировать людей.
Что касается фактического расчёта на несколько ходов вперёд, люди не рассчитывают на глубину шахматного движка. Как часто человек действительно рассматривает каждый возможный ход на глубину больше 3 ходов?
Люди действуют инстинктивно. Мы отсекаем дерево решений на основе нашей оценки того, насколько перспективной может быть ветвь, а не её объективной расчётной силы. Именно здесь шахматные движки ломаются.
Люди полагаются на инстинкт, распознавание образов и стратегию. Ничто из этого не переносится на шахматный движок, если только вы не игрок высшего уровня с почти идеальными инстинктами и распознаванием образов.
Моя догадка состоит в том, что для приблизительно человеческой силы человек с самым низким ELO делает ходы полностью случайно, тогда как человек с самым высоким ELO следует грубо просчитанным лучшим линиям. Задача состоит в том, чтобы настроить дерево решений так, чтобы оно соответствовало человеческой оценке ветви в зависимости от уровня мастерства, и вторая условная вероятность выбора ветви в зависимости от ELO игрока.
Выход шахматного движка не должен быть детерминированным, а вероятностным. История показала, что когда вы применяете вероятностный подход к проблеме, обычно происходит волшебство […]
- matsemann
> Это также помогает модели поддерживать более последовательный стиль игры. Иногда на доске есть жертва, доступная в течение многих ходов. Человек обычно либо решает, что хочет её сделать, либо нет, и придерживается этого решения, пока что-то конкретное не изменится. Но когда я играл с этим ботом до добавления учёта недавности, бот игнорировал тактику в течение многих ходов, а затем после несвязанного тихого хода шёл на неё. Это ощущалось очень чужеродно и отталкивающе.
Из истории позиций в предыдущем посте. Хорошее замечание. То же самое со «снайперскими» слонами. Если слон перемещён на b2 и остаётся там 20 ходов, его можно «забыть», и у противника внезапно появляется связка или что-то недостаточно защищённое. Но если бы я увидел точно такую же доску, но предыдущим ходом было перемещение слона на b2, я бы это осознавал. Такое локальное мышление, конечно, то, чему я должен научиться не делать, но на моём уровне (1700-1800 FIDE) люди так играют.
- hyperbolablabla
Я думал, может, chessbook.com позволит мне просто сыграть обычную партию против этого бота, но, видимо, нет?