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

Discussion in 'Машинное отделение' started by grizly, 6 Dec 2017.

  1. Undying Учаcтник

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

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

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

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

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

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

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

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

    • Команда форума
    Member Since:
    13.02.2006
    Message Count:
    9.494
    Likes Received:
    3.126
    Репутация:
    95
    Location:
    Москва
    Оффлайн
    Вернёмся к этой теме через пару-тройку кругов.
    sovaz1997 likes this.
  8. Undying Учаcтник

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

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

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

    • Заслуженный
    • Участник
    • Старожил
    Member Since:
    30.09.2006
    Message Count:
    3.547
    Likes Received:
    1.299
    Репутация:
    37
    Location:
    Киев
    Оффлайн
    Ну... в шахматах ситуацич может быть другой —- игра современных программ тоже на пару голов превосходит человека.
  10. Undying Учаcтник

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

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

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

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

    • Заслуженный
    • Участник
    • Старожил
    Member Since:
    30.09.2006
    Message Count:
    3.547
    Likes Received:
    1.299
    Репутация:
    37
    Location:
    Киев
    Оффлайн
    Ещё перспективнее с начала использовать Syzygy — зачем тратить ресурсы нейросети на то, что уже посчитано со 100% точностью? Соответственно увеличится сила игры в окончаниях в наигрывании, отсюда вырастет сила игры в окончаниях.
    —- добавлено: 20 Sep 2018, опубликовано: 20 Sep 2018 —-
    Ну... основная идея в том, чтобы получить метод, которые был бы применим к разным играм, не только к шахматам. Но, как показывает практика, всё равно приходится добавлять чисто шахматные эвристики — оценку позиции, и т. п...

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

    • Команда форума
    Member Since:
    13.02.2006
    Message Count:
    9.494
    Likes Received:
    3.126
    Репутация:
    95
    Location:
    Москва
    Оффлайн
    Это зависит от поставленных целей. Лила начиналась как исследовательский проект, с идеей выжать максимум из игры с самой собой без привлечения каких-то сторонних источников.
  15. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Member Since:
    30.09.2006
    Message Count:
    3.547
    Likes Received:
    1.299
    Репутация:
    37
    Location:
    Киев
    Оффлайн
  16. Undying Учаcтник

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

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

    • Заслуженный
    • Участник
    • Старожил
    Member Since:
    30.09.2006
    Message Count:
    3.547
    Likes Received:
    1.299
    Репутация:
    37
    Location:
    Киев
    Оффлайн
    Судя по моим шашкам, это эчень сильно помогает MCTS. Во-первых, увеличивается точность оценки при доигрывании. Во-вторых, перебирается больше вариантов.
  18. Undying Учаcтник

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

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

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

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

    • Команда форума
    Member Since:
    13.02.2006
    Message Count:
    9.494
    Likes Received:
    3.126
    Репутация:
    95
    Location:
    Москва
    Оффлайн
    Это ещё и цена отказа от ролл-аутов до конца партии, когда вся оценка отдана на откуп глюкавой нейросети.
  22. Undying Учаcтник

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

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

    • Команда форума
    Member Since:
    13.02.2006
    Message Count:
    9.494
    Likes Received:
    3.126
    Репутация:
    95
    Location:
    Москва
    Оффлайн
    Нейросети - тот же самый переборный брут-форс, только в профиль (и ты, Брут...)
    Будущее за гибридными схемами.
  24. Undying Учаcтник

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

    • Команда форума
    Member Since:
    13.02.2006
    Message Count:
    9.494
    Likes Received:
    3.126
    Репутация:
    95
    Location:
    Москва
    Оффлайн
    Тому, на кого покажет арбитр - отдельная нейросеть, натасканная на различение типов позиции.
  26. Undying Учаcтник

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

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

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

    • Участник
    • Старожил
    Member Since:
    12.02.2012
    Message Count:
    645
    Likes Received:
    276
    Репутация:
    28
    Оффлайн
    Роллауты можно попробовать заменить на ФВ (QS). Кстати, если кого интересуют гибридные проекты, то стоит присмотреться к проекту Scorpio:
    https://sites.google.com/site/dshawul/
    https://github.com/dshawul/Scorpio/releases
    WinPooh likes this.
  30. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Member Since:
    30.09.2006
    Message Count:
    3.547
    Likes Received:
    1.299
    Репутация:
    37
    Location:
    Киев
    Оффлайн
    Лучше «движок, основанный на Alpha-Beta переборе». В отличие от «движок, основанный на MCTS переборе» :)
  31. Undying Учаcтник

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

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

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

    • Участник
    • Старожил
    Member Since:
    12.02.2012
    Message Count:
    645
    Likes Received:
    276
    Репутация:
    28
    Оффлайн
    Используется одна нейросеть, которая работает на два выхода - оценку и ходы.
    Undying likes this.
  35. WinPooh В.М.

    • Команда форума
    Member Since:
    13.02.2006
    Message Count:
    9.494
    Likes Received:
    3.126
    Репутация:
    95
    Location:
    Москва
    Оффлайн
    Ну, эта не громит. Эта с топами ничьи штампует, одну за другой.

Share This Page