Попытка изучить MCST, используя видео и документы YouTube, подобные этой.

http://www0.cs.ucl.ac.uk/staff/D.Silver/web/Applications_files/grand-challenge.pdf

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

enter image description here

  1. Этап выбора: MCTS итеративно выбирает дочерний узел с наибольшим количеством баллов текущего состояния. Если текущее состояние является корневым узлом, то откуда эти дети пришли в первую очередь? Разве у вас не было бы дерева с одним корневым узлом для начала? Имея только один корневой узел, вы сразу попадаете в фазу расширения и симуляции?

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

  3. Как происходит фаза расширения для узла? На диаграмме выше, почему он не выбрал листовой узел, но решил добавить родного узла к листовому узлу?

  4. На этапе моделирования используется стохастическая политика для выбора разрешенных ходов для обоих игроков, пока игра не завершится. Является ли эта стохастическая политика жестко запрограммированным поведением, и вы, по сути, бросаете кости в симуляции, чтобы выбрать один из возможных ходов, по очереди от каждого игрока до конца?

  5. Насколько я понимаю, вы начинаете с одного корневого узла и, повторяя описанные выше этапы, вы строите дерево на определенной глубине. Затем в качестве следующего шага вы выбираете ребенка с лучшим результатом на втором уровне. Размер дерева, которое вы хотите построить, в основном является вашим жестким требованием к отзывчивости ИИ, верно? Так как пока дерево строится, игра остановится и вычислит это дерево.

5
jiminssy 28 Май 2017 в 21:55

2 ответа

Лучший ответ
  1. Этап выбора: MCTS итеративно выбирает дочерний узел с наибольшим количеством баллов текущего состояния. Если текущее состояние является корневым узлом, то откуда эти дети пришли в первую очередь? Разве у вас не было бы дерева с одним корневым узлом для начала? Имея только один корневой узел, вы сразу попадаете в фазу расширения и симуляции?

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

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

  1. Если MCTS выбирает дочерний узел с наибольшим количеством баллов на этапе выбора, вы никогда не исследуете других дочерних элементов или, возможно, даже совершенно нового дочернего элемента, спускаясь по уровням дерева?

«Оценка», используемая на шаге «Выбор», обычно должна быть не просто средним значением всех результатов моделирования, проходящего через этот узел. Обычно это должен быть счет, состоящий из двух частей; часть «исследования», которая высока для узлов, которые посещались относительно редко, и часть «эксплуатации», которая высока для узлов, которые пока кажутся хорошими ходами (где многие симуляции, проходящие через этот узел, заканчивались победой для игрока, которому разрешено выбирать ход, чтобы сделать). Это описано в разделе 3.4 статьи, которую вы связали. W(s, a) / N(s, a) является частью эксплуатации (просто средний балл), а B(s, a) является частью исследования.

  1. Как проходит фаза расширения для узла? На диаграмме выше, почему он не выбрал листовой узел, но решил добавить родного узла к листовому узлу?

Шаг расширения обычно реализуется для простого добавления узла, соответствующего конечному состоянию игры, выбранному на шаге выбора (после того, как я ответил на ваш первый вопрос, шаг выбора всегда завершится выбором одного игрового состояния, которое никогда не было выбрано ранее). ,

  1. На этапе моделирования используется стохастическая политика для выбора разрешенных ходов для обоих игроков до завершения игры. Является ли эта стохастическая политика жестко запрограммированным поведением, и вы, по сути, бросаете кости в симуляции, чтобы выбрать один из возможных ходов, по очереди между каждым игроком до конца?

Самая простая (и, вероятно, самая распространенная) реализация, действительно, должна играть совершенно случайно. Также возможно сделать это иначе. Например, вы можете использовать эвристику, чтобы создать уклон к определенным действиям. Как правило, полностью случайное воспроизведение выполняется быстрее, что позволяет вам запускать больше симуляций за одно и то же время обработки. Однако, как правило, это также означает, что каждая отдельная симуляция менее информативна, что означает, что вам действительно нужно запустить больше симуляций, чтобы MCTS играл хорошо.

  1. Как я понимаю, вы начинаете с одного корневого узла и, повторяя описанные выше этапы, вы строите дерево на определенной глубине. Затем в качестве следующего шага вы выбираете ребенка с лучшим результатом на втором уровне. Размер дерева, которое вы хотите построить, в основном является вашим жестким требованием к отзывчивости ИИ, верно? Поскольку во время конструирования дерева игра остановится и вычислит это дерево.

MCTS не исследует все части дерева равномерно на одинаковую глубину. Он имеет тенденцию исследовать части, которые кажутся интересными (сильные ходы), глубже, чем части, которые кажутся неинтересными (слабые ходы). Итак, обычно вы не будете использовать ограничение глубины. Вместо этого вы бы использовали ограничение по времени (например, продолжайте выполнять итерации, пока не потратите 1 секунду, или 5 секунд, или 1 минуту, или любое количество времени обработки, которое вы разрешите) или ограничение количества итераций (например, позвольте ему запустить 10K или 50K или любое количество симуляций, которое вам нравится).

3
Dennis Soemers 30 Май 2017 в 13:32

По сути, Монте-Карло таков: попробуйте случайным образом много раз (*), а затем продолжайте движение, которое в большинстве случаев приводило к лучшему результату.

(*): количество раз и глубина зависит от скорости решения, которое вы хотите получить.

Таким образом, корневой узел всегда является текущим игровым состоянием, а непосредственные дети - ваши возможные ходы. Если вы можете сделать 2 хода (да / нет, влево / вправо, ...), то у вас есть 2 подузла.

Если вы не можете делать какие-либо ходы (это может произойти в зависимости от игры), тогда у вас нет никакого решения, поэтому Montec Carlo бесполезен для этого хода.

Если у вас есть X возможных ходов (игра в шахматы), то каждый возможный ход является прямым дочерним узлом.

Затем (в игре для двух игроков) каждый уровень чередует «ваши ходы», «ходы противника» и так далее.

Как пройти дерево должно быть случайным (равномерным).

Ваш ход 1 (случайный ход подуровня 1)

Его ход 4 (случайный ход подуровня 2)

Ваш ход 3 (случайный ход подуровня 3) -> выиграть

Выберите эталонную максимальную глубину и оцените, сколько раз вы выигрываете или проигрываете (или обладаете некоторой оценочной функцией, если игра не завершена после X глубины).

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

Это делается для того, чтобы оценить, какой шаг вы должны сделать сейчас . После этого противник движется, и снова ваша очередь. Таким образом, вы должны воссоздать дерево с корневым узлом, являющимся новой текущей ситуацией, и повторить технику Монте-Карло, чтобы угадать, какой ваш лучший ход. И так далее.

0
Community 20 Июн 2020 в 09:12