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

Discussion in 'Машинное отделение' started by grizly, 6 Dec 2017.

  1. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

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

    Mustitz баннер

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

    nh2008 Старожил

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

    WinPooh В.М. Staff Member

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

    tiger Новичок

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

    nn Заблокирован

    Репутация:
    124
    То есть на множестве позиций введена операция сравнения между двумя элементами. А в чем разница с отображением множества позиций на множество чисел? Свойство транзитивности не обязательно должно выполняться?
     
  7. tiger
    Оффлайн

    tiger Новичок

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

    Alhimik88 Новичок

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

    tiger Новичок

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

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

    FlashNeo Учаcтник

    Репутация:
    2
    grizly likes this.
  11. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

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

    nn Заблокирован

    Репутация:
    124
    И тут после 605 тыс игр произошло усиление.

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

    grizly Учаcтник

    Репутация:
    21
    DeepMind's MuZero немного сильнее в Го играет чем AlphaZero. В шахматы и шоги то же самое.

    Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model
     
  14. MayaWheel
    Оффлайн

    MayaWheel Новичок

    Репутация:
    -1
    Действительно зачем знать правила игры если весь алгоритм тупо ищет аналогии по типу распознавания образов.
    Прикольно что можно играть в "интеллектуальные игры" на сверхчеловеческом уровне вообще не имея интеллекта.
     
  15. Crest
    Оффлайн

    Crest Админ, МГ Staff Member Команда форума

    Репутация:
    629
    Отлично!
    Стало быть, у обычных программ есть шанс.
    Болею за Стокфиш и компанию!
     
    Kesandr and SKY like this.
  16. Kesandr
    Оффлайн

    Kesandr Учаcтник

    Репутация:
    11
    Да з компании там только Стокфиш и остался что может пока что реально конкурировать з сетями.
     
    Last edited: 4 Jan 2020
  17. sovaz1997
    Оффлайн

    sovaz1997 Учаcтник

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

    nn Заблокирован

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

    KEV81 Учаcтник

    Репутация:
    6
    стала godlike
     
  20. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

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

    svoitsl Учаcтник

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

    nn Заблокирован

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

    svoitsl Учаcтник

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

    nn Заблокирован

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

    Mustitz баннер

    Репутация:
    37
    Мне кажется, что усиление SF связано ещё и с тем, что его начали тренировать на матчах против Lc0. Что позволило нивелировать слабые стороны, которые не могли вскрывать другие движки.
     
    sovaz1997 and Undying like this.
  26. nn
    Оффлайн

    nn Заблокирован

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

    Mustitz баннер

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

    nn Заблокирован

    Репутация:
    124
    Да, изменения тестируются против себя. А тренируется против Лилы тут причем?
     
    Last edited: 14 Jan 2020
  29. Mustitz
    Оффлайн

    Mustitz баннер

    Репутация:
    37
    Не только против себя, но и против других движков. Против себя может быть необъективно — может быть эксплойт эксплойта в цикле. Мой поинт в том, что когда начали тестировать против Lc0, то начал наблюдаться прирост силы.
     
  30. nn
    Оффлайн

    nn Заблокирован

    Репутация:
    124
    Патчи в стокфиш не тестируются против других. Появление Лилы никак не изменило методику улучшения стокфиш.
     
  31. sovaz1997
    Оффлайн

    sovaz1997 Учаcтник

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

    smpin Учаcтник

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

    svoitsl Учаcтник

    Репутация:
    7
    на ютубе можно поискать кучку разобранных партий, может около 10, а с партиями Лилы может уже и 20 наберется.

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

    SKY Учаcтник

    Репутация:
    1
  35. smpin
    Оффлайн

    smpin Учаcтник

    Репутация:
    2
    SKY, большое спасибо.
    А есть в формате chessbase?