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

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

  1. Mustitz
    Оффлайн

    Mustitz баннер

    Репутация:
    37
    А где это повлияло не результат? Возможно нейросеть помнит начальные партии, когда ферзь это больше шансов запатовать короля. А с тех пор это работает и настройки не менялись.
    —- добавлено: 24 сен 2018 —-
    Дык вроде как при обучении таблицы Налимова не использовались принципиально.
     
    Polarity нравится это.
  2. Undying
    Оффлайн

    Undying Учаcтник

    Репутация:
    15
    Может быть дело не в использовании таблиц Налимова, а в чем-то другом. Но как только дело доходит до глубокого эндшпиля Лила зачастую начинает играть в силу безразрядника. Сейчас с Гудини в этой позиции Лила смело разменяла ладьи:



    Не может нейронка прекрасно понимать миттельшпильные позиции и быть абсолютно бездарной в элементарных эндшпилях. Явно в каких-то грубейших недочетах обучения дело.
    —- добавлено: 25 сен 2018, опубликовано: 24 сен 2018 —-
    Насколько помню все чудеса в эндшпилях связаны с одинокими слонами. И у себя, и у соперника такого слона Лила часто оценивает удивительно неадекватно.
     
  3. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    Так, может, и никакого понимания миттельшпильных позиций нет? А есть просто случайно открывшаяся эксплуатация некоторых неочевидных багов альфа-бета подхода?
     
  4. Polarity
    Оффлайн

    Polarity Новичок

    Репутация:
    0
    Версия в CCCC обучалась без таблиц, емнип. Таблицы должны только всё усилить, чем лучше оценки, т. е. данные, тем лучше результат :)
    С таблицами мне видится только одна проблема. Обученная версия не будет уметь доигрывать до мата без таблиц, но это вроде бы и не проблема вовсе.
    Таблицы не добавили с самого начала кажется по 2 причинам.
    Во-первых, хотелось воспроизвести результаты DeepMind.
    Во-вторых, эта задача не имела высокий приоритет, т. к. всё работало и без них. И соответсвенно, на неё не хватало времени. Все пытались создать минимально рабочую версию, без крупных багов, быстро обучающуюся, может быть местами недооптимизированную, а не пихать все крутые идеи сразу, бесконечно усложняя всё.
    Когда же Лила начала выходить на плато, то добавление таблиц стало вполне логичным шагом, чтобы получить дальнейший прирост в силе.
    Мой прогноз: когда таблицы (хотя бы 6-фигурные) будут добавлены в обучение, стокфиш начнёт сдавать лидерство, если конечно не получит ещё значительное усиление за это время :)
     
    Последнее редактирование: 25 сен 2018
  5. Mustitz
    Оффлайн

    Mustitz баннер

    Репутация:
    37
    Если это важно, можно доигрывать партию по таблицам и использовать её для обучения.
     
  6. Undying
    Оффлайн

    Undying Учаcтник

    Репутация:
    15
    Проблема, что Лила позицию, в которой блокада уже стоит на доске, оценивает как совершенно выигранную. При такой оценке сколько не считай варианты все равно сыграешь плохо.
     
  7. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    Обобщим: Лила неверно оценивает позиции, где защита достигается единственными или близкими к единственным ходами. В партиях с самой собой она отклоняется от правильной линии защиты, выигрывает за атакующую сторону, и на основании статистики получает неверную оценку. Этот эффект может проявляться как на этапе обучения (тогда смещённая оценка запоминается в весах сети), так и при собственно игре.
     
  8. Undying
    Оффлайн

    Undying Учаcтник

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

    ps
    Интересно было бы сравнить, что Деус думает об этих позициях.
     
  9. sovaz1997
    Оффлайн

    sovaz1997 Учаcтник

    Репутация:
    3
    Deus X очень слаб по сравнению с Lc0 на данный момент. Кстати, Lc0 2-й раз обыграла Komodo в CCCC.
     
  10. Undying
    Оффлайн

    Undying Учаcтник

    Репутация:
    15
    Понятно, что Деус намного слабее Лилы. Но есть подозрение, что проблемы с пониманием эндшпильных блокад у Деуса нет. Во всяком случае сам он в одной из партий выстроил блокаду против трех связанных пешек и слона очень уверенно.
     
  11. grizly
    Оффлайн

    grizly Учаcтник

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

    Undying Учаcтник

    Репутация:
    15
    Теперь интрига удержит ли Лила третье место. За 5 туров до конца на полочка Комодо опережает.
     
  13. Michael-13
    Оффлайн

    Michael-13 Господин

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

    pavelgttfj8 Учаcтник

    Репутация:
    3
    Мне интересно, почему нельзя сделать альфа-бета нейронку? Оценочную функцию заменить пустой нейросетью маленького размера, что бы она работала так же быстро как и обычная оценочная функция. Из-за маленького размера обучение должно пройти быстро. А всё остальное оставить от стокфиша.
    Там конечно будет не одна нейросеть а разные в зависимости от типа позиции, но все же. Тут есть какие-либо нюансы?
     
  15. Rom
    Оффлайн

    Rom Старожил

    Репутация:
    28
    Я уже приводил ссылку на подобный проект. Основные проблемы мне видятся в следующем:
    - Даже нейросеть маленького размера не будет работать так же быстро, как обычная оценочная функция. Нейросеть вычислительно избыточна по сравнению со стандартной линейной оценочной функцией, поэтому вычислять она будет ориентировочно в 100 раз медленнее. Оценочная функция Стокфиша выполняет тысячи математических операций для оценки одной позиции, тогда как нейросеть - миллионы.
    - Эффективность работы видеокарт на мелких нейросетках значительно сокращается, вследствие проблем распараллеливания и/или недогруза.
    - Нейросеть состоит не только из оценки позиции (value), но и предлагаемых ходов (policy). Оценочная функция Стокфиша выполняет только первое. Простая замена приведет к отказу от policy, что ещё сильнее уменьшит эффективность нейросети.
     
    Последнее редактирование: 27 сен 2018
    pavelgttfj8 и Undying нравится это.
  16. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    В Жирафе что-то подобное было. Поиск там не чистая альфа-бета, но и не UCT.
     
  17. Mustitz
    Оффлайн

    Mustitz баннер

    Репутация:
    37
    Оценочная функция, ИМХО, это плохая идея. Прежде всего, это больше человеческое вопсриятие, которое не имеет под собой большого физического смысла. К тому же оценка достаточно произвольна — умножение оценки на множитель никак не влияет на alpha-beta. Добавление константы тоже, если не учитыватьтроекратное. Возьмём каку-нить позицию, например
    Screenshot from 2018-09-28 12-51-30.png
    Как узнать, какая у этой позиции оценка? Заметим, что для обучения нам надо составить целую базу позиций с оценками. Откуда их брать? Можно запустить Stockfish, то тогда оценка будет основываться частично на позиции, а частично на дереве перебора вариантов, которое недоступно нейросети. Это лишний шум (ошибка). Опять же оценка позиции это больше средство управления перебором. Оценка, которая выдаёт программа, часто не совпадает с тем, что используется внутри (идёт её приведение к человеческому виду). Например, если лишняя пешка может меньше ценится в окончании, но для удобвства для человека оценка в позициях с малых числом фигур может домножаться на некоторое число, чтобы в условном ладейнике с лишней пешкой оценка была около +1.00.

    Если брать идеи улучшения, то (1) надо давать отчёт в том, что это будет влиять на скорость, поэтому мы вряд ли сможем обработать все узлы, а только выборочные; (2) наша задача ничего не испортить, а внести дополнительное понимание.

    Например, как вариант можно науськать нейросеть распознавать крепости (например, выдавать вероятность ничейного результата при доигрывании). Просто берём выборку позиций из матчей движков и используем для обучения. Далее, в момент перебора мы параллельно запускаем некоторые позиции на этой данной нейросети и обновляем ноды. Например, если принципиальный вариант по alpha-beta это 32 полухода, то мы можем запустить вспомогательную оценку для 5 позиций из данного варианта (корневая, после 8-го, 16-го, 24-го и 32-го полухода). Для узлов посередине оценку можно интерполировать. Таким образом alpha-beta движку будут выдаваться некоторые подсказки для более тонкой подстройки. Другими подсказками могут использование тех или иных отсекающих эвристик (достаточно проверить движок на большой базе и посмотреть, когда это работает а когда нет) и т. п.
     
  18. Kesandr
    Оффлайн

    Kesandr Учаcтник

    Репутация:
    11
    Начался чемпионат чесскома матч за 3 место из 30 партий между комодо и лс 0 Счет после 5 партий +3-0=2 в пользу лс 0. В миттельшпиле Лс 0 давит комода.
    chess.com/computer-chess-championship
     
  19. Undying
    Оффлайн

    Undying Учаcтник

    Репутация:
    15
    Выиграла Лила матч у Комодо 16 : 14 (5 : 3 по победам). Можно поздравить разработчиков с большим достижением. Лила с первой попытки вошла в число топовых движков.

    А матч в частности показал, что некоторые структуры Лила понимает намного лучше Комодо. В атаке Торре Лила побеждала и белыми и черными (3.5 : 0.5), в других дебютах такого преимущества не было.
     
  20. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    Пишут, что, возможно, третью партию будут переигрывать, там что-то не так с дебютом. Лила её выиграла чёрными, так что теоретически Комодо может сравнять счёт в матче. Но, конечно, это уже успех в любом случае.
    Ждём кубка TCEC, а потом и 14-го сезона.
     
  21. Sergey1983
    Оффлайн

    Sergey1983 Учаcтник

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

    svoitsl Учаcтник

    Репутация:
    7
    По крайней мере, если придерживаться планов снизить LR после 30 млн игр (а сейчас всего 26.5) то снизят его только примерно через 3-4 дня (если сохранится 1 млн игр в сутки).
    Ещё неделя уйдёт на достаточно быстрый рост....
    Так что видимое усиление никак нельзя ожидать раньше 2-й декады октября.
     
  23. Sergey1983
    Оффлайн

    Sergey1983 Учаcтник

    Репутация:
    1
    А где можно посмотреть сколько игр наиграно, а то на главной пишется 94 миллиона.
     
  24. Rom
    Оффлайн

    Rom Старожил

    Репутация:
    28
    Нажмите "Full Elo Graph" и сравните с числом при последнем сбросе сети.
     
    Последнее редактирование: 5 окт 2018
  25. svoitsl
    Оффлайн

    svoitsl Учаcтник

    Репутация:
    7
    Оказывается есть план начать тест 40, как только тест 20 завершиться, будут использованы уроки / оптимизации, полученные из теста 30, Есть надежды, что он должен быть очень сильным.
    (ну а каким будет - посмотрим).
    План, насчет снижения LR, был скорректирован, и как не странно в сторону увеличения игр, сейчас планируется не 30, а целых 33 млн игр!!!, что может задержать снижение LR (если не будет двойного роста числа игр в сутки) ещё на 3 дня :(
     
    Последнее редактирование: 5 окт 2018
  26. Sergey1983
    Оффлайн

    Sergey1983 Учаcтник

    Репутация:
    1
    Когда они уже стабильную сеть запустят?
     
    WinPooh нравится это.
  27. svoitsl
    Оффлайн

    svoitsl Учаcтник

    Репутация:
    7
    Думаю что не скоро, если проводить обучение на больших ресурсоемких сетях, то оптимального результата можно ждать долго, но время используется для совершенствования ПО, что тоже не плохо....
     
  28. tiger
    Оффлайн

    tiger Новичок

    Репутация:
    1
    Преимущество не конкретно в нейронной сети, а в том что этот подход использует статистику. В классических программах (типа Стокфиша) не учитывается статистика, и оценка позиции определяется фактически одной веткой огромного дерева. В этом большой минус так как нет стабильности. Кстати, почти всегда если начать делать ходы по главному варианту (который дает оценку в корне дерева), то главный вариант меняется довольно быстро.
     
  29. Sergey1983
    Оффлайн

    Sergey1983 Учаcтник

    Репутация:
    1
    Просто люди могут разбежаться не дождавшись результата, я имею ввиду тренирующих сети.
     
  30. Boroda
    Оффлайн

    Boroda Новичок

    Репутация:
    0
    При всех недостатках Лилы, выиграть у Стокфиша, дав в фору пешку это фантастика! Интересно сколько вообще движков на это способны, если им дать например тысячу игр?
     
  31. grizly
    Оффлайн

    grizly Учаcтник

    Репутация:
    21
  32. Michael-13
    Оффлайн

    Michael-13 Господин

    Репутация:
    29
    Нейронная сеть Алиса от Яндекса
    [​IMG]
     
  33. SKY
    Оффлайн

    SKY Учаcтник

    Репутация:
    1
    Приветствую всех участников форума!
    Хотел написать Сергею Шипову,но он перестал разбирать партии.
    Решил предложить к рассмотрению интересную партию: https://yadi.sk/d/yEFqpYUy0MxyeA
    Впечатлившись игрой альфазиро стало интересно как будет играть стокфиш на хорошем времени,для этого запустил на одной оболочке последний 9-й стокфиш на 6 потоках,это в районе 7000 Ку/сек с 1 минутой на ход белым,что примерно 3550 ЭЛО.Это примерно та сила с которой играл стокфиш против альфазеро.
    Идея в том чтобы противопоставить очень сильной игре,еще намного более сильную игру,поэтому на второй оболочке запустил тот же стокфиш черными с в 10 раз большим временем на ход,но такой разницы оказалось мало,были ничьи.Дал черным в 100 раз больше времени,первая партия и сразу снова ничья,тогда решил не мелочится и дал черным на ход 3 часа 20 минут,что в 200 раз больше чем у белых!Это 3650 ЭЛО.Глубины анализа в начальных позициях доходили до 51 полухода против 31 полухода белых.
    И тут я угадал,черные играют просто умопомрачительно сильно!Весь лагерь белых был стеснен на малой части доски и ничего белые не могли противопоставить игре черных.
    Черные последовательно,с первых ходов улучшали свои оценки играя стратегически не обращая внимание на материал(как альфазиро)легко отдали две пешки,но так эффективно расположились,что всего к 30-у ходу имели оценку своей игры + 3,89,что однозначно показывало что у белых нет ни единого шанса даже на ничью.
    И на 62-м ходу черные объявили мат белым имея преимущество в слона и ладью!
    Эта партия в общем показала,что с нормальным временем стокфиш мог бы выигрывать у альфазиро.
    Впечатление от этой партии такие же как и от игры альфазиро,очень сильная партия.
    Может будет интересно ее проанализировать.
    Мало кто разыгрывает настолько сильные партии со временем на ход более 3 часов.
    Какие будут ваши впечатления.
     
  34. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    Думаю, у заочников-адвансеров качество игры не хуже должно быть.Они и больше суток анализа могут на ход тратить.
    Насчёт глубины - помнится, во время матча Карлсен - Карякин в онлайне был какой-то норвежский суперкомпьютер со Стокфишем, там глубина в миттельшпиле и до 60 ходов доходила.
     
  35. SKY
    Оффлайн

    SKY Учаcтник

    Репутация:
    1
    Да,но они ведь некоторые ходы только анализируют.

    Скоро 10-й стокфиш должен появится,запущу еще подобную партию с разницей в 200 раз по времени,с 13,5 часов за черных и 4 минуты за белых.ЭЛО черных будет в районе 3850,с учетом возросшей силы стокфиш десятого.