Интерпретация статьи: Подробное объяснение трех ключевых технологий AlphaGo.

обучение с подкреплением
Интерпретация статьи: Подробное объяснение трех ключевых технологий AlphaGo.

Alpha Go

источник:[Knowing-Machine Learning Preface-13-Alpha Go]

Недавно пересматривал предыдущую классику AlphaGo, и есть ощущение, что пересматриваешь старое и изучаешь новое, а последние идеи буду записывать сюда.

оригинальный портал

Silver et al_2016_Mastering the game of Go with deep neural networks and tree search_Nature

задний план

До появления AlphaGo традиционная компьютерная стратегия Го была реализована методом, называемым поиском по дереву Монте-Карло (MCTS). «Продумай несколько шагов», а затем выбери ход с наибольшей вероятностью выигрыша для выполнения.

0-Go.jpg

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

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

метод

В целом, в этой работе используются 3 метода: обучение с учителем, обучение с подкреплением и MCTS.

  1. Во-первых, обучение с учителем (SL) обучает дроп-сеть.pоp_\sigmaи быстроходная подсетьpчисло Пиp_\pi, в котором модель подсети большая, что требует много3ms3msдля принятия решений, в то время как быстроходные подсети требуют только2μs2\mu sпринимать решения, но сеть ходов больше похожа на человеческий способ игры в шахматы с точностью предсказания 57,0%, в то время как сеть быстрых ходов немного хуже, точность всего 24,2%.
  2. Во-вторых, обучение с подкреплением (RL) используется для обучения обученной подсети.pоp_\sigmaЧтобы улучшить, в основном, через самостоятельную игру, чтобы улучшить стратегию сети, а затем обучить сеть ценностейvθ(s)v_\theta(s), для операции обрезки MCTS.
  3. Наконец, используйте MCTS для окончательного выбора действия.

1-model.png

1 Контролируемый процесс обучения

  • Сеть Лузиpоp_\sigma: Используя данные человеческой шахматной игры, используйте метод контролируемого обучения для обучения стратегической сети прогнозированию стратегии человеческих ходов и, постоянно уменьшая ошибку между реальной стратегией людей, сделайте текущую сеть более похожей на человеческие. , чтобы изучить базовую шахматную стратегию. Его обновление параметра может быть выражено как:Δоlogpо(as)о\Delta \sigma\propto\frac{\partial\log p_\sigma(a|s)}{\partial \sigma}.
  • быстроходная подсетьpчисло Пиp_\pi: метод обучения такой же, как и в сети Луози, но модель сети меньше, а действие выбора выполняется быстрее.

2 Процесс обучения с подкреплением

Метод обучения с подкреплением — это метод оптимизации собственной стратегии путем непрерывных проб и ошибок.Здесь RL используется для повышения производительности подсети:

  • Сеть политик: получить исходную сеть, скопировав обученную сеть сброса.pρp_\rho, с весомρ=о\rho=\sigma.
  • Оппонент: Каждая модель определяет качество текущей стратегии, играя со случайной моделью в ее собственной исторической версии, чтобы постоянно улучшаться.Случайная версия выбирается в основном для предотвращения переоснащения одного игрового объекта.
  • Награда: Награда +1 или -1 будет получена только после принятия окончательного решения, а награда за оставшиеся шаги будет равна 0.
  • Обучение: используйте стохастический градиентный подъем, чтобы увеличить конечный ожидаемый доход:Δρlogpρ(atst)ρ\Delta \rho\propto\frac{\partial\log p_\rho(a_t|s_t)}{\partial \rho}.

Повышая производительность сети политик, RL дополнительно обучает сеть ценностиvp(s)v^p(s)Чтобы оценить процент выигрыша шахматной доски:

  • Сеть значений: аналогична сети политик, но выход изменяется с вероятности действия на скалярное значение для представления состояния.ssпроцент побед.
  • Цель оптимизации: за счет снижения собственного прогнозируемого винрейта.vθ(s)v_\theta(s)с реальным винрейтомzzСреднеквадратическая ошибка междуΔθvθ(s)θ(zvθ(s))\Delta \theta\propto\frac{\partial v_\theta(s)}{\partial \theta}(z-v_\theta(s)).

3 MCTS

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

3-MCTS.png

1b-rl.png

  1. Выбор: каждый узел сохраняет два значения: Q(s, a) представляет значение действия a в состоянии s;u(s,a)u(s,a)Указывает значение исследования, которое положительно связано с предшествующим значением P и отрицательно связано с количеством исследований.Чем выше значение, тем более достойным исследования является действие, хотя значение Q может быть не очень высоким, подобно смелая попытка человека. В каждом раунде выбора MCTS выбирает два значения и самое высокое действие для выполнения.
  2. Расширение: после выбора каждого действия необходимо удалить подсеть.pоp_\sigmaРассчитайте вероятность действия в этом состоянии и сгенерируйте новое значение P.
  3. Оценка: В конце моделирования значение расширенных листовых узлов вычисляется одновременно двумя способами: сеть значенийvp(s)v^p(s), а также значение быстрого моделирования подсетей для вычислений в конце игры.
  4. Возврат: используйте значение развернутого конечного узла, чтобы обновить значение действия корневого узла.

Я думал, что нужно выбрать для выполнения действие с наибольшим значением Q, но в статье было написано, что "финальная модель выбирает для выполнения действие с наибольшим количеством посещений", я так и не понял, почему? Сначала запишите, надеясь получить ответ.

в заключении

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

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