Понимание AlphaZero


29

Совсем недавно появились новости о том, что исследовательская команда Alphabet DeepMind расширила свой механизм машинного обучения, чтобы играть как в сёги, так и в шахматы. По-видимому, после всего лишь нескольких часов самообучения, то есть, играя только против самого себя, учитывая правила игры, его результаты в шахматах уже превзошли показатели лучших современных двигателей, таких как Stockfish 8., Лично я пока не знаю, как именно были установлены совпадения, например, при каких условиях Stockfish был настроен на выполнение, поскольку, если время расчета ограничено, двигатели могут работать очень плохо. В любом случае, это очень впечатляющее достижение, потому что даже если окажется, что можно было бы настроить Stockfish более оптимально, с помощью нескольких дополнительных часов обучения, AlphaZero снова превзойдет уровень игры, а это означает, что AlphaZero принципиально сильнее, чем любой другой. стандартный шахматный движок на основе эвристических оценочных функций.

Теперь, в свете этих новостей, было бы замечательно, если бы кто-то смог рассказать об основных различиях в работе машинного шахматного двигателя по сравнению со стандартными двигателями, которые мы все привыкли использовать. Более конкретно:

  1. Разве функция оценки, которую использует AlphaZero, обученная по методам машинного обучения, в конце концов, не является еще одной эвристической функцией оценки? Если да, было бы справедливо сказать, что фундаментальное различие между функциями оценки двух двигателей заключается в том, что Stockfish имеет оптимизированную функцию оценки, настроенную вручную людьми, что означает, что определение функции для оптимизации является фиксированным, тогда как для AlphaZero, функция оценки цели постоянно переопределяется с помощью дополнительного обучения (например, с помощью самостоятельной игры)? Превращение последнего в гораздо более динамичный подход.
  2. В конечном счете, смутно говоря, такой движок, как Stockfish, применяет свою функцию оценки к дереву возможных ходов, решая, какие ветви оставить, а какие опустить, а затем через более глубокий бетон.Анализ каждой ветви, опять-таки с помощью функции оценки, позволяет определить, какая ветвь дала наибольшее значение, и это становится основным вариантом (конечно, существует множество методов улучшения этого процесса для эффективного сокращения этого большого дерева). Это означает, что для каждой позиции эта чрезвычайно конкретная процедура должна быть повторена, чтобы Stockfish принял решение. Напротив, я предполагаю, что AlphaZero делает что-то совсем другое, а именно: он не опирается на конкретный анализ дерева возможных ходов в данной позиции, вместо этого его функция оценки по существу присваивает значение этой позиции (что интуитивно похоже на текущая позиция по аналогии со всеми другими позициями, для которых она была обучена), без необходимости выполнять конкретныеанализ так, как это делает Stockfish или даже человек-игрок. Это вообще убедительная картина работы AlphaZero или аналогично обученных машинных машин?

  3. Мы знаем, что пространство шахматных позиций достаточно велико, и любая попытка сэмплировать все позиции в нем была бы даже в принципе совершенно напрасной (ОЖИДАЮЩАЯ сложность), что наводит на мысль о том, что никакого обучения через самовоспроизведение будет недостаточно исследовали все позиции, так как же тогда конечный результат может быть хорошим, несмотря на то, что он потенциально исследовал небольшую долю позиций в пространстве посредством самостоятельной игры? Какова основная идея здесь в игре?

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

Это всего лишь попытка получить полное представление о работе AlphaZero и о том, как он принимает решение при данной позиции.

Ответы:


18
  • Как AlphaZero выбирает ход в поиске?

Это очень очевидно из бумаги.

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

Что это значит? У AlphaZero есть обученные вероятности для каждого движения (конец страницы 2 в статье) из глубокой нейронной сети. Во время поиска он выбирает движение, пропорциональное этой вероятности, а также узлы с низким счетом (чтобы обеспечить исследование пространства выборки). Это не новая концепция, поиск по дереву Монте-Карло был в литературе еще до появления Google.

------ (Очень) Грубый пример ------

У нас есть позиция, и у нас есть два законных хода.

  • Ход 1 - это хорошо и разумно
  • Ход 2 подвергает опасности вашего короля без компенсации

Согласно документу, обученная глубокая модель может оценивать вероятности как (0,90, 0,10). Допустим, AlphaZero использует 4 итерации в Монте-Карло. Итерации могут выглядеть так:

Итерация 1 : Выберите ход 1, потому что он имеет наибольшую вероятность. Выполните симуляцию с первого хода. Итерация 2 : выберите первый ход, потому что он имеет наибольшую вероятность. Выполните симуляцию с первого хода. Итерация 3 : выберите первый ход, потому что он имеет наибольшую вероятность. Проведите симуляцию с первого хода.

Теперь мы находимся на итерации 4. Хотя ход 1 имеет более высокую предполагаемую вероятность, но ход 2 не был найден («низкое количество посещений» в статье), теперь AlphaZero выберет ход 2 и выполнит моделирование.

Оба шага будут рассмотрены, но AlphaZero поместит больше вычислительных ресурсов в ход 1 (хорошо).

Тогда AlphaZero выберет ход с наилучшим ожидаемым результатом.

------------------ Ваши вопросы: ------------------

Разве функция оценки, которую использует AlphaZero, обученная по методам машинного обучения, в конце концов, не является еще одной эвристической функцией оценки?

Обученная функция оценки - это глубокая нейронная сеть, а не набор эвристических правил, как то, что вы видите в Stockfish. Никто полностью не понимает (даже команда Google) обученную сеть, она просто работает. Так работает NN.

в то время как для AlphaZero целевая функция оценки постоянно переопределяется через целевую функцию оценки, постоянно переопределяется посредством дополнительного обучения.

Функция оценки в AlphaZero представляет собой набор обученных нейронов (смещение + веса). Команда Google использовала очень мощные машины для обучения параметров. Как правило, чем больше ресурсов вы можете инвестировать в обучение модели глубокого обучения, тем лучше параметры, которые вы получаете.

(2).

Stockfish использует альфа-бета, а AlphaZero - Монте-Карло. Это два совершенно разных алгоритма. Алгоритм альфа-бета предполагает нижнюю / верхнюю границу, в то время как Монте-Карло создает симуляции от корня до листа.

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

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

Например, когда он играл ход Bg5 в игре 5, он должен был исследовать аналогичную структуру во время обучения,

Я не думаю, что AlphaZero столкнулся с точно такой же позицией в тренировочных играх. Я думаю, что краткое чтение Монте-Карло является хорошей идеей:

https://chessprogramming.wikispaces.com/Monte-Carlo+Tree+Search

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

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


2
«Поиск по дереву Монте-Карло был в литературе до появления Google». Я могу проследить только MCTS примерно до 2006 года.
CodesInChaos

2
@CodesInChaos MCTS не новая техника. Google, конечно, не изобрел Монте-Карло.
SmallChess

4
Брюгманн 1993 года явно только MC. MC Go Dev. (2003) объединяет MC и деревья, но примитивно. Чанг (2005) довольно близок, но в другом контексте, и я думаю, что ему все еще не хватает правильного выбора узла для расширения и распространения оценок. Операторы эффективной избирательности и резервного копирования в MCTS Remi Coulom (2006) - это, насколько я могу судить, первая MCTS.
CodesInChaos

1
@SmallChess Части вашего ответа кажутся противоречивыми: «теперь AlphaZero выберет ход 2 и выполнит симуляцию. Оба шага будут рассмотрены, но AlphaZero добавит больше вычислительных ресурсов на ход 1 (хорошая вещь)». противоречит утверждению. Каждое моделирование выполняется путем выбора в каждом состоянии sa перемещения с низким числом посещений ... как, например, в вашем примере это 2, а не 1. Если честно, статья не содержит какой-либо полезной информации для понимание, поскольку они не показывают способ воспроизвести эксперимент или дать представление о том, как они тренируют сети.
gented

1
По сути, они заявляют: «Мы использовали алгоритм X, и он работает», который мало что дает для понимания самих методов, поэтому я бы не стал слишком сильно фокусироваться на самой статье, чтобы попытаться выяснить, что она на самом деле делает.
gented

0

Я предполагаю, что мой вопрос заключается в том, как нейронная сеть «учится», что делать в позиции, с которой она не сталкивалась. То, что фактический AZ выполняет MCTS, используя веса смещения + из обученной нейронной сети, просто отодвигает его на шаг назад к тому, как нейронная сеть вычисляет эти значения. Если это происходило посредством случайной самовоспроизведения, без каких-либо человеческих знаний, то как он решает, как взвесить позицию, которую он никогда не видел?


1
Я думаю, что я мог бы ответить вам, но не здесь. Пожалуйста, начните новый вопрос.
SmallChess

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.