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

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

  1. Mustitz Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    30.09.2006
    Сообщения:
    2.639
    Симпатии:
    150
    Репутация:
    8
    Адрес:
    Киев
    Оффлайн
    Ок, посчитаем. Допустим, вероятность победы α. Допустим, что в случае повторения ходов вероятность того, что соперник пойдёт на повторение β, а вероятность победы, в случае, когда соперник откажется будет α+ε, ε > 0. Тогда вероятность победы в случае однократного повторения позиции будет αβ + (α+ε)(1- β) = αβ + α(1- β) + ε(1- β) = α(β+1-β) + ε(1- β) = α + ε(1- β) > α. Значит идти на повторение выгодно.
  2. KEV81 Учаcтник

    • Участник
    Рег.:
    06.03.2017
    Сообщения:
    343
    Симпатии:
    82
    Репутация:
    -4
    Нарушения:
    3
    Оффлайн
    На каком основании ε > 0 ?

    ε > 0 будет только в том случае, если соперник играет сильнее (и наоборот).
    то есть ε это постулированная сила игры соперника.
    Но мы не знаем силу игры соперника, и мат. ожидание силы будем считать за 0.

    Поэтому повторение ходов не улучшает и не ухудшает стратегию игрока.
    αβ + (α+0)(1- β) = αβ + α(1- β) = αβ + α-αβ = α;
  3. Camon14 магистр

    • Заслуженный
    • Ветеран
    Рег.:
    28.05.2012
    Сообщения:
    13.219
    Симпатии:
    5.490
    Репутация:
    352
    Оффлайн
  4. Mustitz Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    30.09.2006
    Сообщения:
    2.639
    Симпатии:
    150
    Репутация:
    8
    Адрес:
    Киев
    Оффлайн
    От позиции завист. Неужели такого не может быть, что после хода A у нас 30% на победу, в после хода B соперник может повторить позицию, а может пойти на вариант, где у нас 40% на победу? В этом случае у нас ε > 0. И в таком типе позиций AlphaZero будет повторять позицию один раз.
  5. KEV81 Учаcтник

    • Участник
    Рег.:
    06.03.2017
    Сообщения:
    343
    Симпатии:
    82
    Репутация:
    -4
    Нарушения:
    3
    Оффлайн
    Ну так знание после какого хода у нас лучше или хуже и есть сила игры, разве не так?
  6. Mustitz Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    30.09.2006
    Сообщения:
    2.639
    Симпатии:
    150
    Репутация:
    8
    Адрес:
    Киев
    Оффлайн
    Для AlphaZero это статистика сыгранных между собой партий... Мы сыграли с Талем 10 партий, в 6 из них мы пошли конём и выиграли две, в четырёх пошли на повторение позиции, один раз Таль отказался от повторения и проиграл, в трёх позиция повторилась, нам пришлось ходить конём и мы выиграли одну.

    Получается, если ходить конём, то вероятность победы 33% (2 из 6). Если идти на повторение, то мы выиграли 4 партии из 10 (40%).
  7. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    92
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    При этом в игру Таля внесена рандомность.
    A0 при наигрывании партий не делает ход с лучшей статистикой, а делает ход пропорционально степени количества исполнений хода в дереве MCTS, то есть с ненулевой вероятностью может исполнить самый слабый по её-же мнению ход в позиции.
  8. algoflip Начинающий

    • Начинающий
    Рег.:
    11.01.2018
    Сообщения:
    3
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Людей же обучают преимуществу двух слонов, "запирать фигуры" соперника и причём на конкретных примерах. Почему квалифицированный шахматист не может выбрать такую методику для создания алгоритма путём обучения нейронной сети?
    Если действительно так, то по первой линии движок сыграть, по-другому, не может, а по-другим линиям будут другие варианты.
  9. algoflip Начинающий

    • Начинающий
    Рег.:
    11.01.2018
    Сообщения:
    3
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    По-поводу формулы после обучения с учителем, которую можно применять ко всем шахматным позициям: возможно, это не так, поскольку это наверно большой рывок вперёд. С другой стороны, можно устроить (само)обучение нейронной сети, которое учитывает уже разобранные конкретные позиции, варианты (например, сеть будет отвергать шаг обучения, если он не удовлетворяет уже разобранным тестовым позициям, вариантам или(и) как-то корректировать числа для нового шага обучения).
  10. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    92
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Количество вычислений на сетке 20x256 пропорционально 20*256*256, на сетке 5x64 пропорционально 5*64*64 Итого у Гугла для оценки позиции требуется в 64 раза больше операций.
    То есть разница в производительности одного TPU и Titan X - в 640 раз. 4 TPU быстрее чем Titan X примерно в 2500 раз.
    N1mTzo и Rom нравится это.
  11. svoitsl Начинающий

    • Начинающий
    Рег.:
    05.01.2018
    Сообщения:
    2
    Симпатии:
    1
    Репутация:
    0
    Оффлайн
    Brorn нравится это.
  12. zeroalphazero Новичок

    • Новичок
    Рег.:
    14.12.2017
    Сообщения:
    57
    Симпатии:
    31
    Репутация:
    0
    Оффлайн
    В Mega Database 2018 (включая 12 обновлений!) 7253441 партия.
    Даже если вы удалите дубли, количество не так уж сильно уменьшится.
    Приплюсуйте партии, сыгранные по переписке и в турнирах/матчах программ.
    Из этого сонма вам перед завтрашней партией черными с, например, каким-нибудь там Gascon Del Nogal'ем необходимо и достаточно — что? — правильно! — выбрать гораздо меньшее количество. Ну и т.д. — про подготовку к конкретному сопернику не стоит долго объяснять...
    Люди и программы так или иначе опираются на статистику.
    Теперь представим себе маленький абсурд: во всех партиях нашего завтрашнего соперника проставлен далекий от истины результат.
    Автоматизированный способ подготовки летит к чертям. Ручками придется — собственными ручками и собственными мозгами! Как же тяжко жилось шахматным маэстро в позапрошлом веке!
    На прошлой странице мною приводилась человеческая партия, сыгранная "по стопам матча AlphaZero — Stockfish 8" (спасибо 10-му обновлению).
    Многие ли обратили внимание на результат?
    Многие ли сравнили с истинным?
  13. nn В предбаннике

    • Участник
    Рег.:
    25.03.2007
    Сообщения:
    396
    Симпатии:
    968
    Репутация:
    61
    Нарушения:
    10
    Оффлайн
    Leela-chess немного потренированная - играет на гроссмейстерском уровне, +600 эло против нетренированной. Расставляет шашки академически, еще бы ценности фигур научилась.

  14. Jadn Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    10.05.2006
    Сообщения:
    2.891
    Симпатии:
    609
    Репутация:
    25
    Оффлайн
    А она варианты совсем не считает? Там мат в два хода был...
  15. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    8.160
    Симпатии:
    1.533
    Репутация:
    58
    Адрес:
    Москва
    Оффлайн
    Книжка, кстати, замечательная. Как раз сейчас читаю. Особенно хороши эпиграфы :)
    И математики достаточно, и когда голова от неё устаёт, много исторических экскурсов.
    Ещё и краткое введение в TensorFlow, на Питоне.
  16. NS Нефёдов Сергей

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

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    25.352
    Симпатии:
    5.727
    Репутация:
    264
    Адрес:
    Ростов-на-Дону
    Онлайн
    Там не только мат в два хода. Там вообще ВСЁ было. :)
    P.S. Просматривая эту партию, я так ждал, что белые всё-таки победят. Но не срослось. :D
  18. Camon14 магистр

    • Заслуженный
    • Ветеран
    Рег.:
    28.05.2012
    Сообщения:
    13.219
    Симпатии:
    5.490
    Репутация:
    352
    Оффлайн
  19. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    92
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Не совсем понятно что они делают.
    По-уму должны были натренировать сеть на партиях человеков, посмотреть достигнутую силу, и потом тренировать с нуля. Как например было сделано в LZ (GO)
  20. Jadn Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    10.05.2006
    Сообщения:
    2.891
    Симпатии:
    609
    Репутация:
    25
    Оффлайн
    А как он их выбирает? Случайным образом с текущей позиции?
    Материал понимать - это учиться надо, а мат это мат. но вообще странно - я бы предположил, что материал научится понимать раньше, чем принципы развития в дебюте.
  21. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    92
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Нет там ни малейшей случайности. Каждый раз выбирается ход имеющий максимальный вес по формуле PUCT
    --- добавлено: 15 янв 2018 в 17:02 ---
    Вес зависит от оценки и вероятности того что ход лучший (оба выдаются нейронной сетью), от количество раз, сколько посетили текущий узел, и сколько раз был исполнен этот ход.
  22. zeroalphazero Новичок

    • Новичок
    Рег.:
    14.12.2017
    Сообщения:
    57
    Симпатии:
    31
    Репутация:
    0
    Оффлайн
  23. nn В предбаннике

    • Участник
    Рег.:
    25.03.2007
    Сообщения:
    396
    Симпатии:
    968
    Репутация:
    61
    Нарушения:
    10
    Оффлайн
    Поставил 1600 rollouts, чтобы как у Leela Zero было.
    Да, сыграл две партии - абсолютно одинаковы.
    Тренировалась на партиях Stockfish. Пока ошибки в основном вылавливают, и части с го в шахматы переводят. Ну вот, supervised learning вроде работает
    --- добавлено: 15 янв 2018 в 20:41, опубликовано: 15 янв 2018 в 20:28 ---
    Вот, кстати, партия тренированной против нетренированной. Ферзя пришлось предлагать несколько раз. Видимо в тренировочных партиях ферзя мало за просто так подставляли.

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

    • Заслуженный
    • Ветеран
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    92
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Всё немного сложнее.
    При построении дерева перебора из 1600 узлов - случайностей нет. В каждой позиции выбирается ход с максимальным весом.
    После построения дерева перебора - мы получаем для каждого хода из обдумываемой позиции - количество раз, сколько раз он исполнялся при построении дерева перебора.
    А дальше уже вносится элемент случайности. Программа может сделать любой из возможных в позиции ходов, и вероятность сделать ход пропорциональна степени количества исполнений этого хода (в какую степень возводим - это параметр, которым регулируется рандомность игры)
    То есть при построении дерева перебора рандомности нет. При исполнении хода (игре) рандомность есть, и её можно регулировать.
  25. nn В предбаннике

    • Участник
    Рег.:
    25.03.2007
    Сообщения:
    396
    Симпатии:
    968
    Репутация:
    61
    Нарушения:
    10
    Оффлайн
    По всей видимости там сейчас ошибка в коде при рандомизации. Возможно из-за этого также плохо исследовала другие ветки, и, например, мата не видела.
  26. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    92
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    При исследовании - нет рандомности. Каждый раз при обдумывании одной и той-же позиции строится одинаковое дерево перебора. А вот ход делается разный.
    Перебор в данном случае выдает сколько раз встретился в дереве каждый ход.
    Лучшим считается ход который встретился больше раз, а вот делает программа не всегда его.
  27. nn В предбаннике

    • Участник
    Рег.:
    25.03.2007
    Сообщения:
    396
    Симпатии:
    968
    Репутация:
    61
    Нарушения:
    10
    Оффлайн
    NS нравится это.
  28. SkipperNorton Новичок

    • Новичок
    Рег.:
    04.05.2016
    Сообщения:
    14
    Симпатии:
    1
    Репутация:
    0
    Онлайн


    1) почему Налимова? Налимов - только один из разработчиков эндшпильных баз, а есть и другие, этим занимался
    даже Томпсон в своё время. Налимов сделал до 6 фигур, вот если сделает 32-фигурные, тогда и будем говорить
    "32-фигурной таблицы Налимова".

    А пока просто говорим - против 32-фигурной базы. А то приписываете некие лишние заслуги.

    Ну а сколько набрал бы очков - я могу предположить.

    Никто не понимает, какая там пропасть по силе в игре.
    Предположим, средняя партия "почти на равных" у них будет продолжаться не более 80 ходов, а
    изначальная позиция шахмат - ничейна.
    Но таблицы никогда не ошибуться, в то время как - достаточно шахматной программе с 3600-рейтингом,
    сделать хотя бы одну ошибку из 80 ходов - и проигрыш далее неминуемый.

    Даже при абсолютно безошибочной игре в 90% ходах, (т.е. пусть Альфа-Зеро выбирает явно оптимально лучший ход),
    на протяжении 80 ходов, будет совершена хотя бы одна ошибочка, ведущая к поражению -
    с вероятностью около 0,6, т.е. 60% партий будут явно проиграны,
    40% закончатся в ничью, и ни одной партии из 100, Альфа-Зеро (ну или Стокфиш, неважно, короче прога с 3600 рейт.) не выиграет.
    А значит очков будет набрано только 20%.

    Но программу, играющую по 32-фигурным базам, можно настроить так чтобы она выбирала ветки, ведущие
    к усложению и затягиваю игры с достаточным материалом, при этом никогда по прежнему не будет делать ошибок.
    Если удасться в среднем "затянуть" сопротивление (вместе с эндшпилем) в 2 раза, т.е. до 160 ходов,
    (и это реально, хотя у людей такие партии встреаются редко, уже у 7-фигурных таблиц случаются выигрыши в 549 ходов),
    то вероятность изменится так, что Альфа-Зеро с рейтом в 3600, наберет против 32-фигурных таблиц только 18%.
    Т.е. проиграет 82 партии из 100, и 18 сведет в ничью и ни одной не выиграет.

    Но спорно еще и утверждение что программа с рейтингом в 3600 в 90% случаев угадывает лучшие и оптимальные
    ходы, тут может быть и 85% и 80% и даже меньше.

    Потому - моё мнение таково -
    Играй даже продвинутый АльфаЗеро (или Стокфиш - неважно), короче, программа
    с рейтингом в 3600, --- против 32-фигурных шахматных баз - 100 партий -

    результат будет таким - 95 партий проиграет, 5 партий сведет в ничью, и ни одной не выиграет.

    Вот по этим результатам, посчитайте какой примерно рейтинг у программы играющей по 32-фигурным таблицам,
    т.е. рейтинг The-Best-линии. ?
  29. Jadn Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    10.05.2006
    Сообщения:
    2.891
    Симпатии:
    609
    Репутация:
    25
    Оффлайн
    Кроме базы должна быть еще программа, с ней работающая. Современные движки, если не ошибаюсь, просто берут любой ход, не меняющий оценку. А, например, в начальной позиции для белых это, думаю, вообще любой ход. Поэтому если свести такую прогу со Стокфишем, она сначала загонит себя в полную ***, а потом будет спасаться единственными ходами, и все партии закончатся вничью. Да и с человеком будет тот же результат.
    Между прочим, я смутно припоминаю, что читал фантастический рассказ о подобном шахматном автомате, причем, еще советский, но название вспомнить не могу.
    crem нравится это.
  30. ШахматыЭтоДиагноз Учаcтник

    • Участник
    Рег.:
    31.03.2017
    Сообщения:
    505
    Симпатии:
    250
    Репутация:
    18
    Оффлайн
    Как-то это сомнительно. В начальной позиции есть 4-5 ходов не меняющих оценку, остальные по сути ведут к потере темпа белыми и уменьшению их первоначального преимущества (и без того недостаточного для победы). В дальнейшем в каждой позиции вряд ли будет более 3-5 примерно равноценных продолжений, а в некоторых такие ходы будут вообще единственными.
  31. Комсюк народный модератор

    • Ветеран
    Рег.:
    17.07.2011
    Сообщения:
    9.974
    Симпатии:
    9.097
    Репутация:
    489
    Нарушения:
    22
    Оффлайн
    18 ничьих это 9%
  32. Rom Учаcтник

    • Участник
    Рег.:
    12.02.2012
    Сообщения:
    342
    Симпатии:
    128
    Репутация:
    19
    Оффлайн
    На Талкчесс не так давно выкладывались интересные тесты, показывающие что эндшпильные базы при определенных обстоятельствах могут даже вредить. При игре со слабым противником наличие баз у движка давало отрицательные результаты:
    http://talkchess.com/forum/viewtopic.php?p=735047#735047

    Разыгрывались несбалансированные эндшпильные позиции от 7 до 9 фигур движками с 6-фигурными базами и движками без баз.
  33. Mustitz Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    30.09.2006
    Сообщения:
    2.639
    Симпатии:
    150
    Репутация:
    8
    Адрес:
    Киев
    Оффлайн
    Как я понимаю, можно взять две версии AlphaZero. Только в одной из них все хода, которые по таблицам уменьшают оценку, признать невалидными.
  34. Jadn Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    10.05.2006
    Сообщения:
    2.891
    Симпатии:
    609
    Репутация:
    25
    Оффлайн
    И типа переобучить? Ну, не знаю, имхо, вряд ли оценочная функция AZ от этого сильно изменится.
  35. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    8.160
    Симпатии:
    1.533
    Репутация:
    58
    Адрес:
    Москва
    Оффлайн
    Тем временем, первый номер рейтинга Ке Цзе "не вышел из дебюта" в игре с Fine Art на двух камнях форы.
    http://eidogo.com/#EUexCx07

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