Лила Чесс Зеро

редактировать
Лила Чесс Зеро
Leela Chess Zero logo.svg
Оригинальный автор (ы) Джан-Карло Паскутто, Гэри Линскотт
Разработчик (и) Гэри Линскотт, Александр Ляшук, Фолкерт Хейзинга и другие
Первоначальный выпуск9 января 2018 г.; 2 года назад (09.01.2018)
Стабильный выпуск v0.25.3 / 10 октября 2020 г.; 10 дней назад (10.10.2020)
Репозиторий Изменить это в Wikidata
Написано наC ++
Операционная система Windows, Mac, Linux, Ubuntu, Android
Тип Шахматный движок
Лицензия GPL-3.0
Веб-сайтlczero.org

Leela Chess Zero (сокращенно LCZero, lc0 ) - это бесплатная, с открытым исходным кодом и нейронная сеть на основе шахматный движок и проект распределенных вычислений. Разработкой руководил программист, который также является разработчиком шахматного движка Stockfish. Leela Chess Zero была адаптирована из движка Leela Zero Go, который, в свою очередь, был основан на проекте AlphaGo Zero Google, а также для проверки методов в AlphaZero применительно к игре в шахматы.

Подобно Лиле Зеро и AlphaGo Zero, Лила Chess Zero начинает игру без каких-либо специфических шахматных знаний, кроме основных правил игры. Затем Лила Chess Zero учится играть в шахматы с помощью обучения с подкреплением на основе многократной самостоятельной игры, используя распределенную вычислительную сеть, координируемую на веб-сайте Leela Chess Zero.

По состоянию на 2020 год Leela Chess Zero сыграла против себя более 300 миллионов партий и может играть на уровне, сопоставимом с Stockfish, ведущей традиционной шахматной программой.

Содержание
  • 1 История
  • 2 Программирование и использование
  • 3 Самостоятельная игра Elo
  • 4 Варианты
  • 5 Результаты соревнований
    • 5.1 Сводка результатов
  • 6 Известные игры
  • 7 Ссылки
  • 8 Внешние ссылки
История

О проекте Leela Chess Zero впервые было объявлено на TalkChess.com 9 января 2018 года. Это раскрыло Leela Chess Zero как самообучающийся шахматный движок с открытым исходным кодом. он стал известен как с целью создания сильной шахматной машины. За первые несколько месяцев обучения Лила Чесс Зеро уже достигла уровня Grandmaster, превзойдя по силе ранние версии Rybka, Stockfish и Komodo, несмотря на оценку на порядок меньшего количества позиций при использовании MCTS.

В декабре 2018 года команда AlphaZero опубликовала новую статью в журнале Science, раскрывающую ранее нераскрытые детали архитектуры и параметры обучения, используемые для AlphaZero. Эти изменения вскоре были включены в Leela Chess Zero и повысили ее силу и эффективность тренировок.

Работа над Leela Chess Zero проинформировала аналогичный проект AobaZero для сёги.

Двигатель был переписан и тщательно проработанный с момента его создания, и теперь он работает на нескольких бэкэндах, что позволяет эффективно использовать различные типы оборудования, как ЦП, так и ГП.

Механизм поддерживает случайный выбор Фишера Chess вариант, и сеть обучается для проверки жизнеспособности такой сети по состоянию на май 2020 года.

Запрограммировать и использовать

Метод, используемый его разработчиками для создания Leela Chess Нулевое самообучение и игра в шахматы на уровне выше человеческого - это обучение с подкреплением. Это алгоритм машинного обучения, дублирующий AlphaZero, используемый двоичным кодом обучения Leela Chess Zero для максимизации вознаграждения за счет самостоятельной игры. В качестве проекта распределенных вычислений с открытым исходным кодом пользователи-добровольцы запускают Leela Chess Zero, чтобы играть в сотни миллионов игр, которые передаются алгоритму подкрепления. Чтобы способствовать развитию движка Leela Chess Zero, необходимо загрузить последнюю версию движка, не являющуюся кандидатом на выпуск (не rc), а также клиент. Клиент необходим для подключения к текущему серверу Leela Chess Zero, где хранится вся информация из самостоятельных шахматных партий, для получения последней сети, создания игр для самостоятельной игры и загрузки данных тренировки обратно в сервер.

Чтобы играть против движка Leela Chess Zero на машине, необходимы 2 компонента: бинарный движок и сеть (бинарный движок отличается от клиента тем, что используется клиент в качестве учебной площадки для двигателя). Сеть содержит оценочную функцию Leela Chess Zero, которая необходима для оценки позиций. Старые сети также можно загрузить и использовать, поместив эти сети в папку с двоичным файлом lc0.

Self-Play Elo

Self-play Elo используется для измерения относительной силы сети для поиска аномалий и общих изменений в мощности сети, и может использоваться в качестве диагностический инструмент при значительных изменениях. Посредством игр с тестовыми матчами, в которые играют с минимальными колебаниями на основе температуры, клиенты движка lc0 проверяют самую последнюю версию на сравнении с другими последними версиями той же сети, которая затем отправляется на обучающий сервер для создания общей оценки Elo.

Стандартные формулы Эло используются для расчета относительной силы Эло между двумя игроками. В более поздних расчетах Elo для самостоятельной игры используются результаты матчей для нескольких сетевых версий, чтобы вычислить более точное значение Elo.

Существует несколько непредвиденных последствий использования подхода самостоятельной игры к измерению силы, и они заключаются в следующем:

  • Разные масштабы начального повышения Эло в тренировочных заездах из-за периодов более низкого / высокого самосовершенствования и состязательной игры
  • Сила, измеренная таким образом, не является объективной и связана с предыдущими сетями, что позволяет создать ложную иллюзию обретенной силы, поскольку сети обучены преодолевать и предвидеть действия своих прошлых «я».
  • Переоснащение по сравнению с предыдущими сетевые версии Lc0 постоянно добавляют небольшие количества самоигрывания Elo к совокупному измеренному Elo. Такое переоснащение обычно более отчетливо проявляется при обучении небольших сетей.
  • Не существует прямой корреляции один к одному между эло игры с самим собой и силой против альфа-бета двигателей, а также нет известной корреляции с силой против людей.
  • Поведенческие изменения в сетях между запусками влияют на инфляцию.

Примером раздувания эло для самостоятельной игры является прогон Теста 71.4 (названный как 714xxx сетей), рандомные шахматы Фишера, в котором почти 4000 кумулятивных самоигр. 76 сеток после начала пробега. Оценки Эло для самостоятельной игры в этом прогоне можно примерно сравнить с другими прогонами, чтобы оценить непрактичность чистого кумулятивного эло для самостоятельной игры. Чистое elo-сравнение с одной из проверок 60, объединяющих 3000 сеток в забеге, показывает, что 63000 может постоянно побеждать 714070 в большинстве личных встреч, если не во всех «честных» контролях времени. Тем не менее, 63000 сетей из прогона Теста 60 имеют Эло для самостоятельной игры около 2900, в то время как Эло для самостоятельной игры из раннего Теста 71.4 уже около 4000. Этого противоречия с силой Эло для самостоятельной игры достаточно, чтобы оправдать утверждение, что самообладание. игра Эло не является объективной мерой силы и не позволяет легко сравнивать силу сети с силой Человека.

Рейтинг самостоятельной игры для движка можно использовать как грубое приближение к обычным человеческим рейтингам Эло, однако универсальной формулы пересчета не существует по многим причинам. К ним относятся, но не ограничиваются масштабом начального раздувания Эло самостоятельной игры и позднего раздувания Эло самостоятельной игры между тренировочными прогонами, различного контроля времени, различных систем измерения Эло между платформами шахматных турниров, выделенных ресурсов для движка. размер и структура сети, набор обучающих данных сети и множество факторов, сила которых определяется двоичным кодом движка.

Настройка движка для воспроизведения одного узла с `` --minibatch-size = 1 '' и `` go nodes 1 '' для каждого сыгранного хода создает детерминированную игру, и на таких настройки всегда будут давать одинаковый результат между двумя одинаковыми сетями в одной и той же начальной позиции - всегда выигрывать, всегда проигрывать или всегда получать ничью. Эло для самостоятельной игры не является надежным средством определения силы в этих детерминированных обстоятельствах.

Варианты

В сезоне 15 чемпионата Top Chess Engine Championship движок AllieStein соревновался вместе с Лилой. AllieStein - это комбинация двух разных спин-оффов от Leela: Allie, которая использует ту же сеть оценки, что и Leela, но имеет уникальный алгоритм поиска для изучения различных линий игры, и Stein, сеть оценки, которая была обучена с использованием контролируемых обучение на основе существующих игровых данных с использованием других движков (в отличие от неконтролируемого обучения, которое использует Лила). Хотя ни один из этих проектов не будет допущен к TCEC по отдельности из-за их сходства с Leela, комбинация алгоритма поиска Allie с сетью Stein, называемая AllieStein, достаточно уникальна, чтобы гарантировать, что она конкурирует с основным Lc0 (правила TCEC требуют, чтобы нейронная сетевой движок имеет как минимум 2 уникальных компонента из 3 основных функций: код, оценивающий сеть, саму сеть и алгоритм поиска. В то время как AllieStein использует тот же код для оценки своей сети, что и Lc0, поскольку два других компонента свежие, AllieStein считается отличным движком).

Результаты соревнований

В апреле 2018 года Leela Chess Zero стала первым движком нейронной сети, который вошел в Top Chess Engine Championship (TCEC) в течение 12 сезона в самой низкой Дивизион, Дивизион 4. Лила плохо выступила: в 28 играх она выиграла одну, сыграла вничью две и проиграла оставшуюся часть; его единственная победа пришлась на позицию, в которой его противник, Скорпион 2,82, разбился за три хода. Однако ситуация быстро улучшилась. В июле 2018 года Лила заняла седьмое место из восьми на чемпионате мира по компьютерным шахматам в 2018 году. В августе 2018 года он выиграл четвертый дивизион 13 сезона TCEC с рекордом в 14 побед, 12 ничьих и 2 поражения. В 3-м дивизионе Лила набрала 16/28 очков, заняв третье место после Ethereal, набравшего 22,5 / 28 очков, и Арасана на тай-брейке.

К сентябрю 2018 года Лила стала конкурентоспособной с сильнейшими двигателями в мире. На чемпионате по компьютерным шахматам Chess.com 2018 (СССС) Лила заняла пятое место из 24 участников. Восемь лучших двигателей прошли во второй раунд, где Лила заняла четвертое место. Затем Лила выиграла матч из 30 игр против Комодо и заняла третье место в турнире. Одновременно Лила приняла участие в кубке TCEC, новом мероприятии, в котором двигатели из разных подразделений TCEC могут играть друг против друга. Лила победила движки высшего дивизиона Laser, Ethereal и Fire, прежде чем окончательно выбыла из игры Stockfish в полуфинале.

В октябре и ноябре 2018 года Лила участвовала в блиц-битве Chess.com Computer Chess Championship. Лила заняла третье место после Стокфиша и Комодо.

В декабре 2018 года Лила участвовала в сезоне 14 чемпионата Top Chess Engine Championship. Лила доминировала в 3, 2 и 1 дивизионах, легко заняв первое место во всех из них. В высшем дивизионе доминировал Stockfish, а за второе место боролись Гудини, Комодо и Лила. Все сводилось к игре финального раунда, где Лиле нужно было удержать Stockfish до ничьей черными, чтобы финишировать вторым, опередив Комодо. Он успешно справился с этим и поэтому оспорил суперфинал против Stockfish. Он чуть не проиграл суперфинал Stockfish с финальным счетом 49,5-50,5.

В феврале 2019 года Лила одержала первую крупную победу на турнире, победив Гудини в финале второго кубка TCEC. Лила не проиграла ни одной партии за весь турнир. В апреле 2019 года Лила выиграла Chess.com Computer Chess Championship 7: Blitz Bonanza, став первым проектом нейронной сети, получившим титул.

В мае 2019 года Лила защитила свой титул кубка TCEC, на этот раз победив Stockfish в финале 5.5-4.5 (+2 = 7-1) после того, как Stockfish провалил ничью из 7 игроков tablebase. Лила также выиграла Суперфинал сезона 15 чемпионата Top Chess Engine Championship 53,5-46,5 (+14-7 = 79) против Stockfish.

В 16 сезоне TCEC Лила заняла 3-е место. в премьер-дивизионе отсутствует квалификация в суперфинале Stockfish и новый движок нейронной сети AllieStein. Лила не понесла никаких потерь в Премьер-дивизионе, единственном двигателе, способном это сделать, и победила Стокфиша в одной из шести сыгранных игр. Однако Лиле удалось одержать только 9 побед, в то время как AllieStein и Stockfish одержали по 14 побед. Эта неспособность победить более слабые двигатели привела к тому, что Лила финишировала 3-й, на пол-очка позади AllieStein и на одно очко позади Stockfish. В четвертом кубке TCEC Лила была посеяна первой в качестве действующего чемпиона, что поместило ее на противоположную половину сетки, как и AllieStein и Stockfish. Лила смогла выйти в финал, где встретилась со Stockfish. После семи ничьих Stockfish выиграл восьмую игру и выиграл матч.

В сезоне 17 TCEC, проходившем в январе-апреле 2020 года, Лила вернула себе чемпионство, победив Stockfish 52,5-47,5. Он снова вышел в суперфинал в сезоне 18, но на этот раз потерпел поражение от Stockfish 53.5-46.5. В финале TCEC Cup 6 Лила проиграла AllieStein, заняв 2-е место.

В 19 сезоне TCEC Лила снова вышла в суперфинал. На этот раз он играл против новой версии Stockfish с поддержкой NNUE, функции оценки на основе нейронной сети, используемой в основном для конечных узлов дерева поиска. Он победил Лилу с финальным счетом 54,5-45,5 (+18-9 = 73).

Сводка результатов

Чемпионат Top Chess Engine Championship (TCEC)
СезонДивизион 4Раздел 3Раздел 2Раздел 1Раздел PСуперфинал
(2018)8-е
(2018)1-е3-е
14 (2018)1-е1-е1-е2-й2-й
15 (2019)2-й1-й
16 (2019)3-й
17 (2020)1-й1-й
18 (2020)2-й2-й
19 (2020)2-й2-й

.

Кубок чемпионата Top Chess Engine (TCEC Cup)
СобытиеРезультатСоперникСчет
Кубок 1 (2018)3-е местоКомодо0-0
Кубок 2 (2019)1-йГудини4,5-3,5
Кубок 3 (2019)1-йStockfish5.5-4.5
Cup 4 (2019)2ndStockfish4.5-3.5
Кубок 5 (2020)2-йStockfish2,5-1,5
Кубок 6 (2020)2-йAllieStein2,5-1,5

.

Chess.com Computer Ches Чемпионат (СССС)
СобытиеГодКонтроль времениРезультатСсылка
CCC 1: Rapid Rumble201815 + 53-е место
CCC 2: Blitz Battle20185 + 23-е место
CCC 3: Rapid Redux201930 + 52nd
CCC 4: Bullet Brawl20191 + 22-й
CCC 5: эскалация201910 + 52-й
CCC 6: Winter Classic201910+102-й
CCC 7: Blitz Bonanza20195 + 21-й
CCC 8: Deep Dive201915 + 52-й
CCC 9: The Gauntlet20195 + 2, 10 + 53-й
CCC 10: двойные цифры201910 + 33-й
CCC 11201930 + 51-й
CCC 12: Bullet Madness!20201 + 11-й
CCC 13: Фигуры20203 + 2, 5 + 5, 10 + 5, 15 + 51-й
CCC 14202015 + 51-й
Известные игры
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-26 05:06:26
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте