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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • Участник
    Рег.:
    25.03.2007
    Сообщения:
    390
    Симпатии:
    967
    Репутация:
    59
    Нарушения:
    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
    Сообщения:
    390
    Симпатии:
    967
    Репутация:
    59
    Нарушения:
    10
    Оффлайн
    По всей видимости там сейчас ошибка в коде при рандомизации. Возможно из-за этого также плохо исследовала другие ветки, и, например, мата не видела.
  26. NS Нефёдов Сергей

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

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

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