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

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

  1. Undying Учаcтник

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

    И речь не о том, чтобы с нуля обучать нейронку на играх с переборными движками. Предлагается взять допустим нынешнюю версию Лилы и дообучить ее на играх со Стокфишем и другими топовыми движками.
  2. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    649
    Симпатии:
    120
    Репутация:
    3
    Оффлайн
    Кстати, LCZero будет играть лучше во 2-м этапе CCCC, т. к. отключили Ponder и не будет усиления движков в игре против Lc0 из-за Hyperthreading. До этого движки имели больший NPS при игре против LC0, сейчас все одинаково. Так что и 3-е, и 2-е место Lc0 может занять :)
  3. Sergey1983 Учаcтник

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

    P.S. Насколько я понял обучение нейронки идёт за счёт того что с одной стороны идёт движком не глядящем вперёд и глядящем на несколько ходов вперёд(с той-же нейронкой) таким образом новая нейронка как бы глядит вперёд без анализа на несколько ходов вперёд движком.Если тренировать по вашей методике то когда нейронка достигнет уровня переборного движка её придётся тренировать по старой вот только она к этому времени может попасть в какой нибудь локальный экстремум(из-за неправильной тренировки или возникнет другая проблема) из которого её будет вытянуть довольно сложно. ИМХО
  4. Sergey1983 Учаcтник

    • Участник
    Рег.:
    03.04.2018
    Сообщения:
    126
    Симпатии:
    14
    Репутация:
    1
    Оффлайн
    И ещё как я понял сеть именно запоминает выигрышные приёмы в разных позициях и потом интерполирует/экстраполирует эти приёмы на другие подобные позиции так что если её обучать переборным движком она начнёт использовать приёмы Stockfish/Houdini/Komodo, хотя вроде разработчикам также интересна чистота эксперимента, научить движок на играх с самим собой.
  5. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.490
    Симпатии:
    3.104
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Второе - не сможет. Для этого надо обыграть кого-то из первой тройки. А имеющаяся статистика - 12 ничьих подряд - говорит за то, что Лила на это не способна.
  6. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    649
    Симпатии:
    120
    Репутация:
    3
    Оффлайн
    WinPooh, выборка очень маленькая. А так, Lc0 добилась выигранной позиции против SF и получила небольшой перевес против H черными
  7. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.490
    Симпатии:
    3.104
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Вернёмся к этой теме через пару-тройку кругов.
    sovaz1997 нравится это.
  8. Undying Учаcтник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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