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

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

  1. Undying
    Оффлайн

    Undying Учаcтник

    Репутация:
    15
    А на какой глубине вы ищете тактические ошибки?
     
  2. ШахматыЭтоДиагноз
    Оффлайн

    ШахматыЭтоДиагноз Учаcтник

    Репутация:
    208
    В режиме поиска грубых ошибок до 30-50 полуходов он доходит, в зависимости от позиции. Но дело даже не в этом (тут всегда можно сослаться на то, что "тот" SF был 64-ядерным и считал глубже), а в том что за А0 таких ошибок нет.
     
    Любитель_ и Challenger Spy нравится это.
  3. Undying
    Оффлайн

    Undying Учаcтник

    Репутация:
    15
    Логично. Во-первых, Альфа Зеро был сильнее и получал лучшие позиции. А как известно в плохой позиции все ходы плохие. А, во-вторых, в отличие от переборных движков Альфа Зеро принципы шахмат уважает, поэтому и вероятность серьезной ошибки с его стороны резко снижается.
     
  4. Комсюк
    Оффлайн

    Комсюк народный модератор баннер

    Репутация:
    1.266
    Ну хватит уже!

    Какой у Вас комп?
    Если 2-ядерный, то прогоните все партии по полчаса на ход, если 4-ёх, то пусть будет 15 минут
    Найдёте ошибки, тогда пишите!
     
    Последнее редактирование: 11 дек 2017
    N1mTzo и Gridnev нравится это.
  5. Undying
    Оффлайн

    Undying Учаcтник

    Репутация:
    15
    Возникает вопрос - а на сколько вообще можно доверять оценке переборных движков на большой глубине? Чем больше глубина, тем большая доля вариантов движком отсекается и вообще не рассматривается. Пока переборные движки играли между собой это не было особо заметно, так как у всех таких движков принципы отсечения примерно одинаковы. А Альфа Зеро как раз и продемонстрировал эту проблему. Судя по всему многие идеи, которые поднимает Альфа Зеро, переборные движки просто отбрасывают без серьезного рассмотрения.
     
    Любитель_ и WinPooh нравится это.
  6. Undying
    Оффлайн

    Undying Учаcтник

    Репутация:
    15
    Если бы Альфа Зеро был просто переборным движком, то со своими перебираемыми 80 тысячами позиций в секунду, не имел бы никаких шансов против Стокфиша с его 70 миллионами позиций в секунду. Главная разница в оценке позиции. Оценка Стокфиша это уровень 3-4 разряда. А Альфа Зеро понимает шахматы много лучше.
     
  7. Комсюк
    Оффлайн

    Комсюк народный модератор баннер

    Репутация:
    1.266
    это мантра времён Рыбки 2
     
  8. sovaz1997
    Оффлайн

    sovaz1997 Учаcтник

    Репутация:
    3
    Ну, серьезно. Если Alpha Zero - настолько мощный движок, зачем его сравнивают со слабым SF 8 в таких условиях? Ведь если Alpha Zero наголову превосходит всех, надо ставить SF в нормальные условия с нормальным хешем и контролем времени.

    Вот позиция:

    4r1kq/p2prp1p/5RpP/2p5/7Q/1B4P1/P4PK1/8 b - - 0 1 (http://talkchess.com/forum/viewtopic.php?t=65972)

    В ней SF играет не Kf8, а Rf8. Почему? Не знаю. Но Kf8 еще давал шансы на ничью.

    И я уверен, есть еще немало таких позиций. Из этого вывод: AZ показывает блестящие позиционные шахматы со стратегией и планом, в отличие от других движков. Но насколько AZ играет лучше мы не сможем сравнить из-за разных архитектур. Пусть партии и получились красивыми, но нам дали только 10 из 100. И SF не всегда делал лучшие ходы. Много вопросов пока, в общем.
     
  9. Комсюк
    Оффлайн

    Комсюк народный модератор баннер

    Репутация:
    1.266
    по кочану :diablo:
    Ты же висел в ветке, когда Нора показала этот ход на скрине (Сток 8 без таблиц)
    И на Talkchess напиши
    —- добавлено: 11 дек 2017 —-
    Уверен?
    Покажи позиции!
     
  10. Undying
    Оффлайн

    Undying Учаcтник

    Репутация:
    15
    А что в данном отношении изменилось со времен Рыбки?
     
  11. sovaz1997
    Оффлайн

    sovaz1997 Учаcтник

    Репутация:
    3
    Я уверен не на 100%. Уверен=я уверен (имхо). Если так быстро нашли такую позицию, почему других не будет, где SF делает самоубийственный ход.
     
  12. Yury_Solomatin
    Оффлайн

    Yury_Solomatin Учаcтник

    Репутация:
    24
  13. 4547
    Оффлайн

    4547 Учаcтник

    Репутация:
    138
    В соревнованиях между обычными движками происходит по сути соревнование алгоритмов оценки позиций, использования ресурсов системы, включая отсечения ненужных вариантов. Алгоритмы как бы совершенствуются.
    У Альфы зеро свои собственные выработанные (не человеком) алгоритмы. Хотя вполне может быть так: A0 была "натренирована" играть именно против стокфиша. Для ИИ с мощными ресурсами найти слабости в заданных человеком алгоритмах стокфиша не так уж трудно... Стокфиш ведь не есть совершенство. Таким образом против другого движка может и не сработать.
     
  14. Комсюк
    Оффлайн

    Комсюк народный модератор баннер

    Репутация:
    1.266
    всё чаще гениальное вмешательство второразрядника-адвансёра приносит только вред программе-третьеразряднице
     
  15. Undying
    Оффлайн

    Undying Учаcтник

    Репутация:
    15
    И что принципиально изменилось в оценке позиции? По-прежнему в основе лежит простой подсчет материала. Чуть-чуть учитывается пространство, активность фигур, безопасность короля. Учитывать это лучше не получается в силу врожденной примитивности алгоритмического подхода. Более тонкие вещи, вроде плохих фигур и игры по полям, вообще учитывать не получается. А у Альфа Зеро получается. Что наглядно продемонстрировано в выложенных партиях.
     
    sovaz1997 нравится это.
  16. Мобуту
    Оффлайн

    Мобуту спаситель нации баннер

    Репутация:
    142
    Не вижу, чтобы было так уж продемонстрировано непонимание Стокфиша. Если смотреть на его оценки, то он довольно трезво оценивает происходящее. Нет такого, чтобы он ставил -2 там, где должно быть +2. Проиграл по другой причине. Обычно возникали острые позиции с нарушенным соотношением сил сказалось колоссальное превосходство противника в счётных способностях, в железе. А избежать этих позиций он не мог, так как был лишён вариативности игры, которую ему могла бы дать дебютная книжка, возможность самому определять время на раздумье.
     
    Последнее редактирование: 11 дек 2017
  17. Undying
    Оффлайн

    Undying Учаcтник

    Репутация:
    15
    Например, в позиции с запертым ферзем у Стокфиша лишнее качество и две пешки при отсутствии прямых угроз. Какую оценку даст Стокфиш видя эту позицию в вариантах на глубине расчета близкой к предельной? Наверняка положительную для себя и смело на эту позицию пойдет. А в реальности это жбан для черных.

    Или в партии когда Стокфиш фигуру пожертвовал. В итоге у него получилось 4 пешки за фигуру в эндшпиле. Тоже вроде неплохо. А то что эти пешки никуда не идут Стокфиш, просто глянув на позицию, понять не может, ему надо еще считать и считать. Поэтому опять же видя эту позицию в вариантах на глубине, Стокфиш считает ее нормальной для себя и смело на нее идет, получая жбан.

    Вообще-то дебют это такая же часть шахматной игры как и остальные стадии. И то что Стокфиш играет в дебюте хуже, чем Альфа Зеро, доказывает только то, что он просто хуже играет в шахматы.
     
    Baron нравится это.
  18. Fruit
    Оффлайн

    Fruit Александр баннер

    Репутация:
    3
    В позициях с позиционными жертвами, когда движок не в силах досчитать их последствия, доверять не стоит. Переписочникам это давно известно.
    Вот, например, позиция из моей партии по переписки, игранной в 2010г:

    r1b1r1kq/pp1ppp1p/2n3pB/8/4R2P/1R1B4/P1P2PP1/3Q2K1 w - - 0 19



    Analysis by Stockfish 8 64 BMI2:

    19.Bc4 e6 20.Bd2 h5 21.Rg3 Rd8 22.Bc3 Qh6 23.Qd6 Qf8 24.Qd1 Qh6
    = (0.00) глубина: 49/13 00:55:43 11500484kN

    Стокфиш 8 ее оценивает неправильно (правильно - у черных 100%-й жбан), а в партии все закончилось цугцвангом менее, чем через 20 ходов.
     
    Alhimik88, N1mTzo и Undying нравится это.
  19. crem
    Оффлайн

    crem Учаcтник

    Репутация:
    14
    У нейросетей действительно такой же перебор, как и у классических движков, но разница вот в чём:

    1. Классические движки без перебора не видят многих очевидных вещей, которые люди видят. Например, если у вас висит ферзь и сейчас ход противника, то стокфиш без перебора (в данном случае на глубину всего 1) не видит, что этого ферзя на самом деле нет.
    Это простой пример, но на самом деле есть много шаблонных ситуаций, в которых человек видит в чём дело безо всякого счёта вариантов, а стокфишу надо посчитать, и нередко глубоко. А нейронные сети видят ещё больше шаблонов, чем человек, гораздо больше.
    По этой причине, например, стокфиш не видит крепости вообще, насколько бы глубоко он не считал, а нейронная сеть вообще без перебора беглым взглядом крепость определит.

    2. По поводу того, какие ходы перебирать, у стокфиша есть некоторые эвристики, по которым он считает некоторые ветки глубже, чем остальные (форсированные взятия, устранение "эффекта горизонта" и т д), но в некотором приближении там полный перебор. У alphazero же отдельная нейронная сеть выбирает какие ходы вероятнее всего статическую оценку (из предыдущего пункта) поменяют, и именно такие ветви и выбираются для просчёта, точно так же как сделал бы человек.

    3. Классические движки оценивают силу позиции в виде одного числа. Alphazero вместо этого оценивает вероятность ничьей, победы и поражения отдельно (сумма этих величин 1.0). Поэтому у стокфиша обоюдоострая позиция будет иметь такую же оценку, как и совсем сухая.
    Почему шахматные движки такого до сих пор не делают — не знаю, это не что-то для чего обязательно нужна нейронная сеть. Хотя вполне возможно, что и делают, только не показывают пользователям.

    По поводу TPU и его стоимости:

    1. В некоторых статьях пишут что TPU стоит "десятки миллионов за штуку". На самом деле это не так, стоимость сравнима с CPU и GPU.

    2. Google Cloud будет предлагать TPU в аренду (и уже предлагает в режиме тестирования, https://cloud.google.com/tpu/) по цене, сопостовимой с арендой CPU и GPU (~0,5$ за один TPU в час).
    При такой цене натренировать нейронную сеть будет дороговато ($2 млн), но наверняка найдутся люди, готовые эту сумму заплатить.
    С другой стороны, играть с натренированной сетью на оборудовании гугла будет не так уж и неподъёмно, ~$5 за игру.

    3. TPU гугла скорее всего в продаже не появятся, но другие производители железа (NVidia та же) наверняка в скором времени предоставит свои TPU для потребительского рынка.

    4. Некоторое время назад гугл опубликовал очень подробное описание AlphaGo, и сказал, что сам гугл больше не будет заниматься Go. С тех пор появилось много проектов с открытым кодом, пытающихся повторить/превзойти силу игры AlphaGo, и сотрудники гугла считают, что некоторые из них уже близки к этому.
    Учитывая интерес к шахматам, я думаю, что с шахматами произойдёт что-нибудь похожее: напишут более подробную статью, проведут соревнования так, чтобы ни у кого не возникло сомнений (например, alphazero против Магнуса с движком на выбор), опубликуют сотню-другую партий alphazero против alphazero, и скажут, что дальше вы сами.
     
    Alhimik88, Любитель_, MS и 4 другим нравится это.
  20. Комсюк
    Оффлайн

    Комсюк народный модератор баннер

    Репутация:
    1.266
    поставьте и посмотрите

    сначала удивитесь, а потом расскажете нам
    —- добавлено: 11 дек 2017, опубликовано: 11 дек 2017 —-
    Роберт Гударт писал в релизе к четвёртому Гудку (или даже раньше), что цифры на табло и есть вероятность победы в этой позиции, выраженная в сантипешках (не дословно, но близко по смыслу)
    —- добавлено: 11 дек 2017 —-
    А то, что Альфа наиграла себе дебютные познания "на тренировке" уже не в счёт?

    Ещё раз для всех неверующих
    Скачайте отсюда движок и книжку (это Стокфиш, не волнуйтесь)
    И поставьте матч движка вооружённого и пустого
    Сразу отпадут все вопросы
     
  21. Undying
    Оффлайн

    Undying Учаcтник

    Репутация:
    15
    Например, партия с жертвой фигуры Стокфишем: https://lichess.org/B6ebUyzC

    После 34 хода черных (только что разменялись ферзи) Стокфиш показывает нули даже на глубине 40. И это логично, ведь 4 пешки это достаточная материальная компенсация за слона, а плана выигрыша за черных Стокфиш не видит.
     
  22. Комсюк
    Оффлайн

    Комсюк народный модератор баннер

    Репутация:
    1.266
    Вчера или позавчера я ставил эту позу на полчаса по просьбе Локомотива
    ход Кс4 был на первой линии с оценкой -1.18

    Давайте следующую
     
    Любитель_, N1mTzo, sovaz1997 и ещё 1-му нравится это.
  23. Baron
    Оффлайн

    Baron Учаcтник

    Репутация:
    11
    Через полчаса (точнее на 61 секунде) Стокфиш роняет флаг и ему все равно засчитывают поражение. Альфе надо давать фору стоку, на порядок большую, чем Морфи давал Паульсену (3 часа против 12), но это само по себе уже показывает разницу в классе.
     
  24. Комсюк
    Оффлайн

    Комсюк народный модератор баннер

    Репутация:
    1.266
    Baron, полчаса даётся чтобы компенсировать разницу между моим компом и тем, на котором играл Сток
    —- добавлено: 11 дек 2017 —-
    в этот раз Сток давал фору отсутствием книги
    —- добавлено: 11 дек 2017, опубликовано: 11 дек 2017 —-
    для вновь прибывших альфафанов
    —- добавлено: 11 дек 2017 —-
    это рейтинг-лист КНИГ, движок один и тот же
     
    Последнее редактирование: 11 дек 2017
  25. hornet
    Оффлайн

    hornet Учаcтник

    Репутация:
    490
    Что толку от этого анализа? Анализ от стока, да ещё и глубина беспонтовая (21). Сейчас мы не знаем на какой глубине можно доверять анализу стока - в сыгранных партиях мы по большому счету не можем определить, где совершена ошибка, и тем более не можем предложить улучшение (наш же сток нас и обманет). :chess:
     
  26. Мобуту
    Оффлайн

    Мобуту спаситель нации баннер

    Репутация:
    142
    Не знаю насчёт того искалеченного Стокфиша, что играл матч, но нормальный Стокфиш на самой обычной персоналке прекрасно понимает, что с пешками за фигуру у белых хуже. Оценка там отрицательная у него была всю дорогу. В случае с запертым на h8 ферзём - наоборот, положительная, т.е. в пользу противника. Даже до бредового хода 49... Rf8??, от которого оценка подскакивает с +0.6 до +6, Стокфишу не нравится позиция чёрных. К слову, этот момент лучше всех прочих показывает, насколько всё-таки был испорчен Стокфиш специально к этому матчу.
     
    Swordman и ШахматыЭтоДиагноз нравится это.
  27. Комсюк
    Оффлайн

    Комсюк народный модератор баннер

    Репутация:
    1.266
    Вождь, вы только пишете в этой теме?
    Не читаете других?
     
    N1mTzo нравится это.
  28. sovaz1997
    Оффлайн

    sovaz1997 Учаcтник

    Репутация:
    3
    можете дать FEN позиции?
     
  29. Комсюк
    Оффлайн

    Комсюк народный модератор баннер

    Репутация:
    1.266
  30. Мобуту
    Оффлайн

    Мобуту спаситель нации баннер

    Репутация:
    142
    Так глубоко я не рыл, на своём компе не гонял. Хватает и оценки в интернете.
    https://lichess.org/B6ebUyzC#21 - 35-й ход и далее
    https://lichess.org/tJzewmVJ#92 - 47-й ход и далее
     
  31. sovaz1997
    Оффлайн

    sovaz1997 Учаcтник

    Репутация:
    3
    Мобуту, анализ в lichess очень слабый
     
  32. Комсюк
    Оффлайн

    Комсюк народный модератор баннер

    Репутация:
    1.266
    да он троллит, походу
     
  33. Мобуту
    Оффлайн

    Мобуту спаситель нации баннер

    Репутация:
    142
    Ну так даже на этой смешной глубине Стокфиш уже всё более-менее понимает: позиция плохая. А если дать ему подумать подольше, то наверняка оценки станут ещё жёстче.
     
  34. Undying
    Оффлайн

    Undying Учаcтник

    Репутация:
    15
    То есть Стокфиш начинает что-то подозревать на глубине порядка 50 полуходов. Ему не то, что взгляда на эту позицию недостаточно, а надо на 25(!) ходов вперед посчитать, чтобы качественно правильную оценку дать. Какие вам еще нужны доказательства, что Стокфиш хреново понимает такого типа позиции?
     
  35. sovaz1997
    Оффлайн

    sovaz1997 Учаcтник

    Репутация:
    3
    Undying, внедрение нейросетей в оценочную функцию будет актуально тогда, когда процессоры будут быстро с ними работать. Конечно, плохо то, что сейчас. Но и альтернативы под CPU пока нет.
    —- добавлено: 11 дек 2017 —-
    35-й ход: Rc1, до этого выдавал ход, сделанный в партии. Здесь просто позиция и так проиграна для SF.
    Код:
    info depth 52 seldepth 71 multipv 1 score cp -130 nodes 20666850394 nps 8286319 hashfull 999 tbhits 0 time 2494093 pv g1c1 c5c4 e5c4 f8c5 c2c3 c5f2 c1b1 a7a2 c4b2 f2e3 b3b4 e3d2 b2d1 h3f1 b1b2 a2b2 d1b2 d2c3 h1g1 f1h3 b2c4 c3d4 g1h1 h3f1 c4d6 g8f8 e4e5 f1h3 d6b5 d4b6 d3d4 h3f1 b5d6 b6d4 h2h4 d4c3 b4b5 c3d4 h1h2 d4c5 d6e4 c5b6 g3g4 f1b5 e4d6 b5e2 h2g3 b6a5 h4h5 a5e1 g3h3 e2d3 d6f5 f8f7 h3g2 d3e4 g2h3 e1b4 h3h4 e4c2 f5d4 c2d1 d4f5 b4d2 h4g3 d2e1 g3h3 d1e2 f5d6 f7f8
    47-й ход - этот ход делал AZ.
    Все чисто здесь.