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

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

  1. Sergey1983
    Оффлайн

    Sergey1983 Учаcтник

    Репутация:
    1
    Crem, а что там с движком, почему нет усиления?
     
  2. crem
    Оффлайн

    crem Учаcтник

    Репутация:
    14
    Я сейчас не очень слежу за обучением сети, больше за реализацией движков.

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

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

    svoitsl Учаcтник

    Репутация:
    7
    "Здесь" это конечно хорошо, но есть ли критерии по которым нужно увеличить размер сети?

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

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

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

    Sergey1983 Учаcтник

    Репутация:
    1
  5. sovaz1997
    Оффлайн

    sovaz1997 Учаcтник

    Репутация:
    3
    Rom нравится это.
  6. crem
    Оффлайн

    crem Учаcтник

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

    crem Учаcтник

    Репутация:
    14
    Rom, sovaz1997, Sergey1983 и ещё 1-му нравится это.
  8. Пломбир
    Оффлайн

    Пломбир Новичок

    Репутация:
    0
    Ааа.. ну тогда это объясняет все мои выигрыши )))) Жаль )))
     
  9. Rom
    Оффлайн

    Rom Старожил

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

    Michael-13 Господин

    Репутация:
    29
  11. crem
    Оффлайн

    crem Учаcтник

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

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

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

    Rom Старожил

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

    Boroda Новичок

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

    Rom Старожил

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

    crem Учаcтник

    Репутация:
    14
    Насколько я слышал, есть теоретически доказанное оптимальное соотношение количества фильтров и блоков, и дисбаланс сильно мешает обучению.
     
  16. Rom
    Оффлайн

    Rom Старожил

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

    kirill57 Начинающий

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

    svoitsl Учаcтник

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

    crem Учаcтник

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

    sovaz1997 Учаcтник

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

    kirill57 Начинающий

    Репутация:
    0
    Интересно, а после начала турнира, уже нельзя добавить?
     
  22. Sergey1983
    Оффлайн

    Sergey1983 Учаcтник

    Репутация:
    1
    Crem, у меня клиент очень часто выдаёт такое:
     

    Вложения:

  23. svoitsl
    Оффлайн

    svoitsl Учаcтник

    Репутация:
    7
    Ну если вдруг попадет в следующий дивизион....тогда можно, а если не попадет то ей это и не потребуется
     
  24. crem
    Оффлайн

    crem Учаcтник

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

    svoitsl Учаcтник

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

    sovaz1997 Учаcтник

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

    Sergey1983 Учаcтник

    Репутация:
    1
    Дело в том что иногда он всё-же качает сеть.
     
  28. Boroda
    Оффлайн

    Boroda Новичок

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

    Rom Старожил

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

    svoitsl Учаcтник

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

    Rom Старожил

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

    svoitsl Учаcтник

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

    Mustitz баннер

    Репутация:
    37
    Ну есть AlphaGo, которая тренировалась на партиях людей. Есть AlphaZero, которая тренировалась на матчах сама с собой. AlphaZero играет сильнее, хотя подход работает в обеих случаях. Где-то лучше, где-то хуже.

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

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

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

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

    Rom Старожил

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

    crem Учаcтник

    Репутация:
    14
    Насчёт обучения на стокфише: наверняка испортит, по крайней мере в статье про AlphaGo Zero написано, что сеть, изначально натренированная на партиях людей, прекратила рост раньше, чем натренированная с нуля.

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