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

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

  1. ZER
    Оффлайн

    ZER Начинающий

    Репутация:
    0
    Нельзя :) Точнее, СКОРЕЕ ВСЕГО нельзя. Сейчас есть очень много теорий, как работает мозг. И почти все теории утверждают, что общего в работе мозга и синтетической нейросети нет вообще. Разве что слово "нейрон" их объединяет. По одной из перспективных теорий - основной элемент мозга - это кортикальные колонны, которые запоминают одновременно всю семантическую информацию за всю жизнь. Каждая колонна - это контекст изменения этой информации. Расположение этих колонн друг относительно друга критично, этим определяется структура, но они расположены по всему объему мозга, что позволяет иметь голографическую память (удаляя часть мозга, мы не теряем информацию, а только теряем контекст восприятия). Объем памяти колонны от 300 до 500 мегабайт. Эта информация семантическая, сжатая. Передача сигналов волновая, кодирование идет нейромедиаторами, количество которых превышает два десятка... есть возбуждающие, есть стопорящие. В компьютерных моделях это сделать можно, и даже есть положительные результаты, но обсуждаемые здесь нейросети - это совершенно другое. Поэтому нет, мозг - это не нейросеть.
     
    Alhimik88, N1mTzo, Gridnev и 3 другим нравится это.
  2. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Я бы сказал что сравнить можно, кто же запретит сравнить? Вот в статье ведь сравнили! Но нет никаких гарантий что сравнение верное.
     
  3. Mustitz
    Оффлайн

    Mustitz баннер

    Репутация:
    37
    Да и считать можно по разному. Например, можно моделировать поведение каждой молекулы. А можно моделировать на уровне рецепторов и нейродедиаторов...

    Также мозг достаточно специализирован, можно моделировать только ту зону, которая отвечает за шахматы. А можно весь целиком со спинным мозгом...
     
  4. cesare
    Оффлайн

    cesare Учаcтник

    Репутация:
    5
    Мозг гораздо сложнее и мощнее нейросети. Проблема белкового шахматиста в том, что подключается сознание, которое чудовищно медленно и однопотоково. Это примерно как учиться ходить, сознательно контролируя каждую мышцу.
    Если бы для выживания человечеству требовалось играть в шахматы, стокфиш бы нервно курил в сторонке. Все решения принимались бы на подсознательном уровне и практически правильно.

    Могу предложить такой эксперимент - ребенку каждый день показывают 100500 случайных позиций с четкой оценкой. И так лет пять. Правила шахмат при этом даже объяснять не надо. А потом учим его правилам и сажаем играть с супергроссом.
     
    Последнее редактирование: 15 дек 2017
    sovaz1997 и Нестор нравится это.
  5. crem
    Оффлайн

    crem Учаcтник

    Репутация:
    14
    Интересно, что даже утверждение о том что alphazero "знало правила игры", не правда.

    На каждом шаге оно сообщает свою оценку по каждому ходу, в том числе и нелегальному, а уже внешний контроллер (а не нейросеть) отбирает из возможных ходов разрешённые.

    Точно также alphazero не знает цели игры, просто в процессе обучение ему сообщают что "в этой ситуации этот ход был легальным и в конце концов привёл к победе/поражению/ничьей", и больше вообще абсолютно ничего.

    Оно даже не знает изначально как ходят фигуры, то есть например не знает где окажется конь на следующем ходе если им походить, всё из наблюдений выясняет!

    (представляю как он удивляется когда впервые видит взятие на проходе :)) )
     
    Последнее редактирование: 15 дек 2017
    Любитель_, Gridnev и Undying нравится это.
  6. ZER
    Оффлайн

    ZER Начинающий

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

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Шахматная Альфа знает правила, как в обычном MCTS движке у него есть генератор ходов.
    НС правила знать и не надо, она занимается аппроксимацией. То есть некая функция от позиции. Которая должна возвращать оценку и некий вектор.
    У нас есть позиции, для которых мы знаем значение функции (не точно, примерно - есть шум). Этого достаточно.

    Правила не знает нейронная сеть (переборные алгоритмы правила знают) - но ей этого и не надо. Ровно так-же как ОФ в обычной программе не надо знать правила. Или сортировке ходов - сортировка ходов в шахматной программе тоже правила не знает. Но при этом вес каждому ходу выставить может.
     
    Gridnev нравится это.
  8. minga
    Оффлайн

    minga Новичок

    Репутация:
    1
    Что, Стокфиш работал на 64 потоках и имел в располяжении только 1 гиг хеш памяти? При таком сумбуре, когда 64 потока меняют данные в одном гигабайте, там мог накопиться мусор. Вот дали бы Стокфишу обычный компьютер на Core i7 и дали бы всего лишь одно ядро и один поток и дефолтную хеш память. Очень даже может быть, что результат тогда против альфы мог быть получше
     
    Локомотив и sovaz1997 нравится это.
  9. hornet
    Оффлайн

    hornet Учаcтник

    Репутация:
    536
    Так а в каком месте партии (в любой из проигранных) сток совершил ошибку?
     
  10. Комсюк
    Оффлайн

    Комсюк народный модератор баннер

    Репутация:
    1.282
    в любом месте любой партии одна неточность (не ошибка!) может привести к проигрышу в движковом матче

    Впрочем, с4 во французской тянет на ошибку, но то дебют такой
     
    Любитель_ нравится это.
  11. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    А вот интересно, если такой сетке подать нелегальный ход - например, ферзь как конь пошёл - она ему вес близкий к нулю выдаст, или вообще что-нибудь случайное?
     
  12. hornet
    Оффлайн

    hornet Учаcтник

    Репутация:
    536
    Я клоню к тому, что мы до сих пор не знаем который конкретно ход плохой ( как обычно бывало в анализах) :"... этот ход ошибка, этот ход ещё ошибка, а этот - решающая ошибка!" Мы не находим никакую ошибку - ни решающую, ни первую, ни вторую... Не слабо, да?O_o
     
    Undying нравится это.
  13. crem
    Оффлайн

    crem Учаcтник

    Репутация:
    14
    Случайное. Во время тренировки сети об этих ходах ничего не говорили, поэтому эти значения вообще не оптимизировались.

    Но если во время тренировки у всех нелегальных ходов ставить низкую оценку, то нейросеть и сама начнёт определять правильные ходы. Но это замедляет обучение безо всяких плюсов (за правилами всё равно следит что-то снаружи нейросети).
    И ещё минус в том, что если всё время тренировать редкие ходы (например, пытаться ферзем совершить "превращение пешки в коня со взятием по диагонали") как неправильные, то нейросеть натренируется что это плохой ход, и не будет пытаться его сделать даже когда он уместен.
     
    Alhimik88 нравится это.
  14. ZER
    Оффлайн

    ZER Начинающий

    Репутация:
    0
    Так ведь сетке не дают на вход ходы, а дают на вход историю позиций из 8 досок. А она сама выдает вектор ходов. При этом ходы ферзя, устроены так, что задается направление (одно из 8 возможных), и длина отрезка. Вроде бы так.
     
  15. Camon14
    Оффлайн

    Camon14 Хранитель традиций баннер

    Репутация:
    691
    если "неточность" ведет к поражению, то это не неточность, это решающая ошибка. неточность уменьшает оценку позиции, но не ведет к поражению в перспективе.
     
  16. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    Легальность рокировки историей из 8 ходов не проверишь, нужны все ходы с начала партии или битовые флаги в описании позиции.
     
  17. Комсюк
    Оффлайн

    Комсюк народный модератор баннер

    Репутация:
    1.282
    Вот вы бы (лично Вы) попробовали матч 6-ядерного (с хэшем 1 МБ) и одноядерного (с хэшем 16 ГБ) и нам рассказали
    И никаких "может быть" будет не надо
     
    Последнее редактирование: 15 дек 2017
  18. sovaz1997
    Оффлайн

    sovaz1997 Учаcтник

    Репутация:
    3
    У нас пока нет движков, которые могут провести полный анализ партии. Там будет что-то такое: Сначала мат в 15478 ходов черным, потом ничья, потом мат в 1258799 ходов белым. Тут будет понятно, кто какие ошибки делал. Мне больше интересно то, как сеть оценивала позицию до Rf8. Ничья ли там или выиграно? У меня в симуляции SF сделал ничью после хода Kf8, но что говорила сеть там, мы не знаем. Непонятно, почему в PGN нет информации о глубине и оценках позиции.
     
  19. Комсюк
    Оффлайн

    Комсюк народный модератор баннер

    Репутация:
    1.282
    не путайте с книжками докомпьютерной эры

    я же назвал с4
    Ты хоть одну партию видел?
     
  20. sovaz1997
    Оффлайн

    sovaz1997 Учаcтник

    Репутация:
    3
    Я проверяю рокировки битовой маской, у которой в начале партии единицы установлены в углах (ладьи) и там, где стоят короли. После хода битовая маска рокировки пересекается с масками короля и ладьи. Возможность рокировки проверяются 4-мя битовыми масками для всех типов рокировок.
     
  21. Комсюк
    Оффлайн

    Комсюк народный модератор баннер

    Репутация:
    1.282
    у тебя симуляция 10 секунд на ход... одинаковых движков (и не удивлюсь, если с одного экзешника) :)

    патамушта PGN сделана руками из статьи
     
  22. ZER
    Оффлайн

    ZER Начинающий

    Репутация:
    0
    В позиции A0 содержит поля о рокировках.
    Colour - чей ход
    Total move count - всего ходов
    P1 castling 2 - рокировки одной стороны
    P2 castling 2 - рокировки другой
    No-progress count - ну и для правила 50[/QUOTE]
     
  23. crem
    Оффлайн

    crem Учаcтник

    Репутация:
    14
    Да, на вход нейросети ходы-кандидаты не передаются.
    Есть две сети, обоим на вход подаётся текущая позиция (с историей на 8 полуходов).

    Первая выдаёт свою оценку "перспективности" (вероятности, что так надо ходить) каждому из 4672 ходов.
    Вторая выдаёт вероятность победы/ничьей/поражения для позиции.

    Первая используется для выбора, какой из узлов дерева продлить.
    Вторая используется для оценки ситуации после продления этого узла.

    Нейросети правил не знают, их знает только "контроллер" метода монте-карло, он не пытается продлить нелегальные ходы, какими бы "перспективными" эти ходы нейрость ни считала.
     
  24. Комсюк
    Оффлайн

    Комсюк народный модератор баннер

    Репутация:
    1.282
    а ты только недавно узнал, как ставить количество ядер...
    Сиди, не умничай :grabli:
     
  25. hornet
    Оффлайн

    hornet Учаcтник

    Репутация:
    536
    Не дерзи.
     
  26. sovaz1997
    Оффлайн

    sovaz1997 Учаcтник

    Репутация:
    3
    могу увеличить время на ход и поставить Komodo против SF здесь.
     
  27. Undying
    Оффлайн

    Undying Учаcтник

    Репутация:
    15
    Как таковой глубины у Альфа Зеро нет. Он же не сплошняком считает, а одни варианты просчитывает глубже, а другие совсем поверхностно. Что здесь глубиной считать? А вот оценки позиции, да, могли бы и опубликовать, было бы интересно.
     
  28. Комсюк
    Оффлайн

    Комсюк народный модератор баннер

    Репутация:
    1.282
    Соваз, ты какой пункт оспариваешь?
    Там не ничья или ход не Стока?
    Второе вроде ты не оспаривал сегодня... Так зачем тебе матч?
     
  29. redhelicopter
    Оффлайн

    redhelicopter Старожил

    Репутация:
    42
    Это не так: на глубоком анализе вылазят ошибки и неточности за SF и почти ничего не вылазит за А0.

    Тут многие напирают на то что такой анализ делается на SF, а потому неточен - однако если бы дело было в этом, многие ходы A0 обозначались бы как ошибочные. Как это происходит обычно, когда партии сильных движков анализируются более слабым.
     
    ШахматыЭтоДиагноз нравится это.
  30. ZER
    Оффлайн

    ZER Начинающий

    Репутация:
    0
    А оценок позиций тоже нет. Есть выходной вектор ходов с вероятностями. Где больше - туды ходим.
     
  31. sovaz1997
    Оффлайн

    sovaz1997 Учаcтник

    Репутация:
    3
    Мне интересно, ничья ли после Kf8.
    —- добавлено: 15 дек 2017 —-
    Да, оценку выдавать в процентах можно. Ну, хоть какая-то доп. информация должна быть.
     
  32. Комсюк
    Оффлайн

    Комсюк народный модератор баннер

    Репутация:
    1.282
    Насколько глубоком?

    вот анализ с Личесса
    то, что их Сток анализирует партию 1 минуту, позволяет отнести его к слабым

    [Event "AlphaZero-SF"]
    [Site "https://lichess.org/zbCOTavB"]
    [Date "2017.12.06"]
    [Round "?"]
    [White "AlphaZero"]
    [Black "Stockfish8"]
    [Result "1-0"]
    [ECO "E17"]
    [Annotator "lichess.org"]
    [PlyCount "111"]
    [EventDate "2017.??.??"]

    1. Nf3 Nf6 2. d4 e6 3. c4 b6 4. g3 Bb7 5. Bg2 Be7 6. O-O O-O 7. d5 exd5 8. Nh4
    {E17 Queen's Indian Defense: Classical Variation, Polugaevsky Gambit} c6 9.
    cxd5 Nxd5 10. Nf5 Nc7 11. e4 d5 12. exd5 Nxd5 13. Nc3 Nxc3 14. Qg4 g6 15. Nh6+
    Kg7 16. bxc3 Bc8 17. Qf4 Qd6 18. Qa4 g5 19. Re1 Kxh6 20. h4 f6 21. Be3 $6 {
    (-0.64 в()/^ -1.48) Inaccuracy. Best move was Rxe7.} (21. Rxe7 Qxe7 22. Ba3 c5
    23. Bxa8 Bf5 24. Bg2 Rd8 25. hxg5+ fxg5 26. Bc1 Kg7 27. Be3 h6) 21... Bf5 $2 {
    (-1.48 в()/^ -0.25) Mistake. Best move was Kg7.} (21... Kg7 22. Rad1 Qe6 23.
    Bxg5 Qf7 24. Be3 b5 25. Qe4 a5 26. a4 bxa4 27. Qxa4 Re8 28. Bf1) 22. Rad1 Qa3
    $6 {(-0.61 в()/^ 0.00) Inaccuracy. Best move was Qc7.} (22... Qc7 23. Be4) 23.
    Qc4 b5 24. hxg5+ fxg5 25. Qh4+ Kg6 26. Qh1 Kg7 27. Be4 Bg6 28. Bxg6 hxg6 29.
    Qh3 Bf6 30. Kg2 Qxa2 31. Rh1 Qg8 32. c4 Re8 33. Bd4 $2 {
    (0.00 в()/^ -1.07) Mistake. Best move was Rd6.} (33. Rd6 bxc4 34. Qh6+ Kf7 35.
    Rxf6+ Kxf6 36. Qxg5+ Ke6 37. Rd1 Qf7 38. Qg4+ Qf5 39. Qxc4+ Ke7) 33... Bxd4 $2
    {(-1.07 в()/^ 0.00) Mistake. Best move was Rd8.} (33... Rd8 34. Bxf6+ Kxf6 35.
    cxb5 Rd5 36. Qg4 Nd7 37. Qf3+ Kg7 38. bxc6 Nf6 39. Rb1 Rf8 40. Rb7+) 34. Rxd4
    Rd8 $2 {(-0.24 в()/^ 1.59) Mistake. Best move was Re5.} (34... Re5 35. cxb5
    cxb5 36. Rd3 Re6 37. Qh6+ Kf7 38. Qxg5 Nc6 39. Rf3+ Ke8 40. Qxb5 Rb8 41. Qc5)
    35. Rxd8 Qxd8 36. Qe6 Nd7 37. Rd1 Nc5 38. Rxd8 Nxe6 39. Rxa8 Kf6 40. cxb5 cxb5
    41. Kf3 Nd4+ $6 {(1.29 в()/^ 2.10) Inaccuracy. Best move was Ke5.} (41... Ke5
    42. Ke3 Ng7 43. Rxa7 Nf5+ 44. Kd3 Kd5 45. Rb7 Nd6 46. Rb8 g4 47. Rg8 Nc4 48.
    Kc3) 42. Ke4 Nc6 43. Rc8 Ne7 $2 {(1.60 в()/^ 3.92) Mistake. Best move was Nb4.}
    (43... Nb4 44. Rc5) 44. Rb8 Nf5 $6 {
    (3.50 в()/^ 4.33) Inaccuracy. Best move was b4.} (44... b4 45. Rxb4) 45. g4 Nh6
    $2 {(3.92 в()/^ 4.98) Mistake. Best move was Nd6+.} (45... Nd6+ 46. Kd5 Nf7 47.
    Rxb5 Ne5 48. Rb4 Nf3 49. Ra4 Nh2 50. Ra6+ Kg7 51. Rxa7+ Kf6 52. Ra4) 46. f3 Nf7
    47. Ra8 Nd6+ 48. Kd5 Nc4 49. Rxa7 Ne3+ 50. Ke4 Nc4 51. Ra6+ Kg7 52. Rc6 Kf7 $6
    {(4.23 в()/^ 4.78) Inaccuracy. Best move was Nd2+.} (52... Nd2+ 53. Ke3 Nb1 54.
    Kd3 b4 55. Rb6 Nc3 56. Rxb4 Nd5 57. Rb5 Nf4+ 58. Ke3 Nh3 59. Ke4) 53. Rc5 Ke6
    $6 {(4.01 в()/^ 4.87) Inaccuracy. Best move was Kf6.} (53... Kf6 54. Rd5) 54.
    Rxg5 Kf6 55. Rc5 g5 56. Kd4 {Black resigns.} 1-0


    https://lichess.org/zbCOTavB#30

    коменты будут?
    —- добавлено: 15 дек 2017, опубликовано: 15 дек 2017 —-
    тебе Fruit сказал, что объективно проиграно
    Это знак качества :rtfm:
    Не надо гонять движки, это экспертное мнение
     
    Последнее редактирование: 15 дек 2017
    sovaz1997 нравится это.
  33. sovaz1997
    Оффлайн

    sovaz1997 Учаcтник

    Репутация:
    3
    Комсюк, У Fruit какое-то особенное понимание позиции? Мне просто интересно, какие есть основания считать ту позицию выигранной.
     
  34. Vladruss
    Оффлайн

    Vladruss НедоКМС, победитель второразрядников. баннер

    Репутация:
    537
    Это результат рандомности как следствие многоядерности. На одном ядре Сток находит правильный ход без всяких проблем.
    Где-то слышал прикол "Победил не приходя в сознание". Походу, здесь это именно тот самый случай.
    Нубы подбирали соперника. У ученых свои таракан* в голове.
     
    Локомотив нравится это.
  35. Комсюк
    Оффлайн

    Комсюк народный модератор баннер

    Репутация:
    1.282
    Найди свой пост с оценкой после ночного анализа

    да уж получше чем у голого Стока :)