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

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

  1. Undying Учаcтник

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

    Нет такого интереса. Просто опыт Гугла для го показал, что самообучение эффективнее, чем обучение на человеческих партиях.
    --- добавлено: 19 сен 2018, опубликовано: 19 сен 2018 ---
    Проблема возникнет только когда нейронка станет на голову сильнее переборных движков. Тогда возникнет ситуация аналогичная тому, что мастеру для повышения своей силы бессмысленно играть с перворазрядниками. Но до этого еще очень далеко.

    Естественно при обучении на играх с переборными движками нейронка уйдет в локальный экстремум, стремясь к тем позициям, в которых плохо работает перебор и важно понимание. Что может и не увеличит сферическую силу Лилы в вакууме, но способно кардинально повысить результаты Лилы против переборных движков. В этом весь смысл.
  2. Mustitz Заслуженный

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

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    570
    Симпатии:
    256
    Репутация:
    7
    Оффлайн
    В го у нейронных движков нет конкурентов. Поэтому обучаться нейронка может только играя сама с собой. Других вариантов нет. В шахматах переборные движки конкурентоспособны, поэтому нейронка может обучаться играя с ними. Насколько это будет эффективно опыт покажет. Но идея выглядит очень перспективно.
  4. svoitsl Учаcтник

    • Участник
    Рег.:
    05.01.2018
    Сообщения:
    106
    Симпатии:
    14
    Репутация:
    0
    Оффлайн
    Все же есть опасения, что учась на этих играх она не превзойдет переборные движки, а может и кое что упустит

    Жаль, что этот опыт не набирается на небольших сетях, времени бы потребовалось бы меньше
  5. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    570
    Симпатии:
    256
    Репутация:
    7
    Оффлайн
    Непонятны опасения. Наоборот, чтобы ничего не упустить, нужно учиться на партиях с разными соперниками. А играя только сам с собой как раз рискуешь многое упустить.
  6. Mustitz Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    30.09.2006
    Сообщения:
    2.783
    Симпатии:
    254
    Репутация:
    18
    Адрес:
    Киев
    Оффлайн
    Ещё перспективнее с начала использовать Syzygy — зачем тратить ресурсы нейросети на то, что уже посчитано со 100% точностью? Соответственно увеличится сила игры в окончаниях в наигрывании, отсюда вырастет сила игры в окончаниях.
    --- добавлено: 20 сен 2018, опубликовано: 20 сен 2018 ---
    Ну... основная идея в том, чтобы получить метод, которые был бы применим к разным играм, не только к шахматам. Но, как показывает практика, всё равно приходится добавлять чисто шахматные эвристики — оценку позиции, и т. п...

    Опять де, AlphaGo превзошда человека, хотя училась на его партиях. Так что непонятно, чем вызвано такое опасение... Для обучения нужна статистика «позиция — начальные вероятности ходов для MCTS». Возможно лучше возвращать не только вероятности, но и начальное количество симуляций (как критерий хода, который может оказаться лучшим). И эта статистика должна быть лучшего качества. Ну а опасность попасть в локальный экстремум есть при любом подходе, тут прыгать надо.
  7. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    8.527
    Симпатии:
    1.815
    Репутация:
    78
    Адрес:
    Москва
    Оффлайн
    Это зависит от поставленных целей. Лила начиналась как исследовательский проект, с идеей выжать максимум из игры с самой собой без привлечения каких-то сторонних источников.
  8. Mustitz Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    30.09.2006
    Сообщения:
    2.783
    Симпатии:
    254
    Репутация:
    18
    Адрес:
    Киев
    Оффлайн
  9. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    570
    Симпатии:
    256
    Репутация:
    7
    Оффлайн
    Syzygy только проблему с простыми окончаниями решит. Которая может и не особо критична. Не часто Лила упускает выигрыш переходом в простое ничейное окончание.

    Самая интересная идея в плане практической силы игры это выявить те типы позиций, в которых переборные движки играют относительно слабо и добиться, чтобы нейронка целенаправленно шла на такие позиции. Для этого и нужно обучение на играх с переборными движками.
  10. Mustitz Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    30.09.2006
    Сообщения:
    2.783
    Симпатии:
    254
    Репутация:
    18
    Адрес:
    Киев
    Оффлайн
    Судя по моим шашкам, это эчень сильно помогает MCTS. Во-первых, увеличивается точность оценки при доигрывании. Во-вторых, перебирается больше вариантов.
  11. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    570
    Симпатии:
    256
    Репутация:
    7
    Оффлайн
    Да, простые окончания реально проблема для Лилы. Так раскатать Стокфиш, чтобы затем перейти в мертвоничейное окончание... Это эпик фейл.

    Вообще такое непонимание простых окончаний удивительно. Нейронку на них вообще не обучали что ли.
  12. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    8.527
    Симпатии:
    1.815
    Репутация:
    78
    Адрес:
    Москва
    Оффлайн
    А главное, в табличном окончании она всё ещё рисует себе +10. Значит, по статистике умудряется его за белых у самой себя выигрывать.
    Как говорится, это всё, что вам нужно знать об MCTS-поиске.
  13. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    570
    Симпатии:
    256
    Репутация:
    7
    Оффлайн
    MCTS здесь ни причем. Явно бага какая-то. Скорей всего при обучении таблицы Налимова были подключены. Из-за этого все и проблемы. Лила в первый раз в жизни подобные окончания видит. И оценивает их соответственно с позиции многофигурного эндшпиля, в котором две лишних связанные пешки это гарантированная победа.
  14. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    8.527
    Симпатии:
    1.815
    Репутация:
    78
    Адрес:
    Москва
    Оффлайн
    Это ещё и цена отказа от ролл-аутов до конца партии, когда вся оценка отдана на откуп глюкавой нейросети.
  15. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    570
    Симпатии:
    256
    Репутация:
    7
    Оффлайн
    Отказ от ролл-аутов полностью оправдан. Ролл-ауты это крайне нерациональное использование ресурсов. А глюки поправить надо и проблема решится. Просто болезнь роста.

    Походу закат переборных движков не за горами. Ежели с такими багами Лила на равных с топами играет, то что будет когда ее доведут до ума.
  16. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    8.527
    Симпатии:
    1.815
    Репутация:
    78
    Адрес:
    Москва
    Оффлайн
    Нейросети - тот же самый переборный брут-форс, только в профиль (и ты, Брут...)
    Будущее за гибридными схемами.
  17. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    570
    Симпатии:
    256
    Репутация:
    7
    Оффлайн
    А что гибридность может дать? Кому верить при расхождении переборной и нейронной оценки?
  18. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    8.527
    Симпатии:
    1.815
    Репутация:
    78
    Адрес:
    Москва
    Оффлайн
    Тому, на кого покажет арбитр - отдельная нейросеть, натасканная на различение типов позиции.
  19. KEV81 Учаcтник

    • Участник
    Рег.:
    06.03.2017
    Сообщения:
    529
    Симпатии:
    130
    Репутация:
    1
    Оффлайн
    Что вы все заладились " переборный движок"? Лила тоже переборная.
  20. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    570
    Симпатии:
    256
    Репутация:
    7
    Оффлайн
    Согласен. Лучше термин "алгоритмический движок" использовать.
  21. Sergey1983 Учаcтник

    • Участник
    Рег.:
    03.04.2018
    Сообщения:
    124
    Симпатии:
    14
    Репутация:
    1
    Оффлайн
    А как тренировать арбитра?Тут даже человек не скажет где какой тип позиции(ИМХО), а вы хотите нейросеть натренировать.Кроме того использование двух нейросетей может существенно замедлить движок.
    Undying нравится это.
  22. Kesandr Учаcтник

    • Участник
    Рег.:
    02.09.2008
    Сообщения:
    385
    Симпатии:
    12
    Репутация:
    11
    Оффлайн
    Напоминает ситуацию когда первая рыбка имела много багов в ендшпиле но громила все топовие движки своего времени.
  23. Rom Учаcтник

    • Участник
    Рег.:
    12.02.2012
    Сообщения:
    485
    Симпатии:
    173
    Репутация:
    21
    Оффлайн
    Роллауты можно попробовать заменить на ФВ (QS). Кстати, если кого интересуют гибридные проекты, то стоит присмотреться к проекту Scorpio:
    https://sites.google.com/site/dshawul/
    https://github.com/dshawul/Scorpio/releases
    WinPooh нравится это.
  24. Mustitz Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    30.09.2006
    Сообщения:
    2.783
    Симпатии:
    254
    Репутация:
    18
    Адрес:
    Киев
    Оффлайн
    Лучше «движок, основанный на Alpha-Beta переборе». В отличие от «движок, основанный на MCTS переборе» :)
  25. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    570
    Симпатии:
    256
    Репутация:
    7
    Оффлайн
    Речь о различии нейронного и алгоритмического подхода. Причем здесь Альфа-Бета и MCTS? Это ортогональные вещи.
  26. Mustitz Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    30.09.2006
    Сообщения:
    2.783
    Симпатии:
    254
    Репутация:
    18
    Адрес:
    Киев
    Оффлайн
    Дык сейчас вроде используются две нейросети? Одна выбирает ходы-кандидаты, другая возвращает оценку позиции :)
    --- добавлено: 21 сен 2018 ---
    Ну... субъективно по стилю Komodo MCTS близок по стилю к Leela: та же агрессивная игра без большой привязки к материалу.
    --- добавлено: 21 сен 2018, опубликовано: 21 сен 2018 ---
    Нейросеть может просто использовать информацию от переборного движка и сама решать. Либо использовать некоторые эвристики из Alpha-Beta для принудительного включения веток. И т. д. и т. п. Вариаинтов решения проблемм масса.
    --- добавлено: 21 сен 2018 ---
    Элементарно — пробуем оба варианта в данной позиции, наигрываем партии и смотрим, что сработало лучше. Эти данные используем для обучения.
  27. Sergey1983 Учаcтник

    • Участник
    Рег.:
    03.04.2018
    Сообщения:
    124
    Симпатии:
    14
    Репутация:
    1
    Оффлайн
    Одна игра это десятки позиций разыграть каждую это десятки игр в каждой опять же десятки позиций....
    Это дерево с почти бесконечным числом вариантов, кроме того где гарантия что арбитр будет качественно оценивать позиции, а не повторится история с текущей LCZero.
  28. Rom Учаcтник

    • Участник
    Рег.:
    12.02.2012
    Сообщения:
    485
    Симпатии:
    173
    Репутация:
    21
    Оффлайн
    Используется одна нейросеть, которая работает на два выхода - оценку и ходы.
    Undying нравится это.
  29. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    8.527
    Симпатии:
    1.815
    Репутация:
    78
    Адрес:
    Москва
    Оффлайн
    Ну, эта не громит. Эта с топами ничьи штампует, одну за другой.
  30. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    8.527
    Симпатии:
    1.815
    Репутация:
    78
    Адрес:
    Москва
    Оффлайн
    Если заменить текущую версию на кентавра с простейшим правилом: "если на доске больше, чем 8 (10, 12...) фигур, то включать Лилу, иначе включать Стокфиш" - такая программа явно шла бы сейчас на более высоком месте, чем 3-4.
    А полную гарантию, как известно, может дать только страховой полис. Да и то не всегда.
  31. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    8.527
    Симпатии:
    1.815
    Репутация:
    78
    Адрес:
    Москва
    Оффлайн
    Кстати, уже ведутся работы по обучению специальной сети для эндшпиля:
    https://github.com/dkappe/leela-chess-weights/releases/tag/Ender38
    Когда её отладят, видимо, наступит этап "прививания" этих весов к основной сети. Слышал, что с нейросетями такие штуки можно делать.
    Я, правда, вижу концептуальное препятствие: десятки терабайт точных эндшпильных таблиц сжать в небольшую нейросеть не получится чисто по теории информации. Для эндшпиля надо менять не только (не столько) оценку, но и алгоритм поиска. Впрочем, не скажу, что этот путь 100% тупиковый, попробовать, конечно, стоит.
  32. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    570
    Симпатии:
    256
    Репутация:
    7
    Оффлайн
    Проще просто обучить Лилу малофигурным эндшпилям. После обучения они будут элементарны для нейронки.
    --- добавлено: 21 сен 2018 ---
    Движки второго эшелона уже громит. А штамповать ничьи с топами тоже неплохо для начала.
  33. Sergey1983 Учаcтник

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

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    8.527
    Симпатии:
    1.815
    Репутация:
    78
    Адрес:
    Москва
    Оффлайн
    С движками Ethereal и Andscacs счёт пока тоже равный. Это какого эшелона движки - первого, второго, полуторного?
  35. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    8.527
    Симпатии:
    1.815
    Репутация:
    78
    Адрес:
    Москва
    Оффлайн
    Так в том-то и дело, что не для всех эндшпилей можно сформулировать чёткие правила. Простейший пример - ферзь против ладьи. Из брошюры Авербаха для начинающих все знают правила: отгоняйте ладью от короля, загоняйте короля в угол, угрожайте матом и вилкой. А на практике против компа, да ещё в блиц, эти правила вдруг не помогают. Потому что надо конкретику и знать, и считать. В более сложных окончаниях вообще наступает полный хаос.


    Мат в 72 хода. Выигрывает 1. Kh7, все остальные ходы - ничья.


    Мат в 262 хода.

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