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

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

  1. Rom Старожил

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

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.545
    Симпатии:
    1.265
    Репутация:
    36
    Адрес:
    Киев
    Оффлайн
    Получается разница в 10 раз. И в случае перемножения матриц да, слабее. На TPU это один такт, на GPU много.
  3. Rom Старожил

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    645
    Симпатии:
    276
    Репутация:
    28
    Оффлайн
  4. algoflip Начинающий

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

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

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

    • Команда форума
    Рег.:
    05.02.2006
    Сообщения:
    57.222
    Симпатии:
    21.094
    Репутация:
    621
    Адрес:
    Москва, Россия
    Оффлайн
    Та-ак... И это называется "изучение шахмат с нуля"? Это действительно АльфаЗеро?
    Легенда рушится на глазах. :)
  7. Комсюк народный модератор

    • Заслуженный
    • Ветеран
    Рег.:
    17.07.2011
    Сообщения:
    19.210
    Симпатии:
    23.423
    Репутация:
    1.261
    Оффлайн
    Crest, это гипотеза новичка
    crem нравится это.
  8. Crest Админ, МГ

    • Команда форума
    Рег.:
    05.02.2006
    Сообщения:
    57.222
    Симпатии:
    21.094
    Репутация:
    621
    Адрес:
    Москва, Россия
    Оффлайн
    А что скажут старички по поводу такого выбора АльфаЗеро в дебюте?
    Как мог шахматный Зеро придти к спорному и рискованному варианту с жертвой пешки на d5 в новоиндийской защите без подсказок и теоретических костылей - в то время как есть миллион более надежных вариантов с плюсиком у белых? Это воистину непостижимо - о чём мы, собственно, и говорили с Петром в своём ролике.
  9. Комсюк народный модератор

    • Заслуженный
    • Ветеран
    Рег.:
    17.07.2011
    Сообщения:
    19.210
    Симпатии:
    23.423
    Репутация:
    1.261
    Оффлайн
    после кучи тестовых партий он казался Альфе не рискованным, а перспективным
  10. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.545
    Симпатии:
    1.265
    Репутация:
    36
    Адрес:
    Киев
    Оффлайн
    Статистика варианта лучше :) У AlphaZero нету понятия "маленький плюс", он оперирует статистикой сыгранных партий. Вот и получается, что маленький плюс легко нейтрализовать и получить много ничейных результатов. А в случае более сложного варианта шансы допустить ошибку выше, и статы лучше.

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

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

    Camon14 нравится это.
  12. Boroda Новичок

    • Новичок
    Рег.:
    12.01.2018
    Сообщения:
    62
    Симпатии:
    8
    Репутация:
    0
    Оффлайн
    А что заставляет Лилу повторять ходы?
  13. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.545
    Симпатии:
    1.265
    Репутация:
    36
    Адрес:
    Киев
    Оффлайн
    Если соперник вынужден повторять ходы, то такое повторение может только увеличить вероятность победы (например, соперник допутит ошибку и не пойдет на повторение).
  14. Mustitz Заслуженный

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

    • Заблокирован
    Рег.:
    28.05.2012
    Сообщения:
    18.567
    Симпатии:
    10.935
    Репутация:
    687
    Нарушения:
    31
    Оффлайн
  16. Mustitz Заслуженный

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

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

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

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

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

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

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

    • Участник
    Рег.:
    06.01.2018
    Сообщения:
    374
    Симпатии:
    91
    Репутация:
    7
    Оффлайн
    Brorn нравится это.
  23. zeroalphazero Учаcтник

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

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

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

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

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

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

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

    • Заблокирован
    Рег.:
    28.05.2012
    Сообщения:
    18.567
    Симпатии:
    10.935
    Репутация:
    687
    Нарушения:
    31
    Оффлайн
  30. NS Нефёдов Сергей

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

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

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

    • Участник
    Рег.:
    14.12.2017
    Сообщения:
    133
    Симпатии:
    69
    Репутация:
    4
    Оффлайн
  34. nn Старожил

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

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

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

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