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

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

  1. nn
    Оффлайн

    nn Заблокирован

    Репутация:
    124
    Он один из авторов статьи об AlphaZero
     
  2. nn
    Оффлайн

    nn Заблокирован

    Репутация:
    124
    Ну не сказали же, что AlphaZero еще и сама себя написала.
     
    dom1n1k и Нестор нравится это.
  3. Crest
    Оффлайн

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

    Репутация:
    627
    Fruit нравится это.
  4. Challenger Spy
    Оффлайн

    Challenger Spy Технический специалист Команда форума

    Репутация:
    226
    Crest, Вводная от авторов Альфы + водичка. По сути конфликта ничего нету, правда-матка не раскрыта :)
     
  5. Nikobelic
    Оффлайн

    Nikobelic Зарегистрирован

    Репутация:
    9
    Результат игры профанация чистой воды.
    1. Совершенно разное железо, пишут даже про суперкомпьютер против ПК.
    2. Не использовались дебютные базы и таблицы окончаний, которые являются компонентом работы программы. Если бы их было нельзя подключить они были бы жёстко закодированы, увеличив вес программы на порядки.
    3. Матчи организовываются третьей стороной всегда. А не так что одна из сторон проводит скрытно игру по своим правилам со своим судейством на разном оборудовании.
    Развод лохов

    Контроль минута на ход. Независимо от позиции. Во многих позициях движкам счётного типа требуются более 10 минут чтобы найти верный ход. Здесь все заделано так чтобы обеспечить преимущественное положение своей проге.
     
    Последнее редактирование: 10 дек 2017
    sovaz1997, Challenger Spy и Camon14 нравится это.
  6. Vladruss
    Оффлайн

    Vladruss НедоКМС, победитель второразрядников. баннер

    Репутация:
    530
    Это все проделки мультиядерной рандомности. Поставьте одно ядро и перестаньте забивать себе голову чепухой. Правильный ход находит мигом, никаких эндшпильных таблиц не надо:

    [​IMG]
     
  7. Нестор
    Оффлайн

    Нестор консультант_ специалист по черной магии баннер

    Репутация:
    331
    Nikobelic, это изначально не было задумано как спортивное соревнование.
    Больше похоже на какой-то эксперимент, вот только не могу понять какой.
    То ли научный, то ли рекламный? ;)
     
  8. Vladruss
    Оффлайн

    Vladruss НедоКМС, победитель второразрядников. баннер

    Репутация:
    530
    Что касается дебютной книги. А что, Стокфиш по дебюту косячил чего-то? Все он здраво играл. Я вот сегодня стравил свой Сток с Фрицем11 и дал Фрицу самую крутую дебютную книгу. Не помогло: 10:0 в пользу Стокфиша. Не в дебютной книге дело.
     
    Undying нравится это.
  9. Challenger Spy
    Оффлайн

    Challenger Spy Технический специалист Команда форума

    Репутация:
    226
    А вот мнение одного из авторов Стокфиша Торда Ромстада:
    Результаты матча сами по себе не имеют большого значения, потому что выбрали довольно странный контроль времени и параметры Stockfish: партии игрались с контролем 1 минута на ход, поэтому Stockfish не мог использовать свой алгоритм распределения времени на обдумывание (мы много работали над тем, чтобы Stockfish мог определять критические моменты партии и решать, когда нужно потратить на ход больше времени). С фиксированным временем на ход он играет намного слабее. Использовавшейся версии уже год, она играла с использованием намного большего количества потоков, чем мы когда-либо тестировали, а хэш-таблиц было слишком мало для такого количества потоков. Я думаю, что в матче с более адекватными условиями процент ничьих был бы намного выше.

    С другой стороны, несомненно, AlphaZero могла играть лучше, если бы над проектом работали дольше (хотя упоминание о "четырех часах обучения" создает ложное впечатление, принимая во внимание огромные вычислительные мощности, использовавшиеся за эти четыре часа). Так или иначе, сравнение Stockfish и AlphaZero - это сравнение яблок с орангутанами. Stockfish - обычная шахматная программа, работающая на обычных компьютерах, AlphaZero использует совершенно другие технологии и работает на специально разработанном оборудовании, которое невозможно купить (и, будь это возможно, его все равно не смогли бы себе позволить рядовые пользователи).

    С другой стороны, принципиальное отличие подходов - это как раз здорово. Теперь у нас есть две абсолютно разные (с точки зрения оборудования и программного обеспечения) рукотворные сущности, способные играть в шахматы намного лучше людей. Это намного интереснее, чем еще одна шахматная программа, которая делает то же, что и другие, но чуть лучше. То, что AlphaZero может легко приспосабливаться к решению новых задач, открывает огромные возможности в будущем.

    Для шахматистов, использующих компьютерные движки для подготовки, этот прорыв вряд ли будет иметь большое значение, по крайней мере, в краткосрочном периоде, ввиду нехватки подходящего оборудования, которое продавалось бы по доступной цене.

    Для программистов шахматных движков - и для программистов, работающих во многих других интересных областях, - возникновение технологий машинного обучения, требующих огромных вычислительных мощностей для успешной работы, может стать огорчительным. Возможно, что через несколько лет шахматные программы, похожие на AlphaZero, смогут работать на обычных компьютерах, но вычислительные мощности необходимые для их создания будут выходить за пределы бюджетов любителей или небольших компаний. Возможно, возникнет проект с открытым исходным кодом на базе распределенных вычислений в большой сети компьютеров, предоставленных участниками, но времена сотен разных шахматных движков с уникальными особенностями у каждого уйдут навсегда.
     
    Fruit, просроченый_кмс и sovaz1997 нравится это.
  10. Мобуту
    Оффлайн

    Мобуту спаситель нации баннер

    Репутация:
    141
    Дело не в том, что движок становится слабее, а в том, что он становится предсказуемым. Против такого намного легче "самообучиться". Например, можно в процессе "обучения" сыграть с ним миллион партий, почти все проиграть, но хоть несколько выиграть. Выигрышные варианты - запомнить (в этом "обучение"). И дальше - сто зачётных партий, где раз за разом исполняешь только вот эти выигрышные варианты. А противник без книжки обречён повторяться. Могло быть вот так.

    Кстати, из этой же серии - походовая фиксация времени на обдумывание. Это тоже вроде бы не так уж сильно подрывает силу игры движка (хотя автор Стокфиша и гордится хитрым алгоритмом выявления критических позиций). Но намного важнее, что это делает его ещё более предсказуемым. Когда движок сам решает вопрос о времени думок на каждом ходе, это может повысить вариативность, там может быть какой-нибудь гененраторчик случайных чисел. Против такого фиг обучишься. Поэтому - время на думки фиксируется.

    То есть против Стокфиша с дебютной книжкой, способного варьировать свою игру, всё это трюкачество с самообучением могло бы обернуться пшиком. никаких +28 = 72 в зачётной сотне партий, если проводить её честно, не получилось бы. Для получения этого результата Стокфиш могли не то чтобы ослабить, а скорее подставить описанным выше образом.
     
    Последнее редактирование: 10 дек 2017
  11. dom1n1k
    Оффлайн

    dom1n1k Учаcтник

    Репутация:
    3
    Думаю, это ключевой момент. Сороконожка просто периодически путалась в собственных лапах.
     
  12. Vladruss
    Оффлайн

    Vladruss НедоКМС, победитель второразрядников. баннер

    Репутация:
    530
    Я мог бы с вами согласиться, если бы Сток играл на одном ядре. Но многоядерность сама по себе приводит к рамдомности. Поставьте начальную позицию и попробуйте вынудить движок сделать ход самостоятельно без книги. У меня он несколько раз выдал 1. d4, несколько раз 1. e4, три раза 1. Кf3 и один раз даже 1. с4. И у меня двухядерник. Чего можно ожидать от 64-ядерника? Так что, вряд ли можно поймать такого на повторении дебютной позы.
     
  13. просроченый_кмс
    Оффлайн

    просроченый_кмс Старожил

    Репутация:
    6
    да один гигабайт просто смешно, щас обычному компу что бы работать без торомозов, не используя игр как я, никаких спец прог для видео и т.п. надо 4 гига, а тут шахматная вычислительная прога...
     
  14. Vladruss
    Оффлайн

    Vladruss НедоКМС, победитель второразрядников. баннер

    Репутация:
    530
    Ну, у меня тоже 4 гига оперативки, но когда я при игре движков ставлю им хэш 1 гиг, у меня комп начинает тормозить и игра не идет. Поэтому, на своем двухядернике я им даю хэша 256 мб. Думаю, что для 64 процессоров 1 гиг хэша не самое плохое. При контроле минута на ход, разумеется.
     
    Последнее редактирование: 10 дек 2017
  15. hornet
    Оффлайн

    hornet Учаcтник

    Репутация:
    467
    Наконец на глубине 52-54 асмфиш начал раздупляться: рисунок_3.jpg
     
  16. Vladimirovich
    Оффлайн

    Vladimirovich Консультант

    Репутация:
    31
    Количество ядер само по себе никак не влияет на рандомность
    Все зависит от архитектуры софта.

    P.S.Конечно, если есть race condition, то возможны варианты
    Но это лишь значит, что аффтары сами себе злобные буратины.
     
  17. Neo94
    Оффлайн

    Neo94 Учаcтник

    Репутация:
    -10
    Ну по факту здесь только к одному можно придраться - контроль времени (очень больно бьет по стокфишу).
    Гугл же особо и не пиарил свой матч как борьбу за что-то в плане первенства шахматных программ, так что имеют право делать что хотят.
    Провели эксперимент - получили результаты. Эксперимент в плане сравнения чистых движков на принципиально разной архитектуре железа показал, что с контролем 1 минута на ход А0 лучше...
     
  18. Vladruss
    Оффлайн

    Vladruss НедоКМС, победитель второразрядников. баннер

    Репутация:
    530
    Кому вы говорите? Я собаку съел на тестировании движков по тестовым позициям. Одну и туже позицию, которую программа на одном ядре решает за строго определенное время +/- одна-две секунды, на двух ядрах она уже решает в самое разное время, включая моменты, когда вообще решить позицию не может. Это, по-вашему, "никак не влияет"?
     
  19. Мобуту
    Оффлайн

    Мобуту спаситель нации баннер

    Репутация:
    141
    Вариативность какая-то есть, без неё вообще получилось бы +100 -0 =0 с повторением одной и той же партии. Но много ли этой вариативности остаётся без дебютной книжки, без выбора времени на думки, наверное ещё с какими-то настройками от гугловских умельцев? Вот сравниваю две первые белые партии: вяленый играет один и тот же вариант антиберлина с разменом на c6, разница только на 7-м ходу. За чёрных тоже ненамного богаче репертуар: новоиндийская с жертвой d4-d5 раз за разом. Ну, иногда сам играл d7-d5, но всё равно вряд ли новоиндийцы скажут, что Стокфиш играл этот дебют во всём его многообразии.

    К такому предсказуемому противнику "самообучиться" куда проще. Одного варианта мало, но компактного деревца из неприятных для него вариантов уже вполне себе достаточно.
     
    Последнее редактирование: 10 дек 2017
  20. Vladruss
    Оффлайн

    Vladruss НедоКМС, победитель второразрядников. баннер

    Репутация:
    530
    Ко времени матча процесс самообучения Альфы уже был закончен, так что, совершенно не имеет значения, на какие позиции выходил Стокфиш. Главное, что он не делал в дебюте ошибок, а был переигран по игре.
     
  21. MaxVirmir
    Оффлайн

    MaxVirmir Новичок

    Репутация:
    0
    Так разнообразие я так понял тоже обеспечивалось, пусть и немного искусственно :
    У нас есть некоторая «наилучшая» сеть с весами А. Эта сеть A играет сама с собой 25 000 раз (используя MCTS со своими весами для оценки новых нод), и для каждого хода мы сохраняем сам стейт, распределение Pi и то, чем закончилась игра (+1 за победу и -1 за поражение). Дальше готовим батчи из 2048 случайных позиций из последних 500 000 игр, отдаём 1000 таких батчей на тренировку и получаем некоторую новую сеть с весами B, после чего сеть A играет 400 игр с сетью B— при этом обе сети используют MCTS для выбора хода, только при оценке новой ноды A, очевидно, использует свои веса, а B — свои. Если B побеждает более, чем в 55% случаев, она становится лучшей сетью, если нет — чемпион остаётся прежним. Повторять до готовности.

    А мне показалось очевидным, что А0 играет явно не так как обычные движки. Именно в позиционном плане. И этого никакими костылями и рецептами не заменить.

    Странно, а я нашел инфу про архитектуру сети (правда не А0 а Аго 0, но они вроде похожи очень):
    Convolutional layer, потом 40 residual layer'ов, в конце два выхода — value head и policy head

    Остальные домыслы и сомнения SuperZerror (с такого де рода рецептами как гугл всех обманул) как-то тоже не вяжутся именно с уровнем партий. На мой взгляд
     
    dom1n1k нравится это.
  22. Challenger Spy
    Оффлайн

    Challenger Spy Технический специалист Команда форума

    Репутация:
    226
    Это 10 лучших партий из 100, из которых 6 в одном варианте новоиндийки с замороженным флангом, который сток регулярно играл, не имея дебютной книги, которую Альфа имел. Такие дела...
     
  23. Мобуту
    Оффлайн

    Мобуту спаситель нации баннер

    Репутация:
    141
    Ну вот Каспаров был переигран Карповым по игре в защите Тарраша с изолятором, взял да и стал играть другой дебют. И в конце концов Карпова замочил. А представьте себе, что ему бы запретили менять дебют. ГК небось бесславно бы слил тот матч со счётом 6-0 и ушёл бы ещё, чего доброго, из шахмат. А кругом бы говорили: не в дебюте дело, защита Тарраша корректна, просто плохому танцору известно что мешает.
     
  24. MaxVirmir
    Оффлайн

    MaxVirmir Новичок

    Репутация:
    0
    Та да...куцая статья какая-то. Думал расскажут в двух словах причину успеха чтоб всем было понятно.

    Как я понял все дело в другом подходе к оценке позиций (или нод построенного дерева вариантов ). Если обычные проги (как я понял) стараются отталкиваться от вписанных в них алгоритмов оценки типа материал +активность+быстрый просчет на макс. глубину форсированных вариантов, то А0 пляшет от результата.

    Т.е. базой оценки для каждой позиции является то, насколько она "похожа" на те позиции в которых успех был достигнут. Это очень по человечески - стараться получать выигранные позиции, информация о чем и закладывается через изменения весов в слоях в результате практической игры.

    Ну это очень обще. Возможно что-то упустил или наоброт приврал:)
     
    sovaz1997 нравится это.
  25. Vladruss
    Оффлайн

    Vladruss НедоКМС, победитель второразрядников. баннер

    Репутация:
    530
    Это все пустые размышлизмы. Я более чем уверен, что авторы АльфаЗеро даже не заморачивались подобными рассуждениями - просто взяли что под рукой, и провели матч. А под рукой был комп с оболочкой Фриц, в которой был выставлен хэш на 1 гигабайт, и движок Стокфиш официальной версии, который считается чуть ли не самым сильным. Дали время 1 минуту на ход от фонаря, и провели матч. С точки зрения авторов Зеры, они сделали все правильно. В конце концов, это же не официальный чемпионат мира.
     
    Launder, nn и Undying нравится это.
  26. просроченый_кмс
    Оффлайн

    просроченый_кмс Старожил

    Репутация:
    6
  27. MaxVirmir
    Оффлайн

    MaxVirmir Новичок

    Репутация:
    0
    Почему лучших? Побед было же больше - может там есть и лучше победы.
    Насколько я понял с обзора СЮ это нормальная дебютная схема - ее и гроссы катают. А как там в этой схеме с книгой играет стокфиш? Или вообще новоиндийку не играет?:)
    Да и варианты там немного отличались все таки.

    Альфа не имел и даже не может иметь никакой дебютной книги:) То, в чем его попрекают, по сути часть алгоритма - он как бы ее сам придумал. Но именно как бы!

    Ну ничо...подождем когда сыграют с книгой на самом жирном компе и с нужным хешем. Правда вряд ли это поможет - к тому времени алгоритм и улучшится и обучиться лучше сможет....
     
  28. hornet
    Оффлайн

    hornet Учаcтник

    Репутация:
    467
    Народ о чём вы все говорите? О каком железе? Я же Вам показал на своем примере - сток до глубины 52 ни хрена не видит (там до эндшпиля ещё далеко), как он может учуять проигрыш? Неужели Вы не поняли, что есть типы нормальных игровых позиций, которые сток не понимает?
    Включите свои компы, посмотрите сыгранные партии, найдите на каком ходу начинаются ошибки (ход Лf8 можно больше не смотреть).
     
    Launder, MaxVirmir и Undying нравится это.
  29. MaxVirmir
    Оффлайн

    MaxVirmir Новичок

    Репутация:
    0
    О. А вот это вот отличная статья!
    И сразу стало понятно почему порвало пуканы у "програмеров":

    Шапочку из фольги в основном примеряют люди, занимающиеся шахматным программированием. Их эмоции можно понять – тысячи часов они корчевали пни и укладывали асфальт, в то время как под рукой лежал почти готовый телепорт, ведь нейросети – не какое-то сверхсекретное изобретение, а становящийся вполне стандартным метод решения ранее тупиковых проблем. Уже одно это заставляет меня с некоторым недоверием относиться к их претензиям к DeepMind.
     
    Undying и Baron нравится это.
  30. Мобуту
    Оффлайн

    Мобуту спаситель нации баннер

    Репутация:
    141
    Да-да-да. И Слюсарчук Рыбку тоже обыграл примерно так же. Придумал чувак методику запоминания, там тоже нейросети какие-то были. Только вот на чём бы её продемонстрировать? Подвернулась под руку доска с шахатами - ну, взял, быстренько их освоил (главное ведь память, мозги там ни к чему), да и раздал люлей Рыбке. Это дело недолгое, когда есть такая научно выверенная методика.

    Кто-то сомневается в честности? Оставьте свои "пустые размышлизмы" при себе, нормальные люди "более чем уверены", что методика запоминания рулит. Предлагаете повторить в нормальной спортивной обстановке? Пошли нафиг, я не спортсмен, а учёный. Сам Янукович наградил премией за научные достижения. Это вам не статейка какая-то в журналишке.
     
  31. MaxVirmir
    Оффлайн

    MaxVirmir Новичок

    Репутация:
    0
    Да при чем тут Слюсарчук? Это же больной на голову мошенник, убивший кучу людей - жалко шо его выпустили с тюрьмы.
    Как это можно сравнивать то?
     
  32. Vladimirovich
    Оффлайн

    Vladimirovich Консультант

    Репутация:
    31
    Вы не отличать "влияет на рандомность" и "никак не влияет" ?
    При этом не учитывать "само по себе" ?

    Время тестирования здесь вторично. И его девиация тут не "рандомность"
     
  33. Vladruss
    Оффлайн

    Vladruss НедоКМС, победитель второразрядников. баннер

    Репутация:
    530
    Ну, то, что дозволено Слюсарчуку, не дозволено Дип Майнду, чего там.
    А здорово вы придумали известную уважаемую компанию на одну доску с проходимцем поставить. Главное, оба ведь не спортсмены.
     
  34. Neo94
    Оффлайн

    Neo94 Учаcтник

    Репутация:
    -10
    Каспаров получал вполне хорошие позы по дебюту, но вот по игре в первой половине матча Карпов его переигрывал, и далеко не только в Тарраше.

    Дебют там ни при чем был.
     
    MaxVirmir нравится это.
  35. Vladruss
    Оффлайн

    Vladruss НедоКМС, победитель второразрядников. баннер

    Репутация:
    530
    Так, а теперь давайте все то же самое, но только по-русски.