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

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

  1. Sergey1983 Учаcтник

    • Участник
    Рег.:
    03.04.2018
    Сообщения:
    126
    Симпатии:
    14
    Репутация:
    1
    Оффлайн
    Crem, а что там с движком, почему нет усиления?
  2. crem Учаcтник

    • Участник
    Рег.:
    24.11.2016
    Сообщения:
    140
    Симпатии:
    203
    Репутация:
    14
    Оффлайн
    Я сейчас не очень слежу за обучением сети, больше за реализацией движков.

    Но со слов людей, занимающихся тренировкой сети,
    Во-первых, усиление есть, особенно если смотреть на игры с другими движками, а не с самим собой (сеть, которая вышла час назад, дала +50 к рейтингу).
    А во-вторых, рост пока замедлился потому что мы находимся здесь:
    upload_2018-4-17_17-12-32.png

    Не факт, что рост ускорится, как на графике, но то, что он сейчас есть — факт, просто нужно терпение.
    Первоначальные планы были обыграть stockfish через 9 месяцев, и пока этот план мы похоже опережаем.
  3. svoitsl Учаcтник

    • Участник
    Рег.:
    06.01.2018
    Сообщения:
    374
    Симпатии:
    91
    Репутация:
    7
    Оффлайн
    "Здесь" это конечно хорошо, но есть ли критерии по которым нужно увеличить размер сети?

    Еще не все потеряно, думаю скоро будет замедление, как только размер сети увеличится ещё в 10 раз.

    Это радует, значит ошибок будет меньше, а вот возможностей и производительности - больше.
    Кстати, не быстрее ли будет, если перейти на целочисленную арифметику?
    И не пора ли уже менять формат файла сети?

    P.S. да, кстати, а как теперь принято скачивать файл сети, ведь сервера амазона заблокированы?
    FriGate вроде помог
  4. Sergey1983 Учаcтник

    • Участник
    Рег.:
    03.04.2018
    Сообщения:
    126
    Симпатии:
    14
    Репутация:
    1
    Оффлайн
  5. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    649
    Симпатии:
    120
    Репутация:
    3
    Оффлайн
    Rom нравится это.
  6. crem Учаcтник

    • Участник
    Рег.:
    24.11.2016
    Сообщения:
    140
    Симпатии:
    203
    Репутация:
    14
    Оффлайн
    Нашли баг в реализации: LcZero не знало, что чёрные могут проводить пешку во что-нибудь кроме коня.
    Это (наверное) объясняет и почему оно хуже играет чёрными, да и белыми в эндшпиле тоже тупит (белыми оно тоже думает, что чёрные могут только проводить коня).
    Баг уже исправлен, новая версия lczero собирается.
    Undying нравится это.
  7. crem Учаcтник

    • Участник
    Рег.:
    24.11.2016
    Сообщения:
    140
    Симпатии:
    203
    Репутация:
    14
    Оффлайн
    Rom, sovaz1997, Sergey1983 и ещё 1-му нравится это.
  8. Пломбир Новичок

    • Новичок
    Рег.:
    09.04.2018
    Сообщения:
    35
    Симпатии:
    25
    Репутация:
    0
    Оффлайн
    Ааа.. ну тогда это объясняет все мои выигрыши )))) Жаль )))
  9. Rom Старожил

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    645
    Симпатии:
    276
    Репутация:
    28
    Оффлайн
    Если я правильно понимаю, на CPU разница по скорости между вычисления int8 и float32 не слишком велика из-за наличия в CPU схем сопроцессора. А на видеокартах только топовая модель Nvidia, 1080Ti, поддерживает вычисления int8. Поэтому на данный момент квантизация не актуальна. Но если она будет поддерживатся в новой линейке видеокарт, выход которой ожидается, то со временем можно будет на неё перейти.
  10. Michael-13 Господин

    • Участник
    • Старожил
    Рег.:
    18.11.2011
    Сообщения:
    3.068
    Симпатии:
    1.098
    Репутация:
    29
    Оффлайн
  11. crem Учаcтник

    • Участник
    Рег.:
    24.11.2016
    Сообщения:
    140
    Симпатии:
    203
    Репутация:
    14
    Оффлайн
    У Deepmind размер сети был 20x256, у нас сейчас 10x128.
    Если увеличить сеть в 10 раз, она будет либо в 2.5 раза, либо в 10 раз больше чем у DeepMind (смотря как считать, потому что увеличение количества фильтров почти не замедляет вычисление, только увеличение количество блоков).

    Int8 в нейронных сетях это не целочисленная арифметика, а квантизация вещественных чисел.
    Когда будем пробовать TensorRt, или хотя бы перейдём на tensorflow, то попробуем.
    В текущей реализации надо всё руками делать, нереально.

    Пока старый формат не мешает. Эстетически может и лучше было бы сменить, но есть более срочные дела.
    —- добавлено: 18 апр 2018, опубликовано: 18 апр 2018 —-
    Кстати, в lichess.org скоро/со временем появится возможность поиграть с LCZero, а следом и поддержка других компьютерных аккаунтов.
    sovaz1997 нравится это.
  12. Rom Старожил

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    645
    Симпатии:
    276
    Репутация:
    28
    Оффлайн
    Мне кажется ещё, что помимо данного фактора, увеличение числа фильтров более актуально именно для шахмат. В шахматах не требуется распознавать очень протяженные структуры, как в Го или при распознавании изображений. А свёрточные сети на последних слоях как раз занимаются распознаванием крупных, многопиксельных структур. В шахматах это может быть не так важно, поэтому стоит присмотреться к возможности увеличения нейросети в первую очередь именно по фильтрам.
  13. Boroda Новичок

    • Новичок
    Рег.:
    12.01.2018
    Сообщения:
    62
    Симпатии:
    8
    Репутация:
    0
    Оффлайн
    Я правильно понимаю, что есть большая вероянтность, что уже в этом году на ТСЕС, Лила сможет побеждать таких титанов как Гудини и Сток?
  14. Rom Старожил

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    645
    Симпатии:
    276
    Репутация:
    28
    Оффлайн
    Вероятность конечно есть, но её величину каждый оценивает по своему. Слишком много факторов надо учесть.
    Boroda нравится это.
  15. crem Учаcтник

    • Участник
    Рег.:
    24.11.2016
    Сообщения:
    140
    Симпатии:
    203
    Репутация:
    14
    Оффлайн
    Насколько я слышал, есть теоретически доказанное оптимальное соотношение количества фильтров и блоков, и дисбаланс сильно мешает обучению.
  16. Rom Старожил

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    645
    Симпатии:
    276
    Репутация:
    28
    Оффлайн
    Возможно, но не уверен, что шахматы наиболее типовая задача. Например, в задачах по распознаванию изображений сотни и даже тысячи слоёв. Кроме того, в разумных пределах соотношение всегда можно подвигать.
  17. kirill57 Начинающий

    • Начинающий
    Рег.:
    19.04.2018
    Сообщения:
    2
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Вопрос к crem , а как можно к lcz прикрутить TB (я так понимаю именно такая версия будет использована в TCEC)?
  18. svoitsl Учаcтник

    • Участник
    Рег.:
    06.01.2018
    Сообщения:
    374
    Симпатии:
    91
    Репутация:
    7
    Оффлайн
    Вопрос...
    Как правильно настроить свой комп для обучения LC0?
    Есть видео (GF730), есть проц (i5-4770, 4 ядра ) нужно все это заставить шустро работать
    Но на ум приходит создать две папки CPU и GPU и просто тупо запустить несколько копий клиента...
    Есть ли споcоб получше?
  19. crem Учаcтник

    • Участник
    Рег.:
    24.11.2016
    Сообщения:
    140
    Симпатии:
    203
    Репутация:
    14
    Оффлайн
    Собирались использовать, но наспех прикрутить не успели, поэтому играет версия без tablebase (вроде бы, по крайней мере два часа назад ещё ничего не работало).
    И уже один раз проиграла, смотреть тут: http://tcec.chessdom.com/live.php
  20. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    649
    Симпатии:
    120
    Репутация:
    3
    Оффлайн
    Новая сеть ещё прибавила 33 пункта в силе игры! Из России скачать можно, используя VPN.
  21. kirill57 Начинающий

    • Начинающий
    Рег.:
    19.04.2018
    Сообщения:
    2
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Интересно, а после начала турнира, уже нельзя добавить?
  22. Sergey1983 Учаcтник

    • Участник
    Рег.:
    03.04.2018
    Сообщения:
    126
    Симпатии:
    14
    Репутация:
    1
    Оффлайн
    Crem, у меня клиент очень часто выдаёт такое:

    Вложения:

  23. svoitsl Учаcтник

    • Участник
    Рег.:
    06.01.2018
    Сообщения:
    374
    Симпатии:
    91
    Репутация:
    7
    Оффлайн
    Ну если вдруг попадет в следующий дивизион....тогда можно, а если не попадет то ей это и не потребуется
  24. crem Учаcтник

    • Участник
    Рег.:
    24.11.2016
    Сообщения:
    140
    Симпатии:
    203
    Репутация:
    14
    Оффлайн
    Не знаю, что такое, но похоже, он не смог скачать сеть. Может, вас там настигли какие блокировки?
  25. svoitsl Учаcтник

    • Участник
    Рег.:
    06.01.2018
    Сообщения:
    374
    Симпатии:
    91
    Репутация:
    7
    Оффлайн
    У меня скорее всего из-за них два потока закрылись (а два остались работать)
  26. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    649
    Симпатии:
    120
    Репутация:
    3
    Оффлайн
    Заблокировали миллионы ip-адресов, под раздачу попали в т. ч. сервера Google и Amazon, где находятся файлы с сетями LZ.
  27. Sergey1983 Учаcтник

    • Участник
    Рег.:
    03.04.2018
    Сообщения:
    126
    Симпатии:
    14
    Репутация:
    1
    Оффлайн
    Дело в том что иногда он всё-же качает сеть.
  28. Boroda Новичок

    • Новичок
    Рег.:
    12.01.2018
    Сообщения:
    62
    Симпатии:
    8
    Репутация:
    0
    Оффлайн
    Поясните пожайлуста. Ведь Лила наиграла уже миллионы партий думая, что пешка преврашается только в коня. То есть, она обучалась на не верных правилах. Баг исправили, но те миллионы партий ведь уже повлияли на алгоритм лилы? Не правильнее было бы начать обучение заново?
    Undying нравится это.
  29. Rom Старожил

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    645
    Симпатии:
    276
    Репутация:
    28
    Оффлайн
    Нейросеть - это вычислительно избыточная, но зато крайне гибкая структура, способная отыскивать и подстраиваться под любые игровые паттерны (шаблоны, структуры), тактические или позиционные. Я полагаю, за пару миллионов партий нейросеть способна переобучиться заново. Настолько, что её структура будет полностью перестроена. По крайней мере, это позволяют предположить тренировки нейросети в игре Го, где нейросеть тренированная с нуля показала аналогичную силу игры, что и нейросеть тренированная из предыдущей по технологии net2net. Поэтому, можно предположить, что тренировочные партии наигранные за ближайшие два-три дня позволят исправить все проблемы с превращением коня, как будто их и не было. Так что нет смысла начинать обучение заново.
    Boroda нравится это.
  30. svoitsl Учаcтник

    • Участник
    Рег.:
    06.01.2018
    Сообщения:
    374
    Симпатии:
    91
    Репутация:
    7
    Оффлайн
    Я полагаю также, но вот некоторые разработчики полагают по другому. Они считают что обучение сети LC0 на Стокфише например её необратимо испортит, даже более того, обучения игре в эндшпиль на TB (Налимова....) её так же необратимо испортит.
  31. Rom Старожил

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    645
    Симпатии:
    276
    Репутация:
    28
    Оффлайн
    Необратимо вряд ли. Но мне кажется они поднимают несколько иной вопрос. Метод Монте-Карло (или точнее то, что им сейчас называют), выдаёт нам такие тренировочные примеры, которые, как уже неоднократно показано, позволяют качественно обучать нейросеть. О других методах, или программах которые их используют, так пока сказать нельзя. Поэтому возникают обоснованные опасения, что с другими методами поиска по шахматному дереву можно словить какие-нибудь проблемы связанные с переобучением, или некие другие скрытые проблемы связанные с иным тренировочным набором. И поэтому пока не отработан существующий код, и нейросеть вполне себе обучается, лучше использовать то, что гарантированно работает, а другие подходы опробовать потом.
  32. svoitsl Учаcтник

    • Участник
    Рег.:
    06.01.2018
    Сообщения:
    374
    Симпатии:
    91
    Репутация:
    7
    Оффлайн
    Проблемы можно словить и ошибками в коде, от этого никто не застрахован, но в последующем метод Монте-Карло их исправит, так и тут, можно сперва обучить на Стокфише с ТВ Налимова, уж потом "лакирнуть" тренировочными примерами Монте - Карло.
    В этом случае скорее всего потребуется меньше игр (и времени) что бы достичь уровня хотя бы Стокфиша.
  33. Mustitz Заслуженный

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

    С таблицами Налимова я не вижу вообще никаких минусов, как бы это могло повлиять. В качестве бонуса я вижу незначительное ускорение обучения и экономию мощности нейросети (не надо тратить часть ресурсов на обучение игры в таких окончаниях). Но это может сильно повлиять на игру Leela Chess Zero без таблиц Налимова в позиции из такой таблицы.

    Обучать на партиях человека и/или движков может иметь негативный эффект, потому что найросеть может попасть в яму острых тактических позиций, где надо считать много и вширь, для которой MCTS работает не очень успешно. И потом из этой ямы не выбраться.

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

    Опять же, лично я бы не говорил о проблемах с переобучением, а скорее о проблеме локального минимума.
    Rom и Undying нравится это.
  34. Rom Старожил

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    645
    Симпатии:
    276
    Репутация:
    28
    Оффлайн
    Если тренировочные позиции брать из Налимова, то в принципе возможно. Не нужно наигрывать тренировочные партии. Но тренируется только поздний эндшпиль. А вот если играть тренировочные партии Стокфишем, то надо бы посчитать, сможем ли мы быстро наиграть достаточное количество партий нужного качества. Следует учесть, что при переборе 200 тысяч позиций на ход Стокфиш играет примерно на уровне 2800 эло, а сегодняшняя Лила уже достаточно приличного уровня.
  35. crem Учаcтник

    • Участник
    Рег.:
    24.11.2016
    Сообщения:
    140
    Симпатии:
    203
    Репутация:
    14
    Оффлайн
    Насчёт обучения на стокфише: наверняка испортит, по крайней мере в статье про AlphaGo Zero написано, что сеть, изначально натренированная на партиях людей, прекратила рост раньше, чем натренированная с нуля.

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

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