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

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

  1. Rom Учаcтник

    • Участник
    Рег.:
    12.02.2012
    Сообщения:
    485
    Симпатии:
    173
    Репутация:
    21
    Онлайн
    Чем больше я размышляю об этой идее, тем более глубокой она мне кажется. Обобщающий объект (нейросеть) лучше всего должен тренироваться от обобщающего алгоритма (MCTS). То есть для обучения общим соображениям, интуиции, аппроксимации - назовите как хотите, которые обеспечивает нейросеть, лучшие тренировочные примеры должен генерировать именно обобщающий алгоритм. Например, проистекающий из метода Монте-Карло.

    MCTS в процессе перебора вариантов усредняет оценку, то есть обобщает решение для определенного класса позиций, что в нашем случае и требуется для обучения нейросети. У обычных движков, оценка позиции которых часто формируется серией единственных ходов, нет возможностей для генерации подходящих тренировочных примеров. Там рулит конкретика. Да, в конце концов конкретика понадобится, но только после обучения, в процессе игры. Но тогда нам и следует её обеспечить какими-либо дополнительными алгоритмами, но главное - вне процесса тренировки.

    Интересно, не являлся ли именно батчинг одной из важных составляющих быстрого роста силы Альфа Зеро с увеличением контроля? Накапливание позиций при наборе пакета приводит к эффекту эквивалентному уменьшению качества перебора при распараллеливании. Но "virtual loss" по-видимому должны заметно сглаживаться как при улучшении железа, так и при увеличении контроля. Для лучшего железа менее критично, сколько позиций оно оценивает параллельно. При большем контроле выше шансы найти позицию в кеше процессора и соответственно меньше шансов что она окажется не нужной. Кроме того, при увеличении дерева перебора будет сглаживаться эффект дискретности, который происходит от вливания в поиск целого пакета позиций, большинство из которых может быть уже и не нужны в этом поиске.
    WinPooh нравится это.
  2. Boroda Новичок

    • Новичок
    Рег.:
    12.01.2018
    Сообщения:
    52
    Симпатии:
    7
    Репутация:
    0
    Оффлайн
    А какую ориентировочную планку прогнозируют для Лилы разработчики? Превзойти Стокфишь, превзойти Альфу, превзойти 4000 Эло? Или пока ни каких прогнозов вообще нету?
  3. svoitsl Учаcтник

    • Участник
    Рег.:
    05.01.2018
    Сообщения:
    106
    Симпатии:
    14
    Репутация:
    0
    Оффлайн
    Помниться как то были надежды превзойти уровень человека, кажется на сети 10х128 (если я не ошибаюсь), худо-бедно но эта задача вполне выполняется и возможно скоро будет достигнута (правда на сети 15х192), вторая задача была превзойти Стокфишь, тут пока перспективы остаются неопределенными, но осторожный оптимизм все же есть.
    Ну а там видно будет.
    Boroda нравится это.
  4. Boroda Новичок

    • Новичок
    Рег.:
    12.01.2018
    Сообщения:
    52
    Симпатии:
    7
    Репутация:
    0
    Оффлайн
    Поставил матч из 10 игр, Рыбка4 против №306. 3мин+5 мин на ход. Счет пока +2-1=1 в пользу Рыбы. Партия которую выиграла лила просто класс! Уже после 9хода Лила показывала +1.09 и просто растерзав королевский фланг, к сороковому ходу разгромила Рыбу! И при этом имея колоссальный запас по времени!
  5. svoitsl Учаcтник

    • Участник
    Рег.:
    05.01.2018
    Сообщения:
    106
    Симпатии:
    14
    Репутация:
    0
    Оффлайн
    а на каком оборудовании и какая Лила играет?

    У меня матч на 30 партий (5'+20") закончился, Лила cudnn (id306) на GF730 играла против Рыбки 2.3.2а х64 4CPU
    (i5-4670, 3.4ГГц) с книжкой на 8 ходов
    Результат 20,5:9,5 в пользу Рыбки (+14-3=13)
    отсюда получаем рейтинг Лилы он всего на 131 ниже чем у Рыбки
    3019-131=2888 Эло
    Довольно не плохой результат
  6. Boroda Новичок

    • Новичок
    Рег.:
    12.01.2018
    Сообщения:
    52
    Симпатии:
    7
    Репутация:
    0
    Оффлайн
    Я там же написал что тоже №306.
    Оборудование Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz with 15,9 GB Memory
    Но рыба у меня без книги играет!
  7. svoitsl Учаcтник

    • Участник
    Рег.:
    05.01.2018
    Сообщения:
    106
    Симпатии:
    14
    Репутация:
    0
    Оффлайн
    а сама Лила - обычная CPU?
  8. Boroda Новичок

    • Новичок
    Рег.:
    12.01.2018
    Сообщения:
    52
    Симпатии:
    7
    Репутация:
    0
    Оффлайн
    Да обычная.
    --- добавлено: 19 май 2018, опубликовано: 19 май 2018 ---
    В одной из партий лила показывала +2.96, а следующим ходом зевнула ферзя и получила жбан)). Прям как человек играет!
  9. KEV81 Учаcтник

    • Участник
    Рег.:
    06.03.2017
    Сообщения:
    529
    Симпатии:
    130
    Репутация:
    1
    Оффлайн
    Значит дальше человека и не уйдет ))
  10. Boroda Новичок

    • Новичок
    Рег.:
    12.01.2018
    Сообщения:
    52
    Симпатии:
    7
    Репутация:
    0
    Оффлайн
    И того Рыбка4-Лила№306 (3мин+5сек), +6-2=2 в пользу Рыбы. Обе выигранные Лилой партии, понравились тем, что в них у противника оставалось еще куча фигур ( в последней например, у Рыбы остались ферзь, 2 коня и слон и все не удел , а король гол как сокол:)). В этих партиях Лила напомнила мне свою старшую знаменитую сестру.
    Undying, Sergey1983 и svoitsl нравится это.
  11. Boroda Новичок

    • Новичок
    Рег.:
    12.01.2018
    Сообщения:
    52
    Симпатии:
    7
    Репутация:
    0
    Оффлайн
    Рыбка4-Лила№320 (3мин+5сек), +6-3=1 в пользу Рыбы. Лила почему то проиграла два совершенно ничейных эндшпиля, по идее должно было быть +4-3=3.
  12. pavelgttfj8 Новичок

    • Новичок
    Рег.:
    07.12.2017
    Сообщения:
    73
    Симпатии:
    22
    Репутация:
    0
    Оффлайн
    А где посмотреть эти партии?
  13. Sergey1983 Учаcтник

    • Участник
    Рег.:
    03.04.2018
    Сообщения:
    124
    Симпатии:
    14
    Репутация:
    1
    Оффлайн
    Сделал турнир в ChessMaster с 5-ю топ игроками включая ChessMaster. Скрины и турнир в архиве прилагаю.
    Leela GPU версия на GTX 1080, ~2000 Nps.

    По всей видимости LcZero переросла ChessMaster, единственное что смущает здесь http://www.computerchess.org.uk/ccrl/404/ ChessMaster 11 работает на 4-х ядрах, у меня же почему-то всегда работает на одном

    P.S. Не могу почему-то выложить скрины и архив одновременно.

    Вложения:

    • Top_Net_320.zip
      Размер файла:
      105,1 КБ
      Просмотров:
      34
    Rom нравится это.
  14. Boroda Новичок

    • Новичок
    Рег.:
    12.01.2018
    Сообщения:
    52
    Симпатии:
    7
    Репутация:
    0
    Оффлайн
    Если честно, я не знаю как их сюда из арены загрузить.
  15. Sergey1983 Учаcтник

    • Участник
    Рег.:
    03.04.2018
    Сообщения:
    124
    Симпатии:
    14
    Репутация:
    1
    Оффлайн
    Вот выложил всё таки скрины с турнира.
    Что то не получается их приложить, сайт пишет что загрузил, а в посте нет:oops:
  16. Sergey1983 Учаcтник

    • Участник
    Рег.:
    03.04.2018
    Сообщения:
    124
    Симпатии:
    14
    Репутация:
    1
    Оффлайн
    Сделал турнир LcZero GPU Net 320 - Texel 1.08a2(рейтинг ~3200-3300) результат +1=9-0 в пользу Texel.
    Контроль времени 40' 10''.
    Эндшпильные базы Syzygy 5-и фигурные, дебютные книги не использовал.

    P.S.Уже и архив с играми не могу прикрепить.
  17. Boroda Новичок

    • Новичок
    Рег.:
    12.01.2018
    Сообщения:
    52
    Симпатии:
    7
    Репутация:
    0
    Оффлайн
    Тут кто нибудь тренирует сеть? Несколько дней назад подключился, и почти сразу, в строке Games/Day появилась цифра 157, а сегодня подключился была 9 и за несколько часов она выросла до 14. Как это вообще понять?
  18. svoitsl Учаcтник

    • Участник
    Рег.:
    05.01.2018
    Сообщения:
    106
    Симпатии:
    14
    Репутация:
    0
    Оффлайн
    наверно это была ошибка, мне например довольно проблематично тренировать,ресурсы не так уж и велики, вот все жду когда же версия crem'a сможет тренировать,там бы побольше было
    Boroda нравится это.
  19. pavelgttfj8 Новичок

    • Новичок
    Рег.:
    07.12.2017
    Сообщения:
    73
    Симпатии:
    22
    Репутация:
    0
    Оффлайн
    Лилу можно запустить на TPU? Или для этого пока софт не написан?
    Он стоит то меньше 10 долларов в час, можно было бы небольшой матч провести что бы узнать её настоящую силу.
    А то все эти gtx970 это просто смешно
  20. Polarity Новичок

    • Новичок
    Рег.:
    24.04.2018
    Сообщения:
    50
    Симпатии:
    8
    Репутация:
    0
    Оффлайн
    Кто-то научил в ручном режиме сетку 20x256 и выложил веса. И на 4 GPU она смогла обыграть какой-то непонятный стокфиш: https://lichess.org/tBPtxJBH
  21. pavelgttfj8 Новичок

    • Новичок
    Рег.:
    07.12.2017
    Сообщения:
    73
    Симпатии:
    22
    Репутация:
    0
    Оффлайн
    Решил сыграть стокфишем 9 (на кор i7 в 4 потока, гбайт хеш, несколько секунд на ход + фоновый расчет) с лилой на сайте play.lczero.org. Это приблизительно равносильно тому как если бы стокфиш думал в 5-10 раз дольше так как 400 nodes per move лилы на сайте это не о чем. Думал стокфиш порвет ее в хлам, но партия меня очень удивила. После 14-го хода сток вышел из дебюта и далее лила начала его просто давить, оценка позиции по стоку была более единицы, но потом лила постепенно упустила преимущество и на доске после 40-го хода стояла железобетонная ничья, дальше почти 40 ходов было стояние на месте пока lc0 не зевнула простой мат на 83-ем ходу (как она это умеет). И это при том что на 59-м ходу лила отказалась от ничьи Kg1 (троекратное повторение)
    В общем, такая сильная игра "детской" версии лилы против последнего стокфиша 9 на не самом плохом железе да в коротком контроле впечатляет.

    Sergey1983 нравится это.
  22. Kesandr Учаcтник

    • Участник
    Рег.:
    02.09.2008
    Сообщения:
    385
    Симпатии:
    12
    Репутация:
    11
    Оффлайн
    У меня стокфиш за 22 мая на двухядерном ноуте у блиц 1 минута на партию просто разносит в пух и прах лилу id 331 400 npm с сайта.
  23. Boroda Новичок

    • Новичок
    Рег.:
    12.01.2018
    Сообщения:
    52
    Симпатии:
    7
    Репутация:
    0
    Оффлайн
    Я кажется понял в чем прикол, просто среди тренирующих оказался чел с таким же ником как у меня, вся разница только в заглавной букве).
  24. Sergey1983 Учаcтник

    • Участник
    Рег.:
    03.04.2018
    Сообщения:
    124
    Симпатии:
    14
    Репутация:
    1
    Оффлайн
    pavelgttfj8, а версия LcZero GPU? Если да то какая видеокарта?
  25. Sergey1983 Учаcтник

    • Участник
    Рег.:
    03.04.2018
    Сообщения:
    124
    Симпатии:
    14
    Репутация:
    1
    Оффлайн
    Сделал матч LcZero GPU Net 331 - Texel 1.08a2(рейтинг ~3200-3300) результат +3=5-2 в пользу Texel
    Контроль времени 10' 5''.
    Эндшпильные базы Syzygy 5-и фигурные, дебютные книги не использовал.
  26. Camon14 магистр

    • Заслуженный
    • Ветеран
    Рег.:
    28.05.2012
    Сообщения:
    14.506
    Симпатии:
    6.566
    Репутация:
    468
    Нарушения:
    10
    Оффлайн
    http://www.durbetsel.ru/0_algoritm.htm
    вот где бы применить сеть нейронную, можно быстро создать идеального игрока в "Дурака", "начинать нужно с малого"
    не умеем мы свое родное продвигать. вот тут человек сам мучился играл.
  27. Mustitz Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    30.09.2006
    Сообщения:
    2.783
    Симпатии:
    254
    Репутация:
    18
    Адрес:
    Киев
    Оффлайн
    Ну... в случае игры в дурака может хорошо сработать детерминизация. Ну и MCTS тоже можно прикрутить с той же нейросетью для Rollout.
  28. Polarity Новичок

    • Новичок
    Рег.:
    24.04.2018
    Сообщения:
    50
    Симпатии:
    8
    Репутация:
    0
    Оффлайн
    Тем временем в проекте leela chess похоже разгорается драма. Автору lc0, crem-у захотелось писать сервер для тренировки(?) на python + django. А основателю проекта видимо это не понравилось. В итоге crem решил тратить на развитие проекта намного меньше времени.
    Надо сказать, что crem видимо работает в google. Его версия lc0 работает в разы быстрее на cudnn и уже на 25% быстрее в OpenCL версии, хоть там еще доступны не все оптимизации. При этом код у него простой и понятный. Так что если он не передумает, то это будет сильным ударом по проекту.

    P.S. Я тут немного поизучал код lczero. Качество конечно оставляет желать лучшего. Многие принятые решения в своё время кажутся мне крайне сомнительными. Это например выбор библиотеки OpenCL. Ещё вот недавно выяснилось, что с batch normalization в нейросети что-то не так. В своё время туда захардкодили просто какие-то константы. Глядя на всё это, я не удивляюсь, почему всплывает такое огромное количетво багов. И неизвестно, сколько ещё всплывёт в будущем.
  29. Mustitz Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    30.09.2006
    Сообщения:
    2.783
    Симпатии:
    254
    Репутация:
    18
    Адрес:
    Киев
    Оффлайн
    А есть варианты? У кого-то зелёненькие видеокарты, а у кого-то красненькие...
  30. Polarity Новичок

    • Новичок
    Рег.:
    24.04.2018
    Сообщения:
    50
    Симпатии:
    8
    Репутация:
    0
    Оффлайн
    Если надо взаимодействовать с нейронками, то у зелёненьких в данный момент серьёзной конкуренции нет.
    Надо понимать, что отказ от cuDNN фактически означает серьёзную потерю в скорости наигрываемых игр и замедлении прогресса. Да и специалистов в OpenCL тоже не особо заметно.
    А если очень хочется, чтобы и на красеньких работало, то наверне надо было поддерживать одновременно 2 решения.
  31. Boroda Новичок

    • Новичок
    Рег.:
    12.01.2018
    Сообщения:
    52
    Симпатии:
    7
    Репутация:
    0
    Оффлайн
    То то я смотрю, за последнюю неделю прогресса в реётинге нет совсем.)
  32. Polarity Новичок

    • Новичок
    Рег.:
    24.04.2018
    Сообщения:
    50
    Симпатии:
    8
    Репутация:
    0
    Оффлайн
  33. Sergey1983 Учаcтник

    • Участник
    Рег.:
    03.04.2018
    Сообщения:
    124
    Симпатии:
    14
    Репутация:
    1
    Оффлайн
    Как я понял это форк старого проекта.
    И как я понял, разработчики будут выкладывать лишь исходники, что является большим минусом, далеко не каждый сможет их собрать.
  34. Polarity Новичок

    • Новичок
    Рег.:
    24.04.2018
    Сообщения:
    50
    Симпатии:
    8
    Репутация:
    0
    Оффлайн
  35. svoitsl Учаcтник

    • Участник
    Рег.:
    05.01.2018
    Сообщения:
    106
    Симпатии:
    14
    Репутация:
    0
    Оффлайн
    ну вот только публично его пока нет?

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