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

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

  1. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    706
    Симпатии:
    311
    Репутация:
    8
    Онлайн
    Очевидно что человеческое мышление сложнейшая вещь. Кто с этим спорит? Но в нем можно выделить две уже достаточно понятные компоненты. Первое это алгоритмическое мышление - способность выполнить последовательный набор инструкций. Здесь все просто и давно на компьютерах реализовано. Второе это нейронное мышление. Здесь сложнее, но многое уже понятно и соответственно есть практические результаты по эмуляции нейронного мышления на компьютерах.

    Естественно этими компонентами человеческое мышление не исчерпывается. Из других компонент ключевыми выглядят две. Творческое мышление - способность создавать принципиально новые вещи. В частности самостоятельно формировать алгоритмы и нейронные сети для решения конкретной задачи (например, шахмат). И субъектное мышление - способность самостоятельно ставить цели и добиваться их достижения. Но с этими компонентами на текущий момент ничего не понятно, соответственно и эмулировать на компьютерах мы их не умеем.

    "Представление о шахматах вообще" это как раз выработанные алгоритмы и сформированные нейронные сети под конкретную задачу. Как человек использует представления о шахматах во время игры в целом понятно. Сочетание алгоритмического и нейронного мышления. Ничего магического в этом нет. И даже сэмулировать на компьютере это можно.

    А вот каким образом человек создает алгоритмы и нейронные сети для игры в шахматы и в дальнейшем улучшает их? Это вопрос, в котором ничего не ясно. И эмулировать это непонятно как.
  2. SkipperNorton Новичок

    • Новичок
    Рег.:
    04.05.2016
    Сообщения:
    39
    Симпатии:
    6
    Репутация:
    0
    Оффлайн
    Ага, типа давайте напишем сразу "программу "Программист" ".
    Чтобы нам самим не надо было изучать всю эту матчасть по нейросетям.
    А указать ей - "Изучи матчасть, и создай нейросеть, чтобы она обыграла и Альфа-Зеро, и Лилу и Стокфиша".
    И программа изучает, и создаёт .

    А ещё интереснее такую задачу ей указать "Покопайся в интернете, изучи все известные законы физики, там.. теорию относительности, квантовую теорию,
    стандартную Модель Вселенной", и открой новые, неизвестные нам законы физики. Чтобы например, мы могли черпать энергию вакуума.
    :)
  3. Mustitz Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    30.09.2006
    Сообщения:
    2.847
    Симпатии:
    309
    Репутация:
    21
    Адрес:
    Киев
    Онлайн
    1. Надо придумать алгоритм. Уже тут есть варианты. AlphaZero использует один алгоритм (там партии доигрываются до результата), LeelaZero другой (там доигрывание партии может оборваться, если нейросеть посчитает, что дальнейшее очевидно). Но там в основе лежит MCTS. Можно придумывать свои вариации MCTS, можно даже взять Alpha-Beta перебор, а можно просто выбор хода сразу же отдать на выбор нейросети. Можно исползовать гибридную схему, когда на ядрах работает Stockfish, и в зависимости от его оценок добавляются/удаляются статы в MCTS дереве, заставляя его включать alpha-beta рекомендации. Можно вообще придумать совместную работу кучи нейросетей, одна предлагает ходы, другая оценивает статистику их рассмотрения, третья настраивает метапараметры, ... Тут можно взять алгоритм LeelaZero как единственного OpenSource и перейти к пункту 3, если не хочется заморачиваться

    2. Нужно проанализировать алгоритм и определить, в каком месте там будет жить нейросеть. Например, для Alpha-beta на нейросеть можно навесить сортировку ходов и оценку позиции. Решение так себе, ибо тормознутое, скорее всего не взлетит, но как пример почему бы и нет? Для MCTS на входе может быть вероятность хода, который будет использоваться как ожидаемый результат в формуле UCB или какой другой. Ещё можно добавить достоверность оценки на выходе для того, чтобы производить окончание доигрывания. Фактически на вход MCTS приходит два параметра: число разыгрываний (достоверность оценки) и статистика. Тут теоретически можно предположить вариант, когда нейросеть будет возвращать оба варианта — например жертва Bxh7+ долже а иметь низкую оценку (чаще всего не проходит), но при этом низкую достоверность (но надо проверить, так что пусть MCTS будет включать его чаще в начале перебора).

    3. Далее, нужно определиться с арзхитетурой нейросети, и что подавать ей на вход... Можно голую позицию, можно подавать дополнительные факторы, которые легко вычислить, и которые могут быть полезными. Например, разноцветные слоны, мобильность фигур, сдвоенные пешки, два слона, шах, количество шахов, и т. п. Да, нейросеть может построить приближение этих параметров, но на это может быть израсхродовано много нейронов, что скажется на скорости, да сложность обучения в том числе. AlphaZero не использовали такой подход ввиду того, что им важнее был сам принцип — мы учимся играть в любую игру с нуля знаний. Хотя это тоже натянуто, потому что структура нейросети это тоже часть опыта. LeelaZero копировали AlphaZero, поэтому тоже там такого нет. Но вполне себе опция, заслуживающая внимания.

    4. Далее, нужно определиться, как собрать данные для обучения. По сути нам нужно иметь много значений вход—выход. Тут тоже простор для творчества. Можно опираться на статистику партий между собой, можно опираться на статистику партий с учителем, можно просто взять какие-то партии из базы (с коментариями, если человек упомянул ход, он заслуживает внимания). Иногда может возникать проблема, как эти данные получить. Например, если мы хотим ещё добавить на выход достоверность, то откуда её брать? Тут можно выбрать, например, выборку позиций с одинаковой структурой (кластеризовать автокодировщиком), и подобраться найти такие параметры MCTS, чтобы она для каждой позиции как можно точнее находила «сильнейший ход». Сильнейший ход в кавычках, потому то это чистая условность, и мы не можем его вычислить. Но, тестовая работа MCTS ограничена 1 минутой на ход, а лучший ход может быть результатом анализа позиции в течение часа с доигрыванием разными движками, ... Ну а дальше смотрим на дисперсию того или иного хода в базе, чем она выше — чем меньше достоверность. Это как вариант творческого полёта мысли.

    5. Собственно говоря само обучение нейросети и анализ результата.

    И на каждом шаге может быть джамп назад, если вдруг получен тупик (придумали красивую нейросеть, но не может молучить достоверные обучающие данные, и т. п.)
    svoitsl нравится это.
  4. Jadn Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    10.05.2006
    Сообщения:
    2.979
    Симпатии:
    741
    Репутация:
    28
    Оффлайн
    Товарищ всего лишь психолог.
    Это шутка? Там кроме воды ничего нет, обычная современная философская псевдонаучная вода.

    Если стоит цель усилить современные шахматные движки (не говоря уже о чем то большем), то подобных деятелей на пушечный выстрел нельзя подпускать. Они только все запутают.
    Undying нравится это.
  5. svoitsl Учаcтник

    • Участник
    Рег.:
    05.01.2018
    Сообщения:
    124
    Симпатии:
    18
    Репутация:
    1
    Оффлайн
    Ну раз так много простора, то почему же нельзя найти оптимальные параметры хотя бы метанастроек обучения на меньших сетях, а то получается, что сейчас никто не знает толком что получится из обучения, есть только надежда и вера,что может быть что то да получится.
    Потому что не может не получится.
  6. SkipperNorton Новичок

    • Новичок
    Рег.:
    04.05.2016
    Сообщения:
    39
    Симпатии:
    6
    Репутация:
    0
    Оффлайн
    :) абсолютно верное наблюдение.

    Дополнительный фактор - оценка Стокфишем ("учителем") ? А нейросеть к ней должна добавить некую свою оценку, которая улучшит эту оценку Стокфиша.
  7. SKY Новичок

    • Новичок
    Рег.:
    05.11.2018
    Сообщения:
    14
    Симпатии:
    1
    Репутация:
    0
    Оффлайн
    Пусть хотя бы научит людей букву "Р" выговаривать,а то ведь если ребенка не научили в детстве,то есть не направили,не указали верный алгоритм действий,то наш умный разумный ум с его мозгом не в силах никак и никогда потом(Будь он хоть самим Лениным))) таким способом управлять языком чтобы тот прижался к небу при выдохе,для извлечения звука "Р" )))))) Не говоря о детях маугли...
    Процент свободного мышления,то есть настоящего,не по программе практически равен нулю у человека,все привычки,инстинкты,собственные программы и воспитание,живого почти нет,просто более сложные программы и более сложное "железо"
  8. WinPooh В.М.

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

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    706
    Симпатии:
    311
    Репутация:
    8
    Онлайн
    У кого как. Отучайтесь верить в авторитеты и с саморазвитием в зрелом возрасте будет всё замечательно. Проблема, что нынешняя система воспитания и образования пытается сделать из человека винтика, ломая психику ребенка. Поэтому, став взрослым, преодолеть навязанные стереотипы сложно. Но с появлением интернета и это стало намного проще.
    WinPooh нравится это.
  10. Launder Новичок

    • Новичок
    Рег.:
    25.11.2016
    Сообщения:
    83
    Симпатии:
    21
    Репутация:
    1
    Оффлайн
    Ну, конечно, всё нужно решать исключительно техническими средствами. Понимать бы ещё ЧТО ИМЕННО решать... Впрочем о чём я, Вам, конечно, всё итак давно ясно...

    Если нейросеть УЖЕ научена и играет в силу АльфаЗироу, то оценка Стокфиша ей не очень-то нужна - ибо считать он и сам умеет не плохо. Но можно попробовать убить двух зайцев, дать ей проанализировать гроссмейстерскую базу, на предмет ошибок не точностей и тому подобное... Но, при этом, если не отключать ей возможность к обучения, может она оттуда какие-то идеи себе на вооружения возьмёт, заодно их усилив?
  11. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    706
    Симпатии:
    311
    Репутация:
    8
    Онлайн
    Разница в силе игры между гроссмейстером и нейронным движков в 700 пунктов рейтинга. Это примерно то же самое, что гроссмейстеру на партиях перворазрядника обучаться. В го пробовали нейронный движок на человеческих партиях обучать, самоообученному движку он проиграл с сухим счетом. Люди очень плохо играют в шахматы. Вот обучение на играх с алгоритмическим движком и на эндшпильных таблицах это интересные идеи.
  12. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    8.694
    Симпатии:
    1.942
    Репутация:
    82
    Адрес:
    Москва
    Оффлайн
    Мой движок обучается со случайных коэффициентов до 2700 на своих собственных партиях, разыгрываемых с фиксированной глубиной 3 полухода + ФВ. Это даже не первый разряд. Уровень человеческого гроссмейстера достигается за 40-50 тысяч партий.
    Правда, я обучаю не нейросеть, а классическую оценку с заранее заданными позиционными признаками. Тем не менее, опыт показывает, что можно научиться играть сильнее того, на чьих партиях учишься.
    Комсюк нравится это.
  13. Launder Новичок

    • Новичок
    Рег.:
    25.11.2016
    Сообщения:
    83
    Симпатии:
    21
    Репутация:
    1
    Оффлайн
    Undying, я всё-таки бы оставил тему "алгоритмичного мышления" у компьютера и человека и рассматривал их отдельно, как учить человека и как он думает - отдельно, как компьютер находит нужный вариант - отдельно. Я не думаю что мы пока, в состоянии, по-поводу человека выносить сколь бы ни было компетентные суждения, на уровне аналогии - да, и мы это делаем. Но вот что касается методологически грамотных суждений, то, мне кажется, эта тема - тёмный лес...
    Что же касается того, что люди плохо играют в шахматы - не знаю, я думаю, что лучшие представители людей, играют, иногда, очень даже не плохо. Проблема людей в том, что они играют с ошибками, и, устранить их, а также недосмотр, зевки, ну и, конечно, значительно увеличить точность и скорость счёта (хотя сам по себе счёт у людей и у компа, вероятно, совершенно разные процессы), так вот, понятных способов этого добиться, у нас, по-видимому, нет... Но, тем не менее, я слышал мнение, что бывают гроссы, которые, при своей огромной силе, не в состоянии обучить перворазрядника, и перворазрядники, которые, в общем и целом, могут вырастить гросса. Полагаю, что сила игры - это ещё не всё. Никто не отрицает её значимость. Поэтому я и говорю - сделать какую-то выборку партий, и дать нейросети возможность глубокого анализа, не обязательно для неё, для нас, чтоб мы посмотрели, что мы могли упустить. Нейросеть, в этом плане более эффективна, чем традиционные, движки, её "восприятия" спектра шахматных позиций более тонко, в большинстве позиций она "понимает", какие-то основные темы позиции, поэтому, с большей вероятностью, покажет не только ошибки, недосмотры, то есть, зарубит Ваш план на корню, но и возможно, покажет более точный путь реализации, что особенно ценно...
    Но, в тоже время, обращаю Ваше внимание, что нейросеть, не думает, в привычном понимании, и когда она видит схожесть позиции, она не разбирает позицию по котосточкам, как это делаем мы, насколько нам, конечно, это удаётся, и не строит зависимости, этого от того, не думает, как то, или иное преимущество, может сработать, и при каких обстоятельствах, а также при разборе не натыкается на неожиданные решения, посмотрев на позицию неожиданно с другой стороны, (что, впрочем, не мешает ей обнаружить какой-то не видимый изначально рисунок позиции, но можно ли этот процесс ставить в один ряд с творчеством - вопрос), или, когда разные обстоятельства позиции, у Вас вдруг сложились в какое-то целое и Вы заметили какую-то новую возможность или увидели как в новом свете старое обстоятельство может заработать новым способом и Вы находите новые ресурсы позиции, ну и так далее; она ищет определённые темы, схожие с данной позицией (закономерности, которые она вывела, во время своего обучения), и на основании этого, делает выводы о позиции и строит свои линии расчёта, так вот, она может обнаружить, что необычные и даже ошибочные человеческие паттерны, неожиданно могут оказаться успешными (то есть, вне зависимости от качества реализации, человек пошёл по пути, анализируя который, машина обнаружила для себя новую эффективную линию), и, возможно проведя некоторую доработку, и/или сделав какие-то обобщения, она может взять, обнаруженную обусловленность/тенденцию, себе на вооружение...
    Ещё раз повторю, я говорю о полностью обученной нейросети, играющей в силу АльфаЗироу, которую уже не так-то просто сбить столку непродуманными примерами. Она просто на раз найдёт им опровержение и всё.
  14. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    706
    Симпатии:
    311
    Репутация:
    8
    Онлайн
    Идея интересная. Нейронка гроссмейстера оценивает позицию лучше, чем нейронка Лилы. И опыт гроссмейстеров можно попробовать перенять по такой схеме. Берем полностью обученный нейронный движок. Загружаем в него позицию из гроссмейстерской партии. Доигрываем эту позицию до конца самим нейронным движком. Затем делаем в позиции ход сделанный в партии и снова доигрываем до конца. И так до конца партии. Не факт что результат будет хорошим, но попробовать точно стоит.
    Launder нравится это.
  15. Launder Новичок

    • Новичок
    Рег.:
    25.11.2016
    Сообщения:
    83
    Симпатии:
    21
    Репутация:
    1
    Оффлайн
    И, кстати, в творческих поисках человека, особенно на фоне напряжения, всегда есть определённая толика везения...
  16. KEV81 Учаcтник

    • Участник
    Рег.:
    06.03.2017
    Сообщения:
    610
    Симпатии:
    172
    Репутация:
    3
    Оффлайн
    Почему тогда гроссмейстер проигрывает?
  17. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    706
    Симпатии:
    311
    Репутация:
    8
    Онлайн
    Лила перебирает 30 тысяч позиций в секунду, а гроссмейстер в лучшем случае 1 позицию в секунду.
  18. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    706
    Симпатии:
    311
    Репутация:
    8
    Онлайн
    Потенциал алгоритмических движков намного выше чем 2700. Сколько мог бы ваш движок дать при оптимальном обучении? Скажем 3100. Эти 400 пунктов это как раз разница в понимании. По сути вы обучаете движок на уровне второго разряда. А затем увеличиваете его способности к счету на много порядков (с 3 полуходов до 20 полуходов). Естественно сила в сравнении с обучением возрастает. Но что это доказывает?
  19. Mustitz Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    30.09.2006
    Сообщения:
    2.847
    Симпатии:
    309
    Репутация:
    21
    Адрес:
    Киев
    Онлайн
    Этот фактор несложно уравнять — пусть гроссмейстер играет по переписке, а Leela думает 1 секунду. А вообще странно вводить термин «понимание» не определив, что это такое :)
    Комсюк нравится это.
  20. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    8.694
    Симпатии:
    1.942
    Репутация:
    82
    Адрес:
    Москва
    Оффлайн
    Я проводил и другой эксперимент: брал для обучения не собственные ультра-короткие партии движка, а коллекцию партий сильных движков с CCRL (несколько сотен тысяч). При той же процедуре обучения результат получается хуже.
  21. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    706
    Симпатии:
    311
    Репутация:
    8
    Онлайн
    Невозможно способности к счету уравнять. Человек в принципе не способен рассматривать даже тысячи позиций. У нас просто памяти для этого нет. По большому счету человек только форсажи считает. Все остальное он оценивает.

    Чтобы нейронка человека и нейронка Лилы были примерно в равных условиях, наоборот, нужно у Лилы отбирать способности к счету. Чтобы она в пределах сотни нод за ход считала.

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

    • Заслуженный
    • Участник
    Рег.:
    30.09.2006
    Сообщения:
    2.847
    Симпатии:
    309
    Репутация:
    21
    Адрес:
    Киев
    Онлайн
    Память можно добавить, например, разрешив пользоваться каким-нить инструментом а-ля scid. Опять же, если человек смотрим позицию в секунду, то час анализа это 3600 позиций, восемь часов дадут заветные 30k. Так что для докомпьютерного переписочника это вполне реальная цифра.

    Даже тут будет проблема — что считать нодой? В случае MCTS позиция может возникнуть в дереве, может быть позиция с полной статистикой доигрываний, а может просто появиться в rollout. И как это можно сравнить с нодами alpha-beta, где также каждая нода может быть в нескольких состояния. Ответ на этот вопрос будет чисто субъективным.

    Есть брать человека, то он уже разыгрывал похожие позиции, там перебрал миллион нод и запомнил этот результат. По-хорошему, это тоже надо добавить? Потому как поставь незнакомую позицию, и сила игры может упасть, вроде как перевес движков в шахматах Фишера более убедителен.
  23. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    706
    Симпатии:
    311
    Репутация:
    8
    Онлайн
    Во-первых, насчет позиции в секунду я польстил человеку. Реально человек в классику в среднем рассматривает несколько десятков позиций в ход. Когда надолго задумывается до сотни. В быстрые шахматы - в среднем десяток позиций.

    А во-вторых, главная проблема даже не в памяти. У человека нет простого критерия для сравнения двух позиций. У нейронного движка на выходе нейронки численная оценка. Поэтому сравнение двух позиций на лучше-хуже у него очень дешевое. А у человека это не так, сравнение двух позиций для нас сложная задача. Поэтому сколько времени не давай, человек все равно не может с большим количеством позиций работать.

    В MCTS по уму все ноды просмотренные при доигрывании надо добавлять к счетчику перебранных нод. Принципиально любой счет варианта это и есть доигрывание. А то что MCTS не может счет варианта оборвать и должен доигрывать его до конца, как раз свидетельствует о плохом понимании шахмат.

    Речь не о том, что понимание можно измерить идеально. Идеальная оценка никому и не нужна. Но оценить понимание можно достаточно точно для того, чтобы это было полезно.

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

    А в фишеровские шахматы с компом играть сложнее не столько из-за понимания, сколько из-за дебюта. В классические шахматы топовый гроссмейстер в дебюте играет на 3600 и только потом начинает играть на 2700. А в фишеровские шахматы он с первого хода играет на 2700.
  24. Mustitz Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    30.09.2006
    Сообщения:
    2.847
    Симпатии:
    309
    Репутация:
    21
    Адрес:
    Киев
    Онлайн
    Скорее в блиц, а какой-нить Накамура и в буллет :) Не говоря о том, что человек может думает над позицией даже без счёта вариантов, такая уж его особенность :)

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

    Может оборвать (LeelaZero). Просто задачу «увеличить понимание» обычно никто не решает, все увеличивают силу игры.

    Правильно, потому что человек играет партию не с нуля, а на прошлого анализа и просмотра миллиона позиций :)
  25. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    706
    Симпатии:
    311
    Репутация:
    8
    Онлайн
    У Альфа Зеро точно такая же численная оценка позиции как у Лилы (вероятность победы - ничьи - поражения). Это при обучении Альфа Зеро доигрывала партии до конца в отличие от Лилы.
    --- добавлено: 26 ноя 2018, опубликовано: 26 ноя 2018 ---
    Вообще применение MCTS в игре, а не при обучении это мертворожденная идея. Силу игры доигрывания до конца не увеличивают, зато сокращают количество полезного счета раз в 50. А учитывая, что удвоение счета увеличивает силу на 50 пунктов, то получается, что применяя MCTS вместо Альфа-Беты снижаем силу игры на 300 пунктов. По Комодо это прекрасно видно. Движок Альфа-Бета играет на 3400, движок MCTS на 3100.
  26. Mustitz Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    30.09.2006
    Сообщения:
    2.847
    Симпатии:
    309
    Репутация:
    21
    Адрес:
    Киев
    Онлайн
    У Leela нейросеть может оборвать руллаут, у AlphaZero нет. Соответственно, мы можем подать на вход нейросети Leela позицию и узнать её оценку, и мы не можем такое сделать для AlphaZero.

    Ну а вообще оценка понятие субъективное, часто оценка одной и той же позиции отличается даже у людей. Что считать эталоном? Имхо, список ходов-кандидатов куда более объективный критерий.

    Ну и я не знаю, используется ли MCTS при обучении, там вроде играет нейросеть + рандом (у Leela).
  27. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    706
    Симпатии:
    311
    Репутация:
    8
    Онлайн
    Откуда вы это взяли? В пресс-релизе об Альфа Зеро было прямо написано, что нейронка выдает для позиции вероятности победы, ничьи и поражения.

    Вы путаете обучение и игру. При обучении Альфа Зеро доигрывала партии до конца. А Лила, так как у ее разработчиков нет суперкомпьютера для обучения, экономила и при полной уверенности в победе партию заканчивала. Из-за этого в простых эндшпилях у Лилы до сих пор глюки бывают.
  28. Mustitz Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    30.09.2006
    Сообщения:
    2.847
    Симпатии:
    309
    Репутация:
    21
    Адрес:
    Киев
    Онлайн
    Во-первых, на вход нейросети подавалась позиция, и семь последних ходов и текущий ход. На выходе некоторое значение, которое интерпретировалось как вероятность. А по сути инициализация параметра для MCTS.

    Насчёт LeelaZero сейчас не могу скачать ничего, на старте партии доигрывались до конца. Сейчас да, обрываются при обучении. Но тут уже скорее всего танцы с бубном, пробуют разные стратегии обучения, ибо график роста силы не радует.
  29. crem Новичок

    • Новичок
    Рег.:
    24.11.2016
    Сообщения:
    95
    Симпатии:
    107
    Репутация:
    11
    Оффлайн
    AlphaZero игры при тренировке до конца не доигрывает. Вначале в LCZero это не было реализовано, а потом стало реализовано.
    Ни AlphaZero ни LCZero не делают rollouts в MCTS, ни при тренировке ни при игре.
    Первая версия AlphaGo делала ролауты в половине случаев, но потом это убрали.

    В целом известных различий между AlphaZero и LCZero нету (кроме технических деталей, например в LCZero новая сеть появляется каждые 30000 игр, а у AlphaZero было каждые 1000 и т д).
    Undying и Комсюк нравится это.
  30. Jadn Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    10.05.2006
    Сообщения:
    2.979
    Симпатии:
    741
    Репутация:
    28
    Оффлайн
    MCTS считает много лишнего, но иногда может заглянуть туда, куда А/Б в принципе не может. Я, когда еще играл в адванс, иногда использовал следующий прием. Например, есть позиция, в которой движки показывают равенство или небольшой перевес, типа +0.1. Но я чувствую, что в перспективе у черных могут быть проблемы. Устраиваю турнир из этой позы из нескольких движков. Если в итоге белые выигрывают 80-90% партий, это подтверждает мое мнение. Причем, часто бывало, что движки начинали что-то подозревать только через ~30ходов, т.е. на том расстоянии, куда с начальной позиции не досчитать.
    Я, кстати, подозреваю, что своеобразный стиль AZ/Лилы вызван в основном не нейронками, а именно MCTS. По идеи, это должно помогать в распознавании крепостей и вечного шаха (правда, непонятно, почему Лиле не помогает). Но да, в тактике проседает (при равном железе). Думаю, преимущество в комбинированных подходах.
    Undying нравится это.
  31. Mustitz Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    30.09.2006
    Сообщения:
    2.847
    Симпатии:
    309
    Репутация:
    21
    Адрес:
    Киев
    Онлайн
    Ну... MCTS по сути выбирает ход, после которого выше вероятность ошибкти соперника. А в случае когда ничья достигается единственными ходами, шаг влево, шаг вправо — проигрыш, что сказывается на статистике. Имхо, какой-нить MCTS поверх MCTS мог бы помочь (у нас два дерева MCTS, в первое попадают узлы как обычно, во второе попадают узлы, у которых у нас набралась некоторая статистика доигрываний)
  32. KEV81 Учаcтник

    • Участник
    Рег.:
    06.03.2017
    Сообщения:
    610
    Симпатии:
    172
    Репутация:
    3
    Оффлайн
    Стоп, у них оказывается один и тот же алгоритм? Перебор позиций?
    Ну тогда понятно почему компьютер побеждает...
  33. nn Учаcтник

    • Участник
    Рег.:
    25.03.2007
    Сообщения:
    662
    Симпатии:
    1.223
    Репутация:
    83
    Оффлайн
  34. Комсюк народный модератор

    • Заслуженный
    • Ветеран
    Рег.:
    17.07.2011
    Сообщения:
    12.101
    Симпатии:
    11.967
    Репутация:
    773
    Нарушения:
    15
    Оффлайн
    nn, а как же разговоры о том, что разобрали они А0 до основания? :)
  35. nn Учаcтник

    • Участник
    Рег.:
    25.03.2007
    Сообщения:
    662
    Симпатии:
    1.223
    Репутация:
    83
    Оффлайн
    Домыслы. Сандлер с соавтором книгу пишет об AlphaZero и доступ имеет.
    Комсюк нравится это.

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