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

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

  1. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Да выше же из описания приведены цитаты что роллауты в АльфаГоЗеро есть, партии доигрываются до конца.
    Из какой цитаты следует что их нет? Похоже на заговор, несколько человек говорят что их нет, но цитату приводить отказываются.
  2. zeroalphazero Учаcтник

    • Участник
    Рег.:
    14.12.2017
    Сообщения:
    133
    Симпатии:
    69
    Репутация:
    4
    Оффлайн
    Шаблоны отключили, а какой(ие) метод(ы) использовали?
    Основанные на информации о конкретной игре? — информацию в студию, please!
  3. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Всё, нашел :)
    Our program, AlphaGo Zero, differs from AlphaGo Fan and AlphaGo Lee in several important aspects
    ...
    Finally, it uses a simpler tree search that relies upon
    this single neural network to evaluate positions and sample moves,
    without performing any Monte Carlo rollouts.
    Challenger Spy, Gridnev, Undying и ещё 1-му нравится это.
  4. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    А что после 49...Kf8 ничья?:) Позиция-то все равно проиграна.
    Комсюк нравится это.
  5. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    https://geektimes.ru/post/2946
    Вот, по-русски
    То есть её оценка настолько хороша, что ей нет надобности в роллаутах.
    Ну и соответственно получается что в шахматах на этапе обучения играла до конца (это явно написано), а вот докуда играла в игровом режиме, и какие критерии обрыва использовались если играла не до конца - непонятно.
  6. redhelicopter Старожил

    • Участник
    • Старожил
    Рег.:
    11.11.2014
    Сообщения:
    629
    Симпатии:
    2.219
    Репутация:
    40
    Оффлайн
    Ну так раскройте глаза и увидите. Запустите движок, подсуньте ему позицию, и смотрите за сколько секунд он досчитает до 37-й глубины и откажется от хода ладьей. У меня - около 20 секунд.

    Почему "Стокфиш" в партии не досчитал? Либо там было железо тормознее, чем у моего ноута - либо (что более вероятно), ему ограничили глубину счета.
  7. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Возможно действительно прибавляла по одному узлу.
  8. MS Михаил Семионенков

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    6.542
    Симпатии:
    3.361
    Репутация:
    175
    Оффлайн
    Спасибо за углубление в тему. Здесь у меня не срослось.
    В моём понимании НС это ОФ. Если ход выбирается не случайно, а по весу (оценке?), то не является ли число ходов-кандидатов коэффициентом?
    Типа: выбрали все ходы-кандидаты, прогнали ОФ, выбрали лучший и тд до конца (или заданной глубины).
    Замедление при удвоении глубины тоже линейно (скорее, чуть меньше, поскольку обычно число ходов-кандидатов ближе к концу падает)
  9. Комсюк народный модератор

    • Заслуженный
    • Ветеран
    • Заблокирован
    • Старожил
    Рег.:
    17.07.2011
    Сообщения:
    19.230
    Симпатии:
    23.509
    Репутация:
    1.263
    Нарушения:
    31
    Оффлайн
    Вот-вот :)
    По ссылкам ходить умеете?
    —- добавлено: 15 дек 2017 —-
    у него через 20 секунд показывает ничью...
    Зачем смотреть дальше?
  10. redhelicopter Старожил

    • Участник
    • Старожил
    Рег.:
    11.11.2014
    Сообщения:
    629
    Симпатии:
    2.219
    Репутация:
    40
    Оффлайн
    В целом это просто иллюстративный пример, показывающий, что Стокфиш был "кастрированный", как выразился СЮ. Кастрировали ограничением глубины счета - в этом теперь нет сомнений. Понятно, что в партии и до этого хода были неточности, вызванные этим ограничением.

    Вы там не написали ничего, что опровергало бы мною сказанное. Уперлись в мантру "Ход был возможен от Стока" - ну да, возможен если рубануть счет на малой для этой позиции глубине.
    Запускал без эндшпильных баз, без запомненной линии с Qf4 в хеше. То есть все "зацепки" за которые вы там попытались ухватиться, не прокатывают.

    Да что вы говорите. И до какой глубины надо смотреть, чтобы Стокфиш снова вернулся к Rf8?
  11. Комсюк народный модератор

    • Заслуженный
    • Ветеран
    • Заблокирован
    • Старожил
    Рег.:
    17.07.2011
    Сообщения:
    19.230
    Симпатии:
    23.509
    Репутация:
    1.263
    Нарушения:
    31
    Оффлайн
    по ссылкам скрин с возможным ходом Лф8 и подтверждение от второго юзера
    Мало?
    Мне хватит
  12. Нестор консультант_ специалист по черной магии

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    11.04.2006
    Сообщения:
    2.955
    Симпатии:
    3.315
    Репутация:
    331
    Адрес:
    Москва
    Оффлайн
    Комсюк, рискну предположить, что ты с такой выдержкой тоже скоро гроссом станешь ... :)
    Любитель_ и Комсюк нравится это.
  13. Комсюк народный модератор

    • Заслуженный
    • Ветеран
    • Заблокирован
    • Старожил
    Рег.:
    17.07.2011
    Сообщения:
    19.230
    Симпатии:
    23.509
    Репутация:
    1.263
    Нарушения:
    31
    Оффлайн
    он не вернётся, если Фф4 увидел
    А если не увидел, будет молотить, как показано на скрине
    —- добавлено: 15 дек 2017 —-
    я под колпаком у Мюллера Антуана, а баллы мешают свободе маневра
  14. просроченый_кмс Старожил

    • Участник
    • Старожил
    Рег.:
    15.02.2010
    Сообщения:
    1.112
    Симпатии:
    167
    Репутация:
    6
    Оффлайн
    Я думаю т.к. в го оценка сложна то игрались случайные ходы по методу монтекарло, а в шахматах с нейросетью улучшенные ходы, ещё думаю хорошая идея на первых ходах больше рассматривать вариантов чем в глубине.
    Но мне непонятно, бывают же такие нелогичные но сильные ходы, как все эти проги хоть стокфиши хоть альфазеро умудряются не пропускать такие моменты.

    Помню неск лет назад наверно на кубке мира, Шипов в анализе после сказал типа еслиб Свидлер (например) только начал считать ход то додумался бы, понял смысл, а ход с человеческой точки зрения вообще не смотрелся такие сразу отсекаются, и как эти проги умудряются не ошибаться отсекая нелогичные но сильные в дальнейших расчётах ходы.
  15. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Нет, mcts делает не лучший ход.
    Стандартное описание mcts на многих сайтах только путает. Ибо рисуют уже готовое дерево, добавляют один лист, и из него играют партию до конца.
    А обычная схема другая. Ветвь строится из корневой позиции. Если оставить за скобками пробег по уже рассмотренному поддереву, то это выглядит так как будто добавляем один лист, но в реальности это не так. Программа делает при этом не лучшие ходы, а ходы которые минимизируют ошибку (но чем "лучше" ход, тем чаще он будет исполняться). Это значит что если нашли ход, который всегда выигрывает, то другие ходы рассматриваться не будут. Если в позиции все ходы всегда проигрывают, то через какое-то число пробегов будут рассмотрены все ходы.
    А если есть несколько хороших ходов, но какой-то из них показывает лучшую статистику - то он будет рассматриваться чаще остальных, но другие ходы не так часто, но тоже будут рассматриваться при повторных проходах через этот узел.
    В этом очень похоже на альфа-бету, тем что в выигранных позициях в идеале за выигрывающую сторону будет в каждом узле рассмотрен только один ход, а за проигрывающую сторону все ходы (правда количество пробегов через разные проигрывающие ходы будет разное)

    Ну и соответственно нет никаких ветвей и границ. В самом простом случае сильнейший ход - это который исполнялся из позиции чаще остальных, либо ход который показал лучшую статистику (средний результат)
  16. Нестор консультант_ специалист по черной магии

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    11.04.2006
    Сообщения:
    2.955
    Симпатии:
    3.315
    Репутация:
    331
    Адрес:
    Москва
    Оффлайн
    Интересно, сами разработчики Альфы до конца понимают, как работает их нейросеть?
    По аналогии с человеком, который точно не знает, как работает его мозг ...
  17. Rom Старожил

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    645
    Симпатии:
    276
    Репутация:
    28
    Оффлайн
    Оценивать позицию можно по разному. Можно использовать только оценку нейросети (так играет АльфаГоЗеро),
    а можно суммируя оценку нейросети и процент выигрыша в роллаутах (так играл АльфаГоМастер, и он кстати обходит Зеро на одинаковой глубине нейросети). Для тренировки нейросети никаких заданных шаблонов не используется, поэтому её можно считать обучившейся без человеческих знаний. А для роллаутов шаблоны нужны, поэтому Зеро роллауты и не использует.
  18. просроченый_кмс Старожил

    • Участник
    • Старожил
    Рег.:
    15.02.2010
    Сообщения:
    1.112
    Симпатии:
    167
    Репутация:
    6
    Оффлайн
    «Как ограничительные Теории метаматематики, так и теория вычислений говорят, что как только возможность представлять собственную структуру достигает некоей критической точки, то пиши пропало - это гарантия того, что вы никогда не сможете представить себя полностью. Теорема Гёделя о неполноте, Теорема Чёрча о неразрешимости, Теорема остановки Тьюринга, Теорема Тарского о невыразимости истины - все они чем-то напоминают старинные сказки, предупреждающие читателя о том, что «поиск самопознания - это путешествие, которое […] обречено быть неполным, не может быть изображено ни на каких картах, никогда не остановится и не сможет быть описано». Дуглас Хофштадтер, Гёдель, Эшер, Бах: эта бесконечная гирлянда, Самара, «Барах-М», 2001 г., с. 655
    Нестор нравится это.
  19. Нестор консультант_ специалист по черной магии

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    11.04.2006
    Сообщения:
    2.955
    Симпатии:
    3.315
    Репутация:
    331
    Адрес:
    Москва
    Оффлайн
    просроченый_кмс, ну, спасибо, хоть вы меня утешили, а то все эти Альфы вгоняют меня в тоску.
  20. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    https://senseis.xmp.net/?UCT
    Это основа для классических MCTS движков. Дальше добавляется RAVE, оценка и т.д.
    В каждом узле, из всех ходов выбирается ход с максимальным UCTValue
    UCTValue(parent, n) = winrate + sqrt((ln(parent.visits))/(5*n.nodevisits))
    Где n.nodevisits - это сколько раз исполнялся конкретный ход
    parent.visits - это который раз мы появились в этом узле
    winrate - это средний показанный результат для хода. 0- всегда проигрывал, 1 - всегда выигрывал.

    Если чисто UCT - то из узла который встретился впервые делается случайных ход, если RAVE Eval и т.д., даже ес узел новый, то у каждого хода все-равно есть вес, и делается ход с максимальным весом.
    Альфа устроена немного иначе, но сути и частоты исполнения ходов это не меняет.
    —- добавлено: 15 дек 2017 —-
    Только в коде написано, что если в позиции есть ходы, которые ни разу не выполнялись - то выбор хода в позиции будет из таких ходов.
    Это косяк, на самом деле это не так. Код верный только в части ходов которые выполнялись хотя-бы один раз.

    Вот мой старый пост для UCT+Eval
    N1mTzo нравится это.
  21. redhelicopter Старожил

    • Участник
    • Старожил
    Рег.:
    11.11.2014
    Сообщения:
    629
    Симпатии:
    2.219
    Репутация:
    40
    Оффлайн
    Кстати, Komodo видит ошибочность Rf8 почти сразу - на 25 глубине.
    Здесь уже высказывалась точка зрения, что Альфазеро натаскивался именно на игру против Стокфиша - похоже, так оно и есть. Нейросеть не столько играет в шахматы, сколько хорошо знает скрытые слабости соперника.
  22. просроченый_кмс Старожил

    • Участник
    • Старожил
    Рег.:
    15.02.2010
    Сообщения:
    1.112
    Симпатии:
    167
    Репутация:
    6
    Оффлайн
    Насчёт нейросети в мозге, думаю это находится пока за гранью науки, т.к. там не просто сложение и умножение, в нейронах используются квантовые эффекты, и сигналы по синапсам передаются не в аналоговом а в виде кода, это всё намного усложняет наш мозг и понимание его.
    Нестор нравится это.
  23. Нестор консультант_ специалист по черной магии

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    11.04.2006
    Сообщения:
    2.955
    Симпатии:
    3.315
    Репутация:
    331
    Адрес:
    Москва
    Оффлайн
    redhelicopter, Вы специально так троллите, что ли?
    Уж на что я далёк от компьютерных шахмат и программирования, и то уже давно понял в чём Ваше заблуждение.
  24. longinean Учаcтник

    • Участник
    Рег.:
    12.04.2015
    Сообщения:
    2.802
    Симпатии:
    8.511
    Репутация:
    130
    Оффлайн
    А вы на восьмом стокфише считали, на официальном? У меня уже глубина 47, и он только Rf8 предлагает, и полное равенство. Мне, правда, на одном ядре ноута считать часа 2 до той же глубины, что у них была на 64 ядрах :)
    2017_12_14_23_46_01.jpg
    Нестор, Undying и Комсюк нравится это.
  25. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    В Альфе нейросеть используется для аппроксимации. Что они пытаются аппроксимировать - разработчики конечно-же понимают. Как нейросеть аппроксимирует тоже известно.
    Нестор нравится это.
  26. Jadn Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    10.05.2006
    Сообщения:
    3.626
    Симпатии:
    2.535
    Репутация:
    52
    Оффлайн
    Никаких доказательств того, что в мозге используются квантовые эффекты, нет. И что значит "сигналы по синапсам передаются не в аналоговом а в виде кода"? А в искусственных нейросетях не в виде кода, что ли?
    Понимание мозга затрудняет только то, что нейронов там слишком дофига.
  27. Нестор консультант_ специалист по черной магии

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    11.04.2006
    Сообщения:
    2.955
    Симпатии:
    3.315
    Репутация:
    331
    Адрес:
    Москва
    Оффлайн
    NS, спасибо, но я немного в шутку задавал свой вопрос, имея в виду скорее последствия алгоритма, нежели сам алгоритм ...
  28. zeroalphazero Учаcтник

    • Участник
    Рег.:
    14.12.2017
    Сообщения:
    133
    Симпатии:
    69
    Репутация:
    4
    Оффлайн
    Возникают вопросы:
    на каком этапе производились коррекции ошибок — т.е. только ли на этапе обучения?
    использование статистики при выборе начальных ходов в разгромном матче — не есть ли подобие использования дебютной библиотеки?
  29. Нестор консультант_ специалист по черной магии

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    11.04.2006
    Сообщения:
    2.955
    Симпатии:
    3.315
    Репутация:
    331
    Адрес:
    Москва
    Оффлайн
    Больше чем в нейросети Альфы?
  30. redhelicopter Старожил

    • Участник
    • Старожил
    Рег.:
    11.11.2014
    Сообщения:
    629
    Симпатии:
    2.219
    Репутация:
    40
    Оффлайн
    Расскажите, в чем.

    Да.
  31. просроченый_кмс Старожил

    • Участник
    • Старожил
    Рег.:
    15.02.2010
    Сообщения:
    1.112
    Симпатии:
    167
    Репутация:
    6
    Оффлайн
    квантовые эффекты есть даже при фотосинтезе, а уж что бы зародилось сознание без них никак. имхо.

    Конечно, нейронов миллиарды, и связей у каждого десятки а то и сотни.
  32. Нестор консультант_ специалист по черной магии

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    11.04.2006
    Сообщения:
    2.955
    Симпатии:
    3.315
    Репутация:
    331
    Адрес:
    Москва
    Оффлайн
    redhelicopter, для того чтобы Ваш комп вышел на глубину СтокФиша с 64-мя ядрами, который играл в матче против Альфы, Вам понадобится существенно больше времени чем 1 минута.
    Сколько точно, я не знаю, мне это неинтересно, уточните у специалистов ...
    Надеюсь, что больше не надо будет Вам это объяснять в 101-ый раз? ;)
  33. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Ну, или не натаскивали специально, а провели несколько матчей. Со Стокфишем получилось хорошо, с Комодо чуть похуже, с Гудини - так себе. Опубликовали в статье результаты со Стокфишем.
  34. Jadn Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    10.05.2006
    Сообщения:
    3.626
    Симпатии:
    2.535
    Репутация:
    52
    Оффлайн
    Я не знаю сколько в Альфе, но думаю на много порядков меньше, чем в мозгу (примерно 10^11). Иначе никакой Гугл бы не смог ее обучить.
    —- добавлено: 15 дек 2017 —-
    имхо это не доказательство.
    Нестор нравится это.
  35. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    649
    Симпатии:
    120
    Репутация:
    3
    Оффлайн
    Давайте не спорить больше о Rf8/Kf8.

    Верно, Stockfish с чистым хешем достаточно быстро понимает, что Rf8 - ошибка, но при игре у SF забит хеш и он действительно мог недосчитать. Если бы контроль был не минута/ход, а время на партию, SF разрешил бы fail-high здесь.
    Комсюк нравится это.

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