AlphaZero. Нейронная сеть играет в шахматы

Тема в разделе "Машинное отделение", создана пользователем grizly, 6 дек 2017.

  1. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.490
    Симпатии:
    3.108
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Если заменить текущую версию на кентавра с простейшим правилом: "если на доске больше, чем 8 (10, 12...) фигур, то включать Лилу, иначе включать Стокфиш" - такая программа явно шла бы сейчас на более высоком месте, чем 3-4.
    А полную гарантию, как известно, может дать только страховой полис. Да и то не всегда.
  2. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.490
    Симпатии:
    3.108
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Кстати, уже ведутся работы по обучению специальной сети для эндшпиля:
    https://github.com/dkappe/leela-chess-weights/releases/tag/Ender38
    Когда её отладят, видимо, наступит этап "прививания" этих весов к основной сети. Слышал, что с нейросетями такие штуки можно делать.
    Я, правда, вижу концептуальное препятствие: десятки терабайт точных эндшпильных таблиц сжать в небольшую нейросеть не получится чисто по теории информации. Для эндшпиля надо менять не только (не столько) оценку, но и алгоритм поиска. Впрочем, не скажу, что этот путь 100% тупиковый, попробовать, конечно, стоит.
  3. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    Проще просто обучить Лилу малофигурным эндшпилям. После обучения они будут элементарны для нейронки.
    —- добавлено: 21 сен 2018 —-
    Движки второго эшелона уже громит. А штамповать ничьи с топами тоже неплохо для начала.
  4. Sergey1983 Учаcтник

    • Участник
    Рег.:
    03.04.2018
    Сообщения:
    126
    Симпатии:
    14
    Репутация:
    1
    Оффлайн
    WinPooh, нейросетка это не эндшпильные базы это скорее набор правил для игры в эндшпиле.
  5. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.490
    Симпатии:
    3.108
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    С движками Ethereal и Andscacs счёт пока тоже равный. Это какого эшелона движки - первого, второго, полуторного?
  6. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.490
    Симпатии:
    3.108
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Так в том-то и дело, что не для всех эндшпилей можно сформулировать чёткие правила. Простейший пример - ферзь против ладьи. Из брошюры Авербаха для начинающих все знают правила: отгоняйте ладью от короля, загоняйте короля в угол, угрожайте матом и вилкой. А на практике против компа, да ещё в блиц, эти правила вдруг не помогают. Потому что надо конкретику и знать, и считать. В более сложных окончаниях вообще наступает полный хаос.


    Мат в 72 хода. Выигрывает 1. Kh7, все остальные ходы - ничья.


    Мат в 262 хода.
  7. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.545
    Симпатии:
    1.265
    Репутация:
    36
    Адрес:
    Киев
    Оффлайн
    Ну... там с окончаниями много нюансов. Во-первых, нейросеть имеет ограниченную мощность, которую лучше потратить на миттельшпильные позиции. Во-вторых, эндшпильных позиций меньше в обучающей выборке. В-третьих, эндшпиль сложен для игры, поэтому оценка для него берёться из статистики доигрываний, где велика вероятность ошибочного результата.
    sovaz1997 нравится это.
  8. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    В многофигурных эндшпилях Лила же сильно играет. А малофигурные проще намного.
    —- добавлено: 21 сен 2018 —-
    Конечно, в силу таблиц Налимова нейронка играть не будет. Так в эту силу и алгоритмические движки не играют. Если нейронку обучить, то играть в малофигурных эндшпилях она будет очень сильно, но конечно не идеально.
  9. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    Если это окажется критичным, можно для эндшпилей отдельную нейронку натренировать и переключаться на нее, когда до эндшпиля дело доходит.
  10. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.490
    Симпатии:
    3.108
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Ну вот, очередная ничья с Ethereal на подходе. Оценка Лилы +2, оценка Ethereal 0.00. На доске 11 фигур, то есть до таблиц ещё очень далеко.
    Я понял, что мне напоминает стиль Лилы - это пресловутое "накопление позиционных преимуществ" в своём самом худшем смысле. Вот здесь у нас защищённая проходная, вот здесь ладью на открытой линии поставили, вот ещё король централизован - давайте себе +5 или +10 нарисуем. А, что, не выигрывается? КЛЯТЫЕ ТАБЛИЦЫ НАЛИМОВА!

    Визуальной аналогией может служить, например, вот такой образец творчества нейронных сетей. Вроде, в каждом отдельном месте всё правильно нарисовано, а в сумме лажа какая-то :)

    [​IMG]
    Yury_Solomatin нравится это.
  11. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    Так в этом положении Лила досчитала до малофигурок и посчитала, что там все хорошо. Это все та же проблема.
  12. Kesandr Учаcтник

    • Участник
    Рег.:
    02.09.2008
    Сообщения:
    464
    Симпатии:
    35
    Репутация:
    11
    Оффлайн
    Да что тот рейтинг сегодня лила рухнул резко вниз. З чем ето связано? http://lczero.org
  13. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.490
    Симпатии:
    3.108
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Что-то они странное делают. Периодически с нуля начинают обучать...
    Нормальный график самообучения должен выглядеть вот так, как у настоящей Лилы, которая в Го играет: https://zero.sjeng.org/
  14. Sergey1983 Учаcтник

    • Участник
    Рег.:
    03.04.2018
    Сообщения:
    126
    Симпатии:
    14
    Репутация:
    1
    Оффлайн
    Как я понял они изменили какой-то параметр в результате временное(?) падение силы игры.
  15. svoitsl Учаcтник

    • Участник
    Рег.:
    06.01.2018
    Сообщения:
    374
    Симпатии:
    91
    Репутация:
    7
    Оффлайн
    Интересно, а настройки обучения (и другие параметры ) масштабируются на сеть большего размера?
    Можно ли отработать все это дело например на сетях 6х64 и 10х128 и потом уже с этими настройками обучать большую сеть.
    Или так нельзя?
  16. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.490
    Симпатии:
    3.108
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Итак, после 20 партий (беру только этот этап) против первой тройки: 19 ничьих, 1 поражение.
    Кто-то ещё сомневается в том, что у программы из топ-3 данная версия выиграть не способна в принципе?
  17. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    С эндшпильными таблицами способна. Партия со Стокфишем это наглядно показала.

    А чтобы реально прорыв был. Надо все-таки нейронку на играх с алгоритмическими движками тренировать.
  18. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.490
    Симпатии:
    3.108
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Ну, это из серии известных суждений об отличии бабушки от дедушки. Счёт - он на табло.

    Вообще, я считаю эндшпильные таблицы в данном контексте читерством.
    Нейросеть должна познавать глубинные законы шахмат. Если она не может этого сделать для простейшего класса позиций, то чего стоят её выводы в более сложных случаях?
  19. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    То что в принципе Лила способна обыграть движок из топ-3 сомнений уже никаких. И Комодо и Стокфиш спаслись чудом. Т.е. примерно в одной из десяти партий Лила получает большой перевес. А чудесные спасения вечными быть не могут.

    Читерство в другом. Все движки играют с эндшпильными таблицами, а Лила почему-то без. Соперники в неравным условиях находятся.

    Это вы сами придумали. Задача чисто практическая. Показать превосходство нейросети над алгоритмическом подходом даже в такой переборной игре как шахматы. Глубинность законов это дело десятое.

    Для этого Лилу надо на простейших позициях потренировать. А при обучении этого явно не делалось.

    И может быть это вообще большая ошибка. По крайней мере человек учится от простого к сложному. И если человеку в принципе не давать играть простые эндшпили (определяя всегда результат по таблицам), то мне кажется это приведет к каким-то пробелам в его понимании шахмат, что может влиять даже на миттельшпиль. Конечно, может быть подобные аналогии между нейронкой и человеком неверны. Но я бы все-таки попробовал обучать нейронку честно без использования таблиц.
    WinPooh нравится это.
  20. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.490
    Симпатии:
    3.108
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Кстати, против Ethereal тоже ещё ни разу "не шмогла".
  21. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.490
    Симпатии:
    3.108
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    И вдруг оказывается, что превосходства-то никакого и нет, если с определённого момента в партии не использовать костыль в виде алгоритмически же подсчитанных таблиц.

    Выскажу вообще крамольную мысль, что нынешние топ-программы уже вплотную подобрались к асимптотически недостижимому идеальному игроку, и дальнейшее усиление на достаточно большую величину просто невозможно.
  22. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    Ethereal Лила уже обыгрывала. На первом этапе. Но вообще Ethereal явно неудобный соперник для Лилы. После поражения он тут же отыгрался и больше пока не проигрывал.
    —- добавлено: 23 сен 2018, опубликовано: 23 сен 2018 —-
    Вы всерьез считаете, что нейронка в принципе не способна понять, что две связанные пешки и слон против коня не выигрывают?

    Явно в партии со Стокфишем нейронка в первый раз в "жизни" такую позицию увидела.

    Далеко не подобрались. Кмс адвансер голый движок легко обыграет в матче. Потому что адвансер понимает в каких позициях алгоритмические движки плавают. А Лила не понимает, потому что нет у нее опыта игры с алгоритмическими движками.
  23. Комсюк народный модератор

    • Заслуженный
    • Ветеран
    Рег.:
    17.07.2011
    Сообщения:
    19.210
    Симпатии:
    23.423
    Репутация:
    1.261
    Оффлайн
    не подтвердилось на Иммортале :)
  24. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.490
    Симпатии:
    3.108
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Вихляющийся туда-сюда на плюс-минус тысячу единиц график Лилы скорее наводит на мысль, что близка шизофрения.
  25. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    649
    Симпатии:
    120
    Репутация:
    3
    Оффлайн
    До предела еще очень далеко. Программы ошибаются (даже программы ТОП-уровня), нет идеального алгоритма. Да, они неплохо отсекают, но они не могут точно считать на ту глубину, которую они выдают. Есть позиция, которую половина ТОП-движков не решают (мат в 5 ходов там xD). Поставьте 32-фигурную базу и SF максимум 1-2 ничьи возьмет из 1000 партий.

    По поводу игры LCZero: ее сила очень близка к силе игры ТОП-3 на этом железе. Причем играет не самая лучшая сеть. Да, с тактикой у нее все очень плохо. Но она играет не в тактические шахматы, а в чисто позиционные. И тут она превосходит всех в позиционном понимании. То, что она видит 15 пешек в ничейном окончании - свойство алгоритма.

    Если за 6 месяцев программа практически достигла уровня Houdini и Komodo, то вряд ли она вдруг остановится в развитии. Проект по сути только начал свое развитие и мы не можем сказать, что будет через год. Давайте лучше дождемся и не будем делать предварительных выводов о том, что Lc0 никогда не достигнет уровня SF.
    —- добавлено: 23 сен 2018 —-
    Предел близок для конкретной сети (20x256)
  26. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    Во-первых, есть возможность чисто экстенсивного роста. Потенциал 4 V100 Лила сейчас использует процентов на десять. То есть в несколько раз еще точно ускорить можно. Во-вторых, откуда уверенность, что нынешняя версия Лилы обучена наилучшим образом. Разработчики всего месяц назад что-то подправили и получили сразу +150 пунктов к силе в сравнении с версией, которая в 4 дивизионе TCEC играла. В-третьих, обучение на играх с алгоритмическими движками выглядит очень перспективным направлением в плане увеличения практической силы игры.
    sovaz1997 нравится это.
  27. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.490
    Симпатии:
    3.108
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Хе-хе, в очередной раз убеждаюсь, какой я замечательный предсказатель.
    Сейчас, кажется, выиграет у Комодо :)
    В прошлый раз, помнится, я в 2007 предсказывал невозможность достижение силы про в Го в ближайшие лет 50.
    sovaz1997 и Undying нравится это.
  28. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    Вот она историческая победа. :)

    Для алгоритмических движков правильно предсказывали.
  29. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    649
    Симпатии:
    120
    Репутация:
    3
    Оффлайн
    LC0 и у Stockfish-а выигрывала в бонусе)

    Чисто позиционно выиграла. Конечно, окончание партии Lc0 всегда затягивает.

    Сила игры Lc0 в данной конфигурации, может, и выше, чем у Komodo. Но может и нет. Слишком мало партий, чтобы сделать выводы. Опять же, не самая лучшая сеть играет.

    P. S. PGN опять не встраивается :(
  30. Комсюк народный модератор

    • Заслуженный
    • Ветеран
    Рег.:
    17.07.2011
    Сообщения:
    19.210
    Симпатии:
    23.423
    Репутация:
    1.261
    Оффлайн
    совсем шапку убирай, словами опишешь
  31. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    Когда есть прямая игра, Лила очень красиво играет. А вот когда нет, тогда ее бесконечные повторения ходов портят все эстетическое впечатление.

    У Лилы явный синдром Леко. Сильным не проигрывает, у слабых не выигрывает. В матче даже против Стокфиша результат неочевиден, а против Комодо я бы однозначно на Лилу ставил. А вот в разношерстном турнире типа первого этапа cccc шансов на соперничество с топ-3 никаких.
    sovaz1997 нравится это.
  32. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    Все-таки Лилу надо честно обучать, без использования эндшпильных таблиц. А иначе в глубоком эндшпиле так и будут начинаться чудеса.

    Вот такую позицию Лила в партии с Этзереалем оценила как совершенно выигранную (-7.53) и смело перешла в нее из реально выигранной позиции:



    Подключение таблиц здесь не поможет. Эндшпиль 9 фигурный.
  33. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.490
    Симпатии:
    3.108
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Я вот о чём задумался. В оригинальном препринте ДипМайнд сообщалось об универсальной программе, которая научилась играть и в шахматы, и в Го, и в сёги - архитектура сети и поиска одна и та же, только исходные данные разные, в виде правил и генераторов ходов. Энтузиасты написали сейчас по мотивам препринта реализации Лилы для шахмат и для Го, совершенно разные. А вот что с сёги? Кто-нибудь, интересно, пробовал написать зеро программу для этой игры? Правда, там информации для сравнения мало, даже партий не предоставили..
  34. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.545
    Симпатии:
    1.265
    Репутация:
    36
    Адрес:
    Киев
    Оффлайн
    Почему не выигрывают?



    1... Nf5 Loose in 25

    Моё мнение, что шахматы это конкретная игра, и надо считать варианты.
    —- добавлено: 24 сен 2018, опубликовано: 24 сен 2018 —-
    Ну... график роста силы AlphaZero выходил на плато примерно на этом уровне.

    Ещё раз (1) таблицы дадут более точную оценку в том числе для обучения; (2) таблицы увеличат число рассматриваемых вариантов.

    Предположим, что Leela на этапе обучения сыграла 100 ладейных окончаний с пешками «f» и «h». Поскольку она играла их без таблиц, то могла допускать ошибки при защите (допустить ошибку там легко), поэтому оценка этого окончания будет в целом как выиграно для сильнейшей стороны. И нейросеть будет обучаться на основании этой оценки. Ну а дальше Leela будет переходить в подобные окончания как технически выигранные. Таким образом таблицы окончаний увеличат силу на этапе обучения, дадут более точные оценки окончаний, что увеличит качество нейросети.
    Sergey1983 и Polarity нравится это.
  35. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    Еще один глюк у Лилы в окончаниях. Проводя пешку она ставит ладью, а не ферзя. Например, в партии №229 с Андскашем. И это не первый раз такое уже.
    —- добавлено: 24 сен 2018, опубликовано: 24 сен 2018 —-
    В реальности использование таблиц при обучении привело к тому, что Лила в принципе не понимает, что одинокий слон не может сбить блокаду. Результат ничьи со Стокфишем и Этзереалем в абсолютно выигранных позициях. Причем, если в первом случае это не стало бы проблемой умей Лила пользоваться эндшпильными таблицами во время игры, то втором случае таблицы бы не помогли. Ничейный эндшпиль, который Лила считала абсолютно выигранным, 9 фигурный.

Поделиться этой страницей