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

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

  1. WinPooh В.М.

    • Команда форума
    Member Since:
    13.02.2006
    Message Count:
    9.492
    Likes Received:
    3.124
    Репутация:
    95
    Location:
    Москва
    Оффлайн
    Теперь понял, спасибо. Выглядит очень интересно.
    Первый же вопрос, который возникает - позиции, вероятно, должны быть похожими, хотя бы из одной стадии партии? Будет странно сравнивать позиции из ладейного эндшпиля с лишней пешкой и какую-нибудь острую атаку в сицилианской защите. То есть на их сравнении мы научимся, но непонятно чему.
  2. Mustitz Заслуженный

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

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

    • Команда форума
    Member Since:
    13.02.2006
    Message Count:
    9.492
    Likes Received:
    3.124
    Репутация:
    95
    Location:
    Москва
    Оффлайн
    В идеале нам нужно натренировать такую policy network, которая будет выдавать на выходе просто лучший ход, вообще безо всяких дополнительных чисел типа числа ходов до выигрыша. Просто "лошадью ходи!" - и партия выигрывается.
  5. tiger Новичок

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

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

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

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

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

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

    • Участник
    Member Since:
    23.11.2018
    Message Count:
    587
    Likes Received:
    309
    Репутация:
    2
    Оффлайн
    grizly likes this.
  11. WinPooh В.М.

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

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

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

    grizly Учаcтник

    • Участник
    Member Since:
    10.05.2015
    Message Count:
    399
    Likes Received:
    623
    Репутация:
    21
    Оффлайн
    DeepMind's MuZero немного сильнее в Го играет чем AlphaZero. В шахматы и шоги то же самое.

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

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

    • Команда форума
    Member Since:
    05.02.2006
    Message Count:
    57.251
    Likes Received:
    21.158
    Репутация:
    629
    Location:
    Москва, Россия
    Оффлайн
    Отлично!
    Стало быть, у обычных программ есть шанс.
    Болею за Стокфиш и компанию!
    Kesandr and SKY like this.
  16. Kesandr Учаcтник

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

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

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

    • Участник
    Member Since:
    06.03.2017
    Message Count:
    240
    Likes Received:
    46
    Репутация:
    6
    Оффлайн
    стала godlike
  20. WinPooh В.М.

    • Команда форума
    Member Since:
    13.02.2006
    Message Count:
    9.492
    Likes Received:
    3.124
    Репутация:
    95
    Location:
    Москва
    Оффлайн
    FineArt ещё есть, китайская. Говорят, что по силе уже превзошла исходную AlphaGo Zero, и уж явно сильнее Лилы.
    У Лилы же существенное ограничение было принято, использовать нулевой принцип - то есть учиться только на своих партиях. Конкуренты в этом отношении обладают большей свободой выбора.
    Undying likes this.
  21. svoitsl Учаcтник

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

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

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

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

    • Заслуженный
    • Участник
    • Старожил
    Member Since:
    30.09.2006
    Message Count:
    3.547
    Likes Received:
    1.275
    Репутация:
    37
    Location:
    Киев
    Оффлайн
    Мне кажется, что усиление SF связано ещё и с тем, что его начали тренировать на матчах против Lc0. Что позволило нивелировать слабые стороны, которые не могли вскрывать другие движки.
    sovaz1997 and Undying like this.
  26. nn Заблокирован

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

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

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

    • Заслуженный
    • Участник
    • Старожил
    Member Since:
    30.09.2006
    Message Count:
    3.547
    Likes Received:
    1.275
    Репутация:
    37
    Location:
    Киев
    Оффлайн
    Не только против себя, но и против других движков. Против себя может быть необъективно — может быть эксплойт эксплойта в цикле. Мой поинт в том, что когда начали тестировать против Lc0, то начал наблюдаться прирост силы.
  30. nn Заблокирован

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

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

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

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

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

    • Участник
    Member Since:
    05.11.2018
    Message Count:
    190
    Likes Received:
    20
    Репутация:
    1
    Оффлайн
  35. smpin Учаcтник

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

Share This Page