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

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

  1. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.545
    Симпатии:
    1.265
    Репутация:
    36
    Адрес:
    Киев
    Оффлайн
    А где это повлияло не результат? Возможно нейросеть помнит начальные партии, когда ферзь это больше шансов запатовать короля. А с тех пор это работает и настройки не менялись.
    —- добавлено: 24 сен 2018 —-
    Дык вроде как при обучении таблицы Налимова не использовались принципиально.
    Polarity нравится это.
  2. Undying Учаcтник

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



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

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

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

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.545
    Симпатии:
    1.265
    Репутация:
    36
    Адрес:
    Киев
    Оффлайн
    Если это важно, можно доигрывать партию по таблицам и использовать её для обучения.
  6. Undying Учаcтник

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

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

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

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

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

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

    grizly Учаcтник

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

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

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

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

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

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.490
    Симпатии:
    3.108
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    В Жирафе что-то подобное было. Поиск там не чистая альфа-бета, но и не UCT.
  17. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.545
    Симпатии:
    1.265
    Репутация:
    36
    Адрес:
    Киев
    Оффлайн
    Оценочная функция, ИМХО, это плохая идея. Прежде всего, это больше человеческое вопсриятие, которое не имеет под собой большого физического смысла. К тому же оценка достаточно произвольна — умножение оценки на множитель никак не влияет на 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 Учаcтник

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

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

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

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

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

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

    • Участник
    Рег.:
    03.04.2018
    Сообщения:
    126
    Симпатии:
    14
    Репутация:
    1
    Оффлайн
    А где можно посмотреть сколько игр наиграно, а то на главной пишется 94 миллиона.
  24. Rom Старожил

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    645
    Симпатии:
    276
    Репутация:
    28
    Оффлайн
    Нажмите "Full Elo Graph" и сравните с числом при последнем сбросе сети.
  25. svoitsl Учаcтник

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

    • Участник
    Рег.:
    03.04.2018
    Сообщения:
    126
    Симпатии:
    14
    Репутация:
    1
    Оффлайн
    Когда они уже стабильную сеть запустят?
    WinPooh нравится это.
  27. svoitsl Учаcтник

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

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

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

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

    grizly Учаcтник

    • Участник
    Рег.:
    10.05.2015
    Сообщения:
    398
    Симпатии:
    623
    Репутация:
    21
    Оффлайн
  32. Michael-13 Господин

    • Участник
    • Старожил
    Рег.:
    18.11.2011
    Сообщения:
    3.068
    Симпатии:
    1.098
    Репутация:
    29
    Оффлайн
    Нейронная сеть Алиса от Яндекса
    [​IMG]
  33. SKY Учаcтник

    • Участник
    Рег.:
    05.11.2018
    Сообщения:
    190
    Симпатии:
    20
    Репутация:
    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 В.М.

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

    • Участник
    Рег.:
    05.11.2018
    Сообщения:
    190
    Симпатии:
    20
    Репутация:
    1
    Оффлайн
    Да,но они ведь некоторые ходы только анализируют.

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

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