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

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

  1. WinPooh В.М.

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

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.546
    Симпатии:
    1.265
    Репутация:
    36
    Адрес:
    Киев
    Оффлайн
    Ну нужно выбрать лучший ход. Обычно мы смотрим позиции после каждого хода, каждой ставим оценку (число), и потом выбираем позицию с лучшей оценкой. Итого у нас И лучший ход argmax(ОФ(список_позиций)). Тут, как я понял, предлагается иметь функцию ЛУЧШЕ(позиция1, позиция2), которая возвращает лучшую позицию. Ну и выбор лучший ход будет соответствовать позиции (reduce(ЛУЧШЕ, список_позиций)).
  3. nh2008 Старожил

    • Участник
    • Старожил
    Рег.:
    01.12.2013
    Сообщения:
    3.961
    Симпатии:
    5.378
    Репутация:
    379
    Адрес:
    Украина
    Оффлайн
    Шахматы 8*8 слишком сложная игра. А вот если сделать шахматы 6*6 или 5*5, данную идею, наверное, можно обкатать, чтобы понять насколько она жизнеспособна.
    —- добавлено: 25 май 2019 —-
    В идеале достаточно иметь пару позиция-число. Число показывает во сколько ходов будет выигрыш, или проигрыш, или ничья.
  4. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    В идеале нам нужно натренировать такую policy network, которая будет выдавать на выходе просто лучший ход, вообще безо всяких дополнительных чисел типа числа ходов до выигрыша. Просто "лошадью ходи!" - и партия выигрывается.
  5. tiger Новичок

    • Новичок
    Рег.:
    11.02.2006
    Сообщения:
    85
    Симпатии:
    25
    Репутация:
    1
    Оффлайн
    Да, интуитивно кажется очевидным, что надо сравнивать только похожие. Но это не так! Если вести достаточно глубокий поиск по этой новой версии альфа бета, помня что запоминаются позиции, а не числа, то видно что приходится напрямую сравнивать между собой очень далекие между собой позиции.
  6. nn Заблокирован

    • Участник
    • Заблокирован
    • Старожил
    Рег.:
    25.03.2007
    Сообщения:
    1.459
    Симпатии:
    3.109
    Репутация:
    124
    Нарушения:
    31
    Оффлайн
    То есть на множестве позиций введена операция сравнения между двумя элементами. А в чем разница с отображением множества позиций на множество чисел? Свойство транзитивности не обязательно должно выполняться?
  7. tiger Новичок

    • Новичок
    Рег.:
    11.02.2006
    Сообщения:
    85
    Симпатии:
    25
    Репутация:
    1
    Оффлайн
    Хороший вопрос. Может быть дело в двух вещах. Во-первых, формально тренированная сеть не гарантирует транзитивности. Но гораздо важнее, что если от нас требуется только сравнивать объекты, то зачем усложнять себе жизнь отображением в гораздо более простую структуру (числа) и сравнивать там? (Очень трудно сделать такое отображение без потери информации.)
  8. Alhimik88 Новичок

    • Новичок
    Рег.:
    10.06.2009
    Сообщения:
    81
    Симпатии:
    35
    Репутация:
    1
    Оффлайн
    Не понял, как нейросеть будет классифицировать позиции? Допустим у нас уникальная позиция, нейросеть ее ни разу не видела. Как она классифицирует ее, чтобы потом сравнивать?
  9. tiger Новичок

    • Новичок
    Рег.:
    11.02.2006
    Сообщения:
    85
    Симпатии:
    25
    Репутация:
    1
    Оффлайн
    Классифицировать позиции не надо, надо только сравнивать. Сеть, кстати, тоже не обязательна, любой механизм сравнения годится.

    Если вопрос как конкретно сеть сравнивает две позиции, то надо просто посмотреть архитектуру сети. Сначала два одинаковых "autoencoders with shared weights", на которые подается пара позиций. На выходе пара векторов, которая уже и преобразуется в пару неотрицательных чисел, которые сеть выдает на выходе.
    Alhimik88 нравится это.
  10. FlashNeo Учаcтник

    • Участник
    Рег.:
    23.11.2018
    Сообщения:
    587
    Симпатии:
    309
    Репутация:
    2
    Оффлайн
    grizly нравится это.
  11. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Автор Лилы Зеро для Го официально объявил об окончании процесса обучения. Причина - программа вышла на плато, за 500 тысяч последних партий усиления не произошло.
    https://github.com/leela-zero/leela-zero/issues/2560
    Crest и Camon14 нравится это.
  12. nn Заблокирован

    • Участник
    • Заблокирован
    • Старожил
    Рег.:
    25.03.2007
    Сообщения:
    1.459
    Симпатии:
    3.109
    Репутация:
    124
    Нарушения:
    31
    Оффлайн
    И тут после 605 тыс игр произошло усиление.

    Похоже, однако, что все это не автоматически полученные веса, а кто-то индивидуально обучает Лилу на сыгранных играх.
  13. TopicStarter Overlay

    grizly Учаcтник

    • Участник
    Рег.:
    10.05.2015
    Сообщения:
    398
    Симпатии:
    623
    Репутация:
    21
    Оффлайн
    DeepMind's MuZero немного сильнее в Го играет чем AlphaZero. В шахматы и шоги то же самое.

    Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model
  14. MayaWheel Новичок

    • Новичок
    Рег.:
    27.10.2018
    Сообщения:
    21
    Симпатии:
    24
    Репутация:
    -1
    Оффлайн
    Действительно зачем знать правила игры если весь алгоритм тупо ищет аналогии по типу распознавания образов.
    Прикольно что можно играть в "интеллектуальные игры" на сверхчеловеческом уровне вообще не имея интеллекта.
  15. Crest Админ, МГ

    • Команда форума
    Рег.:
    05.02.2006
    Сообщения:
    57.241
    Симпатии:
    21.127
    Репутация:
    626
    Адрес:
    Москва, Россия
    Оффлайн
    Отлично!
    Стало быть, у обычных программ есть шанс.
    Болею за Стокфиш и компанию!
    Kesandr и SKY нравится это.
  16. Kesandr Учаcтник

    • Участник
    Рег.:
    02.09.2008
    Сообщения:
    464
    Симпатии:
    35
    Репутация:
    11
    Оффлайн
    Да з компании там только Стокфиш и остался что может пока что реально конкурировать з сетями.
  17. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    649
    Симпатии:
    120
    Репутация:
    3
    Оффлайн
    Это другой проект совсем (для Го). Там другие авторы участвуют, насколько я знаю.
    Для шахмат - это Leela Chess Zero, 60-я сеть которого скоро превзойдет 40-ю, они не планируют останавливаться.
  18. nn Заблокирован

    • Участник
    • Заблокирован
    • Старожил
    Рег.:
    25.03.2007
    Сообщения:
    1.459
    Симпатии:
    3.109
    Репутация:
    124
    Нарушения:
    31
    Оффлайн
    С того времени, т.е. за 2 недели, сеть по внутренним расчетам на 140 эло усилилась. Реально наверно на 50. Не бог весть что, но на дороге 50 эло не валяется. Автору просто надоело. Кто-то другой возможно продолжит. Но, кажется, есть какая-то китайская программа основанная на тех же принципах, которая значительно сильнее. В го усилений еще копать и копать. Правда, о шахматах этот проект ничего не говорит.
    WinPooh и sovaz1997 нравится это.
  19. KEV81 Учаcтник

    • Участник
    Рег.:
    06.03.2017
    Сообщения:
    240
    Симпатии:
    46
    Репутация:
    6
    Оффлайн
    стала godlike
  20. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    FineArt ещё есть, китайская. Говорят, что по силе уже превзошла исходную AlphaGo Zero, и уж явно сильнее Лилы.
    У Лилы же существенное ограничение было принято, использовать нулевой принцип - то есть учиться только на своих партиях. Конкуренты в этом отношении обладают большей свободой выбора.
    Undying нравится это.
  21. svoitsl Учаcтник

    • Участник
    Рег.:
    06.01.2018
    Сообщения:
    374
    Симпатии:
    91
    Репутация:
    7
    Оффлайн
    В общем то вполне возможно использовать правила или методы теоретически обеснованные, тут главное что б не было всяких предвзятостей. Но теория тут пока несколько отстает, поэтому основной способ приближения к истине пока скорее эмпирический
  22. nn Заблокирован

    • Участник
    • Заблокирован
    • Старожил
    Рег.:
    25.03.2007
    Сообщения:
    1.459
    Симпатии:
    3.109
    Репутация:
    124
    Нарушения:
    31
    Оффлайн
    Стокфиш, мне кажется, продвинулся дальше чем Alpha Zero, и совсем не очевидно, что Лила его догонит. AZ была сильнее стокфиша 8 на 100 эло, при этом у стокфиша на условиях украли минимум 20 эло. Сейчас стокфиш где-то на 150 эло сильнее чем 8-й. С Лилой немного сложнее оценить при тех же условиях. В лучшем случае эло на 20 сильнее AZ. Т.е отстает от SF эло на 30.
  23. svoitsl Учаcтник

    • Участник
    Рег.:
    06.01.2018
    Сообщения:
    374
    Симпатии:
    91
    Репутация:
    7
    Оффлайн
    Стокфиш использует оценочную функцию с ограниченным и не очень большим числом параметров, многие вещи довольно трудно как то запрограммировать, другие- приводят к снижению скорости и в придачу Эло. Развитие Стокфиша целиком основано на эмпирических зависимостях и все более усложняется и как следствие - замедляется. Развитие Лилы тоже к концу года может замедлится, так как большую сеть тренировать весьма затруднительно, а алгоритм поиска скорее всего удастся довести до совершенства. Возможно, если разделить ее на три части - собственную дебютную книжку, сеть среднего размера тренированную на собственных дебютах (20х256) для миттельшпиля и меньшего (15х192 или 10х128) для эндшпиля несколько оживит ситуацию.
  24. nn Заблокирован

    • Участник
    • Заблокирован
    • Старожил
    Рег.:
    25.03.2007
    Сообщения:
    1.459
    Симпатии:
    3.109
    Репутация:
    124
    Нарушения:
    31
    Оффлайн
    Проблема алгоритма, того как он реализован в AZ в том, что он очень хорошо подходит для стратегических игр, тех где важна точная общая оценка позиции, возникающих структур, закономерностей, знание куда двигаться, и плохо для тактических , тех где нужен исключительно точный расчет. В этом смысле никакой быстрый переборный алгоритм даже близко не способен конкурировать с AZ в го. В шоги ситуация диаметрально противоположна. Первоначальный успех AZ в шоги связан с тем, что в шоги было вложено мало усилий в создание хороших переборных программ. Хотя вот теперь адаптированная версия стокфиш, даже с без настроенной оценочной функции, превосходит AZ. В шахматах ситуация где-то посередине. SF может накапливать маргинальные улучшения, а с Лилой как-то вроде бы не получается. Так что, думаю, без более хорошего переборного поиска у (AZ)Лилы и если на SF будут тратиться усилия и соотношение скорости CPU/GPU будет оставаться примерно таким же, SF будет сильнее.
  25. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.546
    Симпатии:
    1.265
    Репутация:
    36
    Адрес:
    Киев
    Оффлайн
    Мне кажется, что усиление SF связано ещё и с тем, что его начали тренировать на матчах против Lc0. Что позволило нивелировать слабые стороны, которые не могли вскрывать другие движки.
    sovaz1997 и Undying нравится это.
  26. nn Заблокирован

    • Участник
    • Заблокирован
    • Старожил
    Рег.:
    25.03.2007
    Сообщения:
    1.459
    Симпатии:
    3.109
    Репутация:
    124
    Нарушения:
    31
    Оффлайн
    Что значит тренировать SF на матчах? Имеется ввиду, что кто-то написал какой-то патч, потому что увидел игру против лилы? В SF11 да, наверно, таких, наверно, на 5 эло наберется. Там вроде бы всего оценки на 14, но в нее входит все - и настройка оптимальных коэффицииентов в оценке, и то, что кому-то пришло в голову по другим причинам.
  27. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.546
    Симпатии:
    1.265
    Репутация:
    36
    Адрес:
    Киев
    Оффлайн
    А как тренируется SF? Есть у него оценочная функция, эвристики, в которых есть over 9000+ различных параметров. Меняем ряд из них, играем набор тестовых матчей против старой версии, против других движков и смотрим, результат лучше или хуже. Если лучше — нашли усиление. Несколько усилений — новая версия. В чём-то процесс даже похож на обучение Lc0.
  28. nn Заблокирован

    • Участник
    • Заблокирован
    • Старожил
    Рег.:
    25.03.2007
    Сообщения:
    1.459
    Симпатии:
    3.109
    Репутация:
    124
    Нарушения:
    31
    Оффлайн
    Да, изменения тестируются против себя. А тренируется против Лилы тут причем?
  29. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.546
    Симпатии:
    1.265
    Репутация:
    36
    Адрес:
    Киев
    Оффлайн
    Не только против себя, но и против других движков. Против себя может быть необъективно — может быть эксплойт эксплойта в цикле. Мой поинт в том, что когда начали тестировать против Lc0, то начал наблюдаться прирост силы.
  30. nn Заблокирован

    • Участник
    • Заблокирован
    • Старожил
    Рег.:
    25.03.2007
    Сообщения:
    1.459
    Симпатии:
    3.109
    Репутация:
    124
    Нарушения:
    31
    Оффлайн
    Патчи в стокфиш не тестируются против других. Появление Лилы никак не изменило методику улучшения стокфиш.
  31. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    649
    Симпатии:
    120
    Репутация:
    3
    Оффлайн
    Stockfish успешно развивается именно благодаря тестированию против себя на ультра-коротких контролях времени. Число партий в тесте определяется с помошью SPRT-теста. Таких тестов в параллельном режиме идет много: http://tests.stockfishchess.org/tests . Другое дело, что некоторые идеи действительно могут браться из результатов партий против других движков. В том числе, и против Лилы. Грамотная статистика, большие ресурсы как железа (бывает и несколько тысяч ядер процессора работают для тестирования), так и разработчиков дает нам то, что Stockfish отрывается от ближайших конкурентов - Komodo и Houdini (не включая Лилу), уже сильно больше, чем 100 пунктов Эло. На таком уровне это очень большой отрыв.
    Brorn, svoitsl и Undying нравится это.
  32. smpin Учаcтник

    • Участник
    Рег.:
    04.10.2011
    Сообщения:
    129
    Симпатии:
    3
    Репутация:
    2
    Оффлайн
    Добрый день.
    Уважаемые форумчане, подскажите пожалуйста, есть ли база партий AlfaZeroc комментариями? Например Шипова С.Ю.
  33. svoitsl Учаcтник

    • Участник
    Рег.:
    06.01.2018
    Сообщения:
    374
    Симпатии:
    91
    Репутация:
    7
    Оффлайн
    на ютубе можно поискать кучку разобранных партий, может около 10, а с партиями Лилы может уже и 20 наберется.

    Если никто не подскажет, то можно не постесняться, и спросить прямо у него!
  34. SKY Учаcтник

    • Участник
    Рег.:
    05.11.2018
    Сообщения:
    190
    Симпатии:
    20
    Репутация:
    1
    Оффлайн
  35. smpin Учаcтник

    • Участник
    Рег.:
    04.10.2011
    Сообщения:
    129
    Симпатии:
    3
    Репутация:
    2
    Оффлайн
    SKY, большое спасибо.
    А есть в формате chessbase?

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