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

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

  1. Polarity Новичок

    • Новичок
    Рег.:
    23.04.2018
    Сообщения:
    70
    Симпатии:
    16
    Репутация:
    0
    Оффлайн
    Всё-таки это выход. Прочитайте внимательнее, про возможные ходы в input-е ничего не сказано.
    Undying нравится это.
  2. Mustitz Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    30.09.2006
    Сообщения:
    2.885
    Симпатии:
    323
    Репутация:
    21
    Адрес:
    Киев
    Оффлайн
    Меня больше всего смущает тот факт, что при таком задании позиции у нас одному входу может соответствовать несколько одинаковых позиций: что стоит заблокированная пешка, что отсутствует...



    Тут белую пешку c4 можно снять, можно оставить — список возможных ходов никак не измениться.
    Undying нравится это.
  3. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    788
    Симпатии:
    326
    Репутация:
    8
    Оффлайн
    Подраздел, из которого взята цитата, начинается со слов: "The input to the neural network..." Input это что по-вашему? Вход или выход?
    --- добавлено: 21 дек 2018 ---
    Хороший вопрос. :) Вероятно потенциальные возможные ходы задают. С учетом рентгенов. То есть для клетки c4 в слое отвечающем на ход вперед на одну клетку будет стоять единица. А отличать реально возможные ходы от потенциальных нейронка сама учится.
  4. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    788
    Симпатии:
    326
    Репутация:
    8
    Оффлайн
    А может вы и правы. Начинается подраздел:
    То есть тут и о входе и о выходе идет речь. И цитата похоже к выходу относится.
  5. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    788
    Симпатии:
    326
    Репутация:
    8
    Оффлайн
    Тогда я всё неправильно понимал. На входе именно шахматная позиция. Для каждой клетки 12 слоев указывают наличие фигуры (белая пешка, белый конь, белая ладья и т.д.). А как фигуры ходят нейронка сама учится.

    Тогда идея с белопольным и чернопольным слоном легко реализуется. Просто количество слоев на входе для клетки увеличится с 12 до 14.
  6. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    788
    Симпатии:
    326
    Репутация:
    8
    Оффлайн
    В Альфа Зеро выход задает все потенциально возможные ходы для всех фигур в шахматах. Шахматы игра простая, поэтому это всего 73 хода для каждой клетки. Для сравнения возьмем современную пошаговую игру с очками действиями Battle Brothers. У лучника есть способность быстрый выстрел на 6 клеток. Только эта способность даст нам порядка 168 возможных ходов. Кроме этого лучник может применить эту способность дважды за ход, а может сходить на 1 или 2 клетки и потом один раз выстрелить. То есть уже получается 20 (потенциально можно выстрелить один раз с 19 клеток плюс с исходной клетки можно выстрелить дважды) * 168 = 3360 возможных хода. И это только одна способность одного юнита. А юнитов в игре десятки и у каждого юнита способностей может быть много. А чтобы жизнь медом не казалось. Еще есть прокачка, например, прокаченный лучник стреляет уже не на 6, а на 7 клеток. И есть местность, например, каждая единица разницы в высоте стрелка и цели изменяет дальность выстрела на единицу. Также размер поля там не 8 на 8, а скажем 50 на 50.

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

    • Заслуженный
    • Участник
    Рег.:
    30.09.2006
    Сообщения:
    2.885
    Симпатии:
    323
    Репутация:
    21
    Адрес:
    Киев
    Оффлайн
    Ну а в чём проблема делать один небольшой ход? Если лучник не потратил свои ходы действий — ход возвращается к нам.
  8. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    788
    Симпатии:
    326
    Репутация:
    8
    Оффлайн
    Можно попробовать. Таким способом хотя бы от комбинаторики избавляемся. Но все равно вместо 73 возможных ходов получаются по меньшей мере многие тысячи. Подход Альфа Зеро очень плохо масштабируется.
  9. NeoNeuro Учаcтник

    • Участник
    Рег.:
    17.02.2013
    Сообщения:
    556
    Симпатии:
    159
    Репутация:
    34
    Оффлайн
    Именно так - да, будет работать.Здесь есть одно принципиальное НО - если для ВСЕХ единиц была начальная выборка. "Догадаться" применять эту логику для других входов нейронка не сможет. Аналогично - если дать ИНС все возможные ходы ладьёй - она их выучит. а на стоклеточной доске уже не сможет ходить.

    Видимо, именно так и происходит. И чем меньше информации о том, как "внешним образом" приходят ходы, тем больше "крутости" у этого алгоритма.

    :good:
  10. Strat7 Учаcтник

    • Участник
    Рег.:
    06.05.2017
    Сообщения:
    246
    Симпатии:
    116
    Репутация:
    5
    Оффлайн
    В чем смысл такого притянутого за уши определения? Во-первых на 100 клеточной сетка сможет ходить, просто наверняка ходы будут не далее + 7 клеток и то не факт. Во-вторых, а кого собственно волнует сетка наученная на 64 клетки и как она будет работать на 100 клетках? Для точных работ делают точные инструменты, которые наилучшим образом делают свою задачу, но глупо требовать от них идеальной работы в других областях. Мелкая пила перепилит любые мелкие сучки и доски без особого труда и ею удобно работать, но пилить ею толстенный дуб - можно, но глупо, нормальные люди берут мощную бензо или какую там подходящую.
  11. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    788
    Симпатии:
    326
    Репутация:
    8
    Оффлайн
    Нет. Это я был не прав. На входе у Альфа Зеро просто шахматная позиция. Ходить фигурами она сама учится.

    Правильно. На стоклеточной доске Альфа Зеро ходить ладьей не сможет. У нее нет логики.
    --- добавлено: 22 дек 2018, опубликовано: 22 дек 2018 ---
    На стоклеточной не сможет ходить. Под стоклеточную доску нужно будет размер матриц на входе и выходе менять. И это большая проблема на самом деле. Это означает, что изменение внешних условий требует перестройки нейронной сети и переобучения. А реальный мир в отличие от шахмат изменчив.

    Кстати, интересный вопрос насчет шахмат Фишера. Насколько сложно научить Лилу делать рокировку согласно правилам Фишера? Если взять уже обученную версию нейронной сети, то ее достаточно немного дообучить или все сложнее?
  12. Mustitz Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    30.09.2006
    Сообщения:
    2.885
    Симпатии:
    323
    Репутация:
    21
    Адрес:
    Киев
    Оффлайн
    Надо просто поправить генератор ходов, чтобы рокировка считалась допустимым ходом и выполнялась по правилам. А играть Lc0 сможет даже со старой сетью. Только слабее потому при обучении многие типы позиций просто не возникали, так что не мешало бы дообучить. Кто-то проводил эксперимент, когда просто в начальной расстановке поменял местами слонов и коней. Сила игры Lc0 упала сразу на 100-150 пунктов.
  13. NeoNeuro Учаcтник

    • Участник
    Рег.:
    17.02.2013
    Сообщения:
    556
    Симпатии:
    159
    Репутация:
    34
    Оффлайн
    AlphaZero считает варианты? На сколько ходов?
    SKY нравится это.
  14. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    8.784
    Симпатии:
    2.012
    Репутация:
    84
    Адрес:
    Москва
    Оффлайн
    А для вас это новость?
    Аббревиатура MCTS вам что-нибудь говорит?
  15. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    8.784
    Симпатии:
    2.012
    Репутация:
    84
    Адрес:
    Москва
    Оффлайн
  16. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    788
    Симпатии:
    326
    Репутация:
    8
    Оффлайн
    Мы же только что установили, что в Альфа Зеро нет генератора ходов. Ходы делает самая нейронка. Нынешняя версия в шахматах Фишера вообще рокировать не будет. Что на самом деле логично, мы же ей никак не объяснили, что правила изменились. А интересно насколько полностью обученная сеть воприимчива к дообучению при изменении внешних условий.
  17. Mustitz Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    30.09.2006
    Сообщения:
    2.885
    Симпатии:
    323
    Репутация:
    21
    Адрес:
    Киев
    Оффлайн
    Почему нет? На входе позиция, на выходе некоторые коэффициенты по одному на каждый из возможных ходов. А уже генератор ходов берёт только те выходы, которые отвечают легальным ходам.
  18. Jadn Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    10.05.2006
    Сообщения:
    2.987
    Симпатии:
    784
    Репутация:
    28
    Оффлайн
    Что в шахматах, что в реальном мире позиции (внешняя обстановка) меняются, а правила (законы природы) остаются неизменными. Реальный мир только сложнее.
  19. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    788
    Симпатии:
    326
    Репутация:
    8
    Оффлайн
    Так с точки зрения нейронки обученной на классических шахматах рокировка по правилам шахмат Фишера это невозможный ход. Соответственно коэффициент там будет около нулевой. Генератор ходов (правильнее назвать его проверяльщик валидности ходов) ничем здесь помочь не может.
  20. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    8.784
    Симпатии:
    2.012
    Репутация:
    84
    Адрес:
    Москва
    Оффлайн
    Причём даже не на порядки сложнее, а по классу мощности, как алеф-один супротив алеф-ноль.
  21. SKY Новичок

    • Новичок
    Рег.:
    05.11.2018
    Сообщения:
    33
    Симпатии:
    1
    Репутация:
    0
    Оффлайн
    Что в мире шахмат,а он тоже относится к реальности,что в мире вообще один единственный закон,-побеждает сильнейший и это неизменно))
  22. Jadn Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    10.05.2006
    Сообщения:
    2.987
    Симпатии:
    784
    Репутация:
    28
    Оффлайн
    Ну, на самом деле, это еще большой вопрос, есть ли в природе настоящая бесконечность, не говоря уже о действительных числах. Другое дело, что в шахматах вообще никакой бесконечности нет, так что да, разница большая. Тем не менее, и в реальном мире подход НС может работать, и это уже проверено.
  23. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    8.784
    Симпатии:
    2.012
    Репутация:
    84
    Адрес:
    Москва
    Оффлайн
    Если правило 50 ходов отменить, бесконечность в шахматах очень даже появляется (можно построить последовательность позиций и ходов, при разыгрывании кодирующих натуральные числа). Хотя само число позиций конечно.
  24. Jadn Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    10.05.2006
    Сообщения:
    2.987
    Симпатии:
    784
    Репутация:
    28
    Оффлайн
    Ютуб мне как-то подсунул видео, где люди изучали шахматы на бесконечной доске.

    Там возможен проигрыш в бесконечное число ходов. даже не обязательно счетное.
    Alexander и WinPooh нравится это.
  25. Alexander Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    12.02.2006
    Сообщения:
    1.908
    Симпатии:
    92
    Репутация:
    7
    Оффлайн
    А как это - выигрыш в несчетное число ходов?
  26. Mustitz Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    30.09.2006
    Сообщения:
    2.885
    Симпатии:
    323
    Репутация:
    21
    Адрес:
    Киев
    Оффлайн
    Для выигрыша надо счётое количество раз повторить счётное число ходов.
  27. tiger Новичок

    • Новичок
    Рег.:
    11.02.2006
    Сообщения:
    65
    Симпатии:
    17
    Репутация:
    0
    Оффлайн
    Это все равно будет счетное множество.
  28. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    8.784
    Симпатии:
    2.012
    Репутация:
    84
    Адрес:
    Москва
    Оффлайн
    Ну да. Что-то такого типа:

    1 2 4 7
    3 5 8
    6 9
    10...

    По каждой из осей натуральный ряд, а их декартово произведение занумеровываем диагональной "штриховкой".
  29. Jadn Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    10.05.2006
    Сообщения:
    2.987
    Симпатии:
    784
    Репутация:
    28
    Оффлайн
    Согласен, я давно смотрел, и подзабыл, чего они там рассказывали.
  30. tiger Новичок

    • Новичок
    Рег.:
    11.02.2006
    Сообщения:
    65
    Симпатии:
    17
    Репутация:
    0
    Оффлайн
    Нейронные сети - это такой симметричный эквивалент Matlab(а) или R. Matlab создает у прикладного математика иллюзию, что он пишет код - нейронные сети создают у программиста иллюзию, что он занимается серьезной статистикой и анализом данных.
  31. Alexander Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    12.02.2006
    Сообщения:
    1.908
    Симпатии:
    92
    Репутация:
    7
    Оффлайн
    Это да, но дело даже не в этом.
    Если из начальной позиции можно попасть в остальные за конечное число ходов, то множество всех позиций не более, чем счетное
  32. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    476
    Симпатии:
    70
    Репутация:
    3
    Оффлайн
    Победа Leela Chess Zero 32214 над Stockfish от 18 Деукабря 2018 года.

    Железо: AMD 2990x (32 cores) против Nvidia GeForce 1x2080+1x1080Ti
    Контроль: 5'+2"

  33. Alhimik88 Новичок

    • Новичок
    Рег.:
    10.06.2009
    Сообщения:
    37
    Симпатии:
    7
    Репутация:
    0
    Оффлайн
    Тут стоит поправить. Данная партия проходила на стриме Edosani. Там Stockfish запустился на 1-м ядре, так что получилась не совсем честная победа.
  34. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    476
    Симпатии:
    70
    Репутация:
    3
    Оффлайн
    На одном разве? По-моему, скорость там очень приличная была. Если бы на одном, там вообще разнос бы был. Похоже, всё-таки на всех видах играл Stockfish.
    --- добавлено: 25 дек 2018 ---
    Alhimik88, я сейчас зашёл, у Houdini там скорость за 50 мегаузлов. Ну какое одно ядро-то?)
  35. Alhimik88 Новичок

    • Новичок
    Рег.:
    10.06.2009
    Сообщения:
    37
    Симпатии:
    7
    Репутация:
    0
    Оффлайн
    Это недавняя победа, верно, несколько часов назад? После победы над Стокфишом читал чат, там писали, что иногда движок может некорректно подгрузиться и задействовать не все ядра, а всего-лишь одно. Но, признаюсь, не знаю точно эта партия, или нет, саму игру пропустил. Однако, вероятность очень большая.

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