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

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

  1. tiger
    Оффлайн

    tiger Новичок

    Репутация:
    1
    В Америке просто чуть меньше бардака - скорее это третий разряд против пятого.
     
  2. roman57
    Оффлайн

    roman57 Учаcтник

    Репутация:
    1
    Вне всяких сомнений ГОСДЕП - политические ЧИТЕРЫ ...
     
  3. svoitsl
    Оффлайн

    svoitsl Учаcтник

    Репутация:
    7
    Интересно, если DeepMind решит увеличить сеть в два раза (например) , то есть до 40х512, то как быстро она это сможет сделать и какого результата достичь?
    По моему мнению она это сможет сделать за 8 раз больше времени (тут возможно я не точен), то есть за не более чем 3-е суток, и даст это порядка 200-300 Эло.
    А ваше мнение?
     
  4. Комсюк
    Оффлайн

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

    Репутация:
    1.263
    по времени не знаю, да в принципе точность и не важна, а откуда 200 Эло?
     
  5. svoitsl
    Оффлайн

    svoitsl Учаcтник

    Репутация:
    7
    ну хотя бы порядок, вряд ли они будут тренировать в течение 3-х мес подряд, а про 200 Эло высосано из пальца (хотя допускаю, что и взято с потолка)
     
    Комсюк likes this.
  6. Комсюк
    Оффлайн

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

    Репутация:
    1.263
    про сроки не спорю, про Эло ответом удовлетворён :)
     
  7. Undying
    Оффлайн

    Undying Учаcтник

    Репутация:
    15
    Результат не гарантирован. Сила игры может и снизиться. Очевидно, что есть некий пороговый размер, при превышении которого рост понимания не будет компенсировать падение количества перебираемых вариантов. Насколько нынешний размер нейронной сети отличается от оптимального это вопрос. Хотя по идее в DeepMind должны были слегка его исследовать. Вряд ли нынешний размер выбран от балды, но не исключено что размер подбирали для го, а не для шахмат.
     
  8. svoitsl
    Оффлайн

    svoitsl Учаcтник

    Репутация:
    7
    у них об этом можно не волноваться, если уж 4 TPU выделили на игру, то могут и 16 без особых для себя потерь.
    Ну а размер выбран из простого, меньше не показательно (у SF8 не выиграет), а больше нет смысла, и так очевидно что А0 сильнее всех... :)
     
  9. Mustitz
    Оффлайн

    Mustitz баннер

    Репутация:
    36
    Вопрос больше в том, какая сеть будет играть сильнее при одинаковом количестве TPU?
     
  10. svoitsl
    Оффлайн

    svoitsl Учаcтник

    Репутация:
    7
    В этом вопрос больше у Лилы, а вот у A0 он меньше, если он вообще у них в этом есть.
     
  11. Polarity
    Оффлайн

    Polarity Новичок

    Репутация:
    0
    Lc0 де-факто вышла в суперфинал TCEC против последней версии Stockfish. Можно сказать топ2 в рейтинге движков официально уже сейчас.
     
    sovaz1997 likes this.
  12. svoitsl
    Оффлайн

    svoitsl Учаcтник

    Репутация:
    7
    Так то оно так, официально, но все же знают, что с одной стороны партий не много и велик элемент случайности, а с другой все таки Lc0 по уровню игры гораздо ближе к Гудини и Комодо, чем к Стокфишу.
     
  13. sovaz1997
    Оффлайн

    sovaz1997 Учаcтник

    Репутация:
    3
    Сейчас скорее к Stockfish, чем к H/K и это показывают различные тесты.
     
  14. Polarity
    Оффлайн

    Polarity Новичок

    Репутация:
    0
    Тем временем Lc0 громит Stockfish 8: https://tcec.chessdom.com/
    Вроде бы первые 5 партий Lc0 играла не в полную силу, из-за каких-то проблем с охлаждением, так что первый проигрыш наверное можно не засчитывать :)
    Также в discord написали, что практически во всех партиях, проигранных Lc0, был допущен зевок, который находили достаточно легко A/B движки. Так что будущее видимо всё-таки за гибридными движками. Гибрид из Lc0 и SF-dev может стать настоящим непобедимым монстром-мутантом.
     
    Last edited: 18 Jan 2019
  15. svoitsl
    Оффлайн

    svoitsl Учаcтник

    Репутация:
    7
    И в рамках NN не все сделано, вот что crem писал
    Так что для тест50 уже есть некоторые идеи и некоторый задел.
    Кроме того, наверняка часть параметров можно было бы и улучшить, пока они в основном взяты от A0
     
  16. Undying
    Оффлайн

    Undying Учаcтник

    Репутация:
    15
    Так и A/B движки зевают. Вот пример:



    На 11 ходу Стокфиш радостно забрал пешку и считал что у него все хорошо. Пока Лила не сделала три нуля, тут Стокфиш что-то начал подозревать. В миттельшпиле непонятно как женить АБ движок и нейронный. Есть свои сильные и слабые стороны, как определить кто прав? Вот в эндшпилях (особенно не многофигурных) может быть гибрид имеет смысл, потому что там АБ немного сильнее играют и намного адекватнее оценивают.
     
    MS likes this.
  17. KEV81
    Оффлайн

    KEV81 Учаcтник

    Репутация:
    6
    почему не Стокфиш 6?
    —- добавлено: 18 Jan 2019 —-
    что за движки такие?
     
  18. Polarity
    Оффлайн

    Polarity Новичок

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

    sovaz1997 Учаcтник

    Репутация:
    3
    Потому, что это приближение к симуляции матча DeepMind. Против SF Dev будет Lc0 в финале играть.
     
  20. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

    Репутация:
    95
    Не поможет в случаях, когда Лила хочет перейти в ничейный эндшпиль. Например, в разноцвете оценка запросто может быть +1.0, а на доске стоять битая ничья. Размен последней пары тяжёлых фигур Стокфиш тактическим просчётом считать не будет...
     
    sovaz1997 likes this.
  21. Undying
    Оффлайн

    Undying Учаcтник

    Репутация:
    15
    Люди не только на оценку смотрят, но и на позицию. Например, если позиция открытая или немногофигурный эндшпиль, а Стокфиш рисует нули, будет ничья. Чтобы там Лила по этому поводу не думала. А если сложная стратегическая позиция, то наоборот нули Стокфиша мало что значат.
     
  22. Polarity
    Оффлайн

    Polarity Новичок

    Репутация:
    0
    Задача я как понимаю, проигрывать меньше. Если Стокфиш считает, что Лила проигрывает из-за какого-то хода, то можно просто запретить этот ход. А во всех остальных случаях безоговорочно доверять Лиле.
    Конечно это не идеальное правило, но кмк даст значительное усиление.
     
  23. sovaz1997
    Оффлайн

    sovaz1997 Учаcтник

    Репутация:
    3
    Надо проверять тогда уж так: если оценка ab-движка >= +5, включать его, если <= -5 после хода Lc0, то отменять ход Lc0 и делать ход самостоятельно, если таковой есть. Но мне кажется, что уже скоро и это не поможет, т. к. Lc0 может стать сильнее и в тактике в том числе.
     
  24. KEV81
    Оффлайн

    KEV81 Учаcтник

    Репутация:
    6
    надо просто подробнее исследовать ходы-кандидаты обоих подходов к поиску.
     
    sovaz1997 likes this.
  25. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

    Репутация:
    95
    Конечно, идейно правильным подходом будет воспитать ещё одну сеть, которая будет глядеть на позицию и говорить, кому её отдать: Стоку или lc0. Непонятно только, как размечать данные для её обучения.
     
    sovaz1997 likes this.
  26. sovaz1997
    Оффлайн

    sovaz1997 Учаcтник

    Репутация:
    3
    Думаю, когда сеть обгонит SF пунктов на 100, можно будет выявить ее слабые места (уверен, такие будут). Но таких мест может стать намного меньше, чем сейчас. Например, вряд ли реализацию преимущества с +10 Lc0 будет делать лучше, чем SF. И здесь уже в дело действительно вступает скорость перебора. Хоть и у Lc0 самое точное дерево поиска в мире, пускай и MCTS :)

    В чем проблема гибрида Stockfish и Lc0: если его использовать в финале TCEC против Stockfish, то это будет выглядеть не совсем честно)
    Да и я уверен, что SF сам станет "гибридом" не в плане совмещения с Lc0, а в плане собственных идей.
     
  27. KEV81
    Оффлайн

    KEV81 Учаcтник

    Репутация:
    6
    Типа лобных долей в мозге которые контролируют действия лимбической системы?
     
  28. Комсюк
    Оффлайн

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

    Репутация:
    1.263
    похоже на биржевую сводку от Любителя_ (найдите, не пожалеете)
     
  29. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

    Репутация:
    95
    Тестирую сейчас на своём компьютере CPU-only версию Лилы с дистиллированной сеткой 11258-112x9se. Рейтинг получается в районе 2900, при калибровке Fruit 2.1 = 2700.
    Очень даже неплохо, летом прошлого года версии без GPU у меня играли не сильнее 2400-2500.
     
  30. KEV81
    Оффлайн

    KEV81 Учаcтник

    Репутация:
    6
    Мне кажется рано для тестов, кривая еще не стала прямой.
     
  31. nn
    Оффлайн

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

    Репутация:
    124
    Kingcrusher, который прокомментировал многие партии Лилы, совместно с авторами книги об Alpha Zero разбирает одну из игр AZ.
    —- добавлено: 13 Mar 2019 —-
    Кстати, несколько недель назад была новость, что DeepMind "решила" задачу сворачивания белков. Решила в смысле, что выступила в конкурсе по предсказанию получающейся структуры значительно лучше, чем научные коллективы ведущих университетов мира.
     
    nh2008 likes this.
  32. Комсюк
    Оффлайн

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

    Репутация:
    1.263
    http://kasparovchess.crestbook.com/threads/7122/page-10#post-879769
     
    nn and nh2008 like this.
  33. tiger
    Оффлайн

    tiger Новичок

    Репутация:
    1
    Недавно обнаружил статью про DeepChess. Она в свое время затмилась очередным бульдозером от гугла (AlphaZero), а там интересная идея. Не переводить позицию в число вообще. Вместо этого тренировать сиамскую сеть на паре позиций, и в альфа бета поиске держать сами позиции для сравнения, а не числа. По-моему хорошая идея так как число не отражает сути все равно, и плюс к тому лишь путает шахматистов.
     
  34. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

    Репутация:
    95
    Каждое отдельное слово, и даже большинство их сочетаний в вашем предложении мне вполне понятны. А вот общий смысл уловить никак не могу.
    Не поясните алгоритм подробнее, пожалуйста? Лучше всего на каком-нибудь простом примере..
     
  35. tiger
    Оффлайн

    tiger Новичок

    Репутация:
    1
    Ок, вот мое (субъективное) понимание:

    Сама сеть такова. На вход подается упорядоченная пара позиций (p, q), где мы знаем, что "p" лучше "q" или "q" лучше "p". На выходе сети пара неотрицательных чисел в сумме, дающих 1. Сеть тренируется давать на выходе упорядоченную пару (1, 0), если "p" лучше "q" и (0, 1), если "q" лучше "p".

    Надо еще сказать, что значит "мы знаем какая позиция лучше". Они взяли пары позиций из компьютерной базы, так что в партии откуда взята лучшая из двух белые выиграли,
    a откуда худшая из двух - белые проиграли. Это конечно грубо, зато быстро можно наплодить много пар.

    Во время поиска там где раньше были числа альфа и бета теперь запоминается пара позиций "p1" (альфа) и "p2" (бета).
    В каждый момент когда классический алгоритм альфа бета сравнивает два числа теперь он подает в уже натренированную сеть саму пару позиций. Например, если текущая
    позиция "q" при сравнении с "p1", то есть пара (p1, q), дает на выходе сети пару (0.51, 0.49), то происходит отсечение снизу по той же логике, что и в классическом альфа бета. Аналогично, если (p2, q) дает (0.49, 0.51), то отсечение сверху. Сравнения листьев дерева идет по той же схеме: например, если есть три листа, сравниваем 1ый и 2ой, а третий с победителем этой пары.

    Главная разница - ни в какой момент не нужно знать числовую оценку одной позиции.
     
    Last edited: 24 May 2019