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

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

  1. Rom Старожил

    • Участник
    • Старожил
    Member Since:
    12.02.2012
    Message Count:
    645
    Likes Received:
    276
    Репутация:
    28
    Оффлайн
    Интересно отметить, что Gary Linscott получил скорость всего 2 000 позиций в секунду на топовой видеокарте. В то время как у Гугла скорость 80 000 позиций в секунду на 4-х TPU. Неужели топовая видеокарта настолько слабее одного TPU (в 10 раз)? Можно конечно сказать что код ещё толком не оптимизирован, но с другой стороны Gary использовал очень лёгкую нейросеть, а значит впоследствии скорость может снизиться ещё в несколько раз.
  2. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Member Since:
    30.09.2006
    Message Count:
    3.547
    Likes Received:
    1.299
    Репутация:
    37
    Location:
    Киев
    Оффлайн
    Получается разница в 10 раз. И в случае перемножения матриц да, слабее. На TPU это один такт, на GPU много.
  3. Rom Старожил

    • Участник
    • Старожил
    Member Since:
    12.02.2012
    Message Count:
    645
    Likes Received:
    276
    Репутация:
    28
    Оффлайн
  4. algoflip Начинающий

    • Начинающий
    Member Since:
    11.01.2018
    Message Count:
    3
    Likes Received:
    0
    Репутация:
    0
    Оффлайн
    Я извиняюсь, что не читал все страницы этой темы, наверное эти очевидные вещи для специалистов были сказаны, но я всё равно напишу.
    Сергей Шипов и Пётр Свидлер удивлялись по-поводу Новоиндийской защиты. Дело, скорее всего, в следующем.
    Обучение нейронной сети с учителем может быть таким - заставить алгоритм всегда правильно трактовать некоторые позиции или целые варианты.
    ( PS. В итоге такого обучения получается "формула", которую движок будет применять уже ко всем позициям шахматной партии)
    Возможно, разработчики включили этот вариант Новоиндийской защиты как обязательный к обучению, т.е. Alpha Zero не может сыграть этот вариант по-другому.

    Бесспорно, эта "формула" (если дело так) - только часть алгоритма Alpha Zero, который является революционной научно-инженерной разработкой.
  5. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Разница не в 10 раз, так как сети разные.
  6. Crest Админ, МГ

    • Команда форума
    Member Since:
    05.02.2006
    Message Count:
    57.267
    Likes Received:
    21.177
    Репутация:
    632
    Location:
    Москва, Россия
    Оффлайн
    Та-ак... И это называется "изучение шахмат с нуля"? Это действительно АльфаЗеро?
    Легенда рушится на глазах. :)
  7. Комсюк народный модератор

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    17.07.2011
    Message Count:
    19.250
    Likes Received:
    23.518
    Репутация:
    1.270
    Нарушения:
    27
    Оффлайн
    Crest, это гипотеза новичка
    crem likes this.
  8. Crest Админ, МГ

    • Команда форума
    Member Since:
    05.02.2006
    Message Count:
    57.267
    Likes Received:
    21.177
    Репутация:
    632
    Location:
    Москва, Россия
    Оффлайн
    А что скажут старички по поводу такого выбора АльфаЗеро в дебюте?
    Как мог шахматный Зеро придти к спорному и рискованному варианту с жертвой пешки на d5 в новоиндийской защите без подсказок и теоретических костылей - в то время как есть миллион более надежных вариантов с плюсиком у белых? Это воистину непостижимо - о чём мы, собственно, и говорили с Петром в своём ролике.
  9. Комсюк народный модератор

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    17.07.2011
    Message Count:
    19.250
    Likes Received:
    23.518
    Репутация:
    1.270
    Нарушения:
    27
    Оффлайн
    после кучи тестовых партий он казался Альфе не рискованным, а перспективным
  10. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Member Since:
    30.09.2006
    Message Count:
    3.547
    Likes Received:
    1.299
    Репутация:
    37
    Location:
    Киев
    Оффлайн
    Статистика варианта лучше :) У AlphaZero нету понятия "маленький плюс", он оперирует статистикой сыгранных партий. Вот и получается, что маленький плюс легко нейтрализовать и получить много ничейных результатов. А в случае более сложного варианта шансы допустить ошибку выше, и статы лучше.

    А какая дебютная книга получена в результате многих игр Stockfish между собой? Интересно посмотреть на статистику в этом варианте :)
  11. nn Старожил

    • Участник
    • Старожил
    Member Since:
    25.03.2007
    Message Count:
    1.459
    Likes Received:
    3.109
    Репутация:
    124
    Оффлайн
    Сыграл одну партию нетренированной Leela-chess-Zero. Через четыре года здесь будет город-сад часа тренировки, она будет обыгрывать всех и вся.

    Camon14 likes this.
  12. Boroda Новичок

    • Новичок
    Member Since:
    12.01.2018
    Message Count:
    62
    Likes Received:
    8
    Репутация:
    0
    Оффлайн
    А что заставляет Лилу повторять ходы?
  13. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Member Since:
    30.09.2006
    Message Count:
    3.547
    Likes Received:
    1.299
    Репутация:
    37
    Location:
    Киев
    Оффлайн
    Если соперник вынужден повторять ходы, то такое повторение может только увеличить вероятность победы (например, соперник допутит ошибку и не пойдет на повторение).
  14. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Member Since:
    30.09.2006
    Message Count:
    3.547
    Likes Received:
    1.299
    Репутация:
    37
    Location:
    Киев
    Оффлайн
    Ок, посчитаем. Допустим, вероятность победы α. Допустим, что в случае повторения ходов вероятность того, что соперник пойдёт на повторение β, а вероятность победы, в случае, когда соперник откажется будет α+ε, ε > 0. Тогда вероятность победы в случае однократного повторения позиции будет αβ + (α+ε)(1- β) = αβ + α(1- β) + ε(1- β) = α(β+1-β) + ε(1- β) = α + ε(1- β) > α. Значит идти на повторение выгодно.
  15. Camon14 Хранитель традиций

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    28.05.2012
    Message Count:
    18.575
    Likes Received:
    10.945
    Репутация:
    688
    Оффлайн
  16. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Member Since:
    30.09.2006
    Message Count:
    3.547
    Likes Received:
    1.299
    Репутация:
    37
    Location:
    Киев
    Оффлайн
    От позиции завист. Неужели такого не может быть, что после хода A у нас 30% на победу, в после хода B соперник может повторить позицию, а может пойти на вариант, где у нас 40% на победу? В этом случае у нас ε > 0. И в таком типе позиций AlphaZero будет повторять позицию один раз.
  17. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Member Since:
    30.09.2006
    Message Count:
    3.547
    Likes Received:
    1.299
    Репутация:
    37
    Location:
    Киев
    Оффлайн
    Для AlphaZero это статистика сыгранных между собой партий... Мы сыграли с Талем 10 партий, в 6 из них мы пошли конём и выиграли две, в четырёх пошли на повторение позиции, один раз Таль отказался от повторения и проиграл, в трёх позиция повторилась, нам пришлось ходить конём и мы выиграли одну.

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

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

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

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

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Количество вычислений на сетке 20x256 пропорционально 20*256*256, на сетке 5x64 пропорционально 5*64*64 Итого у Гугла для оценки позиции требуется в 64 раза больше операций.
    То есть разница в производительности одного TPU и Titan X - в 640 раз. 4 TPU быстрее чем Titan X примерно в 2500 раз.
    N1mTzo and Rom like this.
  22. svoitsl Учаcтник

    • Участник
    Member Since:
    06.01.2018
    Message Count:
    374
    Likes Received:
    91
    Репутация:
    7
    Оффлайн
    Brorn likes this.
  23. zeroalphazero Учаcтник

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

    • Участник
    • Старожил
    Member Since:
    25.03.2007
    Message Count:
    1.459
    Likes Received:
    3.109
    Репутация:
    124
    Оффлайн
    Leela-chess немного потренированная - играет на гроссмейстерском уровне, +600 эло против нетренированной. Расставляет шашки академически, еще бы ценности фигур научилась.

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

    • Заслуженный
    • Участник
    • Старожил
    Member Since:
    10.05.2006
    Message Count:
    3.626
    Likes Received:
    2.535
    Репутация:
    52
    Оффлайн
    А она варианты совсем не считает? Там мат в два хода был...
  26. WinPooh В.М.

    • Команда форума
    Member Since:
    13.02.2006
    Message Count:
    9.494
    Likes Received:
    3.126
    Репутация:
    95
    Location:
    Москва
    Оффлайн
    Книжка, кстати, замечательная. Как раз сейчас читаю. Особенно хороши эпиграфы :)
    И математики достаточно, и когда голова от неё устаёт, много исторических экскурсов.
    Ещё и краткое введение в TensorFlow, на Питоне.
  27. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    1600 узлов просматривает. Можно сказать что не считает. Учитывая что сеть пока никакущая. Материал вообще не ценит.
  28. vasa Опытный перворазрядник

    • Команда форума
    Member Since:
    13.02.2006
    Message Count:
    35.306
    Likes Received:
    17.601
    Репутация:
    586
    Location:
    Ростов-на-Дону
    Оффлайн
    Там не только мат в два хода. Там вообще ВСЁ было. :)
    P.S. Просматривая эту партию, я так ждал, что белые всё-таки победят. Но не срослось. :D
  29. Camon14 Хранитель традиций

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    28.05.2012
    Message Count:
    18.575
    Likes Received:
    10.945
    Репутация:
    688
    Оффлайн
  30. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Не совсем понятно что они делают.
    По-уму должны были натренировать сеть на партиях человеков, посмотреть достигнутую силу, и потом тренировать с нуля. Как например было сделано в LZ (GO)
  31. Jadn Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Member Since:
    10.05.2006
    Message Count:
    3.626
    Likes Received:
    2.535
    Репутация:
    52
    Оффлайн
    А как он их выбирает? Случайным образом с текущей позиции?
    Материал понимать - это учиться надо, а мат это мат. но вообще странно - я бы предположил, что материал научится понимать раньше, чем принципы развития в дебюте.
  32. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Нет там ни малейшей случайности. Каждый раз выбирается ход имеющий максимальный вес по формуле PUCT
    —- добавлено: 15 Jan 2018 —-
    Вес зависит от оценки и вероятности того что ход лучший (оба выдаются нейронной сетью), от количество раз, сколько посетили текущий узел, и сколько раз был исполнен этот ход.
  33. zeroalphazero Учаcтник

    • Участник
    Member Since:
    14.12.2017
    Message Count:
    133
    Likes Received:
    69
    Репутация:
    4
    Оффлайн
  34. nn Старожил

    • Участник
    • Старожил
    Member Since:
    25.03.2007
    Message Count:
    1.459
    Likes Received:
    3.109
    Репутация:
    124
    Оффлайн
    Поставил 1600 rollouts, чтобы как у Leela Zero было.
    Да, сыграл две партии - абсолютно одинаковы.
    Тренировалась на партиях Stockfish. Пока ошибки в основном вылавливают, и части с го в шахматы переводят. Ну вот, supervised learning вроде работает
    —- добавлено: 15 Jan 2018, опубликовано: 15 Jan 2018 —-
    Вот, кстати, партия тренированной против нетренированной. Ферзя пришлось предлагать несколько раз. Видимо в тренировочных партиях ферзя мало за просто так подставляли.

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

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

Share This Page