Совсем недавно появились новости о том, что исследовательская команда Alphabet DeepMind расширила свой механизм машинного обучения, чтобы играть как в сёги, так и в шахматы. По-видимому, после всего лишь нескольких часов самообучения, то есть, играя только против самого себя, учитывая правила игры, его результаты в шахматах уже превзошли показатели лучших современных двигателей, таких как Stockfish 8., Лично я пока не знаю, как именно были установлены совпадения, например, при каких условиях Stockfish был настроен на выполнение, поскольку, если время расчета ограничено, двигатели могут работать очень плохо. В любом случае, это очень впечатляющее достижение, потому что даже если окажется, что можно было бы настроить Stockfish более оптимально, с помощью нескольких дополнительных часов обучения, AlphaZero снова превзойдет уровень игры, а это означает, что AlphaZero принципиально сильнее, чем любой другой. стандартный шахматный движок на основе эвристических оценочных функций.
Теперь, в свете этих новостей, было бы замечательно, если бы кто-то смог рассказать об основных различиях в работе машинного шахматного двигателя по сравнению со стандартными двигателями, которые мы все привыкли использовать. Более конкретно:
- Разве функция оценки, которую использует AlphaZero, обученная по методам машинного обучения, в конце концов, не является еще одной эвристической функцией оценки? Если да, было бы справедливо сказать, что фундаментальное различие между функциями оценки двух двигателей заключается в том, что Stockfish имеет оптимизированную функцию оценки, настроенную вручную людьми, что означает, что определение функции для оптимизации является фиксированным, тогда как для AlphaZero, функция оценки цели постоянно переопределяется с помощью дополнительного обучения (например, с помощью самостоятельной игры)? Превращение последнего в гораздо более динамичный подход.
В конечном счете, смутно говоря, такой движок, как Stockfish, применяет свою функцию оценки к дереву возможных ходов, решая, какие ветви оставить, а какие опустить, а затем через более глубокий бетон.Анализ каждой ветви, опять-таки с помощью функции оценки, позволяет определить, какая ветвь дала наибольшее значение, и это становится основным вариантом (конечно, существует множество методов улучшения этого процесса для эффективного сокращения этого большого дерева). Это означает, что для каждой позиции эта чрезвычайно конкретная процедура должна быть повторена, чтобы Stockfish принял решение. Напротив, я предполагаю, что AlphaZero делает что-то совсем другое, а именно: он не опирается на конкретный анализ дерева возможных ходов в данной позиции, вместо этого его функция оценки по существу присваивает значение этой позиции (что интуитивно похоже на текущая позиция по аналогии со всеми другими позициями, для которых она была обучена), без необходимости выполнять конкретныеанализ так, как это делает Stockfish или даже человек-игрок. Это вообще убедительная картина работы AlphaZero или аналогично обученных машинных машин?
Мы знаем, что пространство шахматных позиций достаточно велико, и любая попытка сэмплировать все позиции в нем была бы даже в принципе совершенно напрасной (ОЖИДАЮЩАЯ сложность), что наводит на мысль о том, что никакого обучения через самовоспроизведение будет недостаточно исследовали все позиции, так как же тогда конечный результат может быть хорошим, несмотря на то, что он потенциально исследовал небольшую долю позиций в пространстве посредством самостоятельной игры? Какова основная идея здесь в игре?
Я предполагаю, что у AlphaZero есть очень оптимальный способ сравнения любой заданной позиции, даже если она новая, с ранее посещенной в ее обучающем наборе, чем ближе сравнение, тем более достоверной является оценка, которую можно извлечь из сравнения. Например, когда он играл ход Bg5 в игре 5 , он, должно быть, исследовал подобную структуру во время своего обучения, то есть он способен признать, что эта позиция по существу эквивалентна (возможно, полностью) другой, изученной при ее обучении, в аналогия с тем, как распознавание лица достигается посредством машинного обучения, и в результате он приходит к выводу, что Bg5 должен быть лучшим ходом, как это было в той (или тех) других подобных позициях. Это вообще правильное предположение? Я понятия не имею, как это сравнение сделано, так как, конечно, невозможно сохранить все обученные позиции и анализировать их каждый раз.
Это всего лишь попытка получить полное представление о работе AlphaZero и о том, как он принимает решение при данной позиции.
Я предполагаю, что мой вопрос заключается в том, как нейронная сеть «учится», что делать в позиции, с которой она не сталкивалась. То, что фактический AZ выполняет MCTS, используя веса смещения + из обученной нейронной сети, просто отодвигает его на шаг назад к тому, как нейронная сеть вычисляет эти значения. Если это происходило посредством случайной самовоспроизведения, без каких-либо человеческих знаний, то как он решает, как взвесить позицию, которую он никогда не видел?
источник