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

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

  1. Rom
    Оффлайн

    Rom Старожил

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

    Mustitz баннер

    Репутация:
    37
    Получается разница в 10 раз. И в случае перемножения матриц да, слабее. На TPU это один такт, на GPU много.
     
  3. Rom
    Оффлайн

    Rom Старожил

    Репутация:
    28
    Последнее редактирование: 11 янв 2018
  4. algoflip
    Оффлайн

    algoflip Начинающий

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

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

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Разница не в 10 раз, так как сети разные.
     
  6. Crest
    Оффлайн

    Crest Админ, МГ Команда форума Команда форума

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

    Комсюк народный модератор баннер

    Репутация:
    1.270
    Crest, это гипотеза новичка
     
    crem нравится это.
  8. Crest
    Оффлайн

    Crest Админ, МГ Команда форума Команда форума

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

    Комсюк народный модератор баннер

    Репутация:
    1.270
    после кучи тестовых партий он казался Альфе не рискованным, а перспективным
     
  10. Mustitz
    Оффлайн

    Mustitz баннер

    Репутация:
    37
    Статистика варианта лучше :) У AlphaZero нету понятия "маленький плюс", он оперирует статистикой сыгранных партий. Вот и получается, что маленький плюс легко нейтрализовать и получить много ничейных результатов. А в случае более сложного варианта шансы допустить ошибку выше, и статы лучше.

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

    nn Старожил

    Репутация:
    124
    Сыграл одну партию нетренированной Leela-chess-Zero. Через четыре года здесь будет город-сад часа тренировки, она будет обыгрывать всех и вся.

     
    Последнее редактирование: 12 янв 2018
    Camon14 нравится это.
  12. Boroda
    Оффлайн

    Boroda Новичок

    Репутация:
    0
    А что заставляет Лилу повторять ходы?
     
  13. Mustitz
    Оффлайн

    Mustitz баннер

    Репутация:
    37
    Если соперник вынужден повторять ходы, то такое повторение может только увеличить вероятность победы (например, соперник допутит ошибку и не пойдет на повторение).
     
  14. Mustitz
    Оффлайн

    Mustitz баннер

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

    Camon14 Хранитель традиций баннер

    Репутация:
    688
  16. Mustitz
    Оффлайн

    Mustitz баннер

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

    Mustitz баннер

    Репутация:
    37
    Для AlphaZero это статистика сыгранных между собой партий... Мы сыграли с Талем 10 партий, в 6 из них мы пошли конём и выиграли две, в четырёх пошли на повторение позиции, один раз Таль отказался от повторения и проиграл, в трёх позиция повторилась, нам пришлось ходить конём и мы выиграли одну.

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

    NS Нефёдов Сергей баннер

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

    algoflip Начинающий

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

    algoflip Начинающий

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

    NS Нефёдов Сергей баннер

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

    svoitsl Учаcтник

    Репутация:
    7
    Brorn нравится это.
  23. zeroalphazero
    Оффлайн

    zeroalphazero Учаcтник

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

    nn Старожил

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

     
  25. Jadn
    Оффлайн

    Jadn баннер

    Репутация:
    52
    А она варианты совсем не считает? Там мат в два хода был...
     
  26. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

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

    NS Нефёдов Сергей баннер

    Репутация:
    3
    1600 узлов просматривает. Можно сказать что не считает. Учитывая что сеть пока никакущая. Материал вообще не ценит.
     
  28. vasa
    Оффлайн

    vasa Опытный перворазрядник Команда форума Команда форума

    Репутация:
    586
    Там не только мат в два хода. Там вообще ВСЁ было. :)
    P.S. Просматривая эту партию, я так ждал, что белые всё-таки победят. Но не срослось. :D
     
    Последнее редактирование: 15 янв 2018
  29. Camon14
    Оффлайн

    Camon14 Хранитель традиций баннер

    Репутация:
    688
     
  30. NS
    Оффлайн

    NS Нефёдов Сергей баннер

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

    Jadn баннер

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

    NS Нефёдов Сергей баннер

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

    zeroalphazero Учаcтник

    Репутация:
    4
  34. nn
    Оффлайн

    nn Старожил

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

     
  35. NS
    Оффлайн

    NS Нефёдов Сергей баннер

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