Еще один шаг

Sep 18, 2015 16:37

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

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

Статья интересная, и ее стоит прочитать всем, кто интересуется этой темой. Нейронная сеть была использована для двух разных целей.

Для начала, авторы поставили задачу оценки позиции при помощи нейронный сети. Они построили и натренировали сеть так, чтобы получить функцию оценки максимально близкую к известной функции оценки Stockfish (есть массив позиций оцененных Stockfish). А потом проверили на позициях из Strategic Test Suite. Натренированная нейронная сеть смогла оценивать позиции на уровне лучших шахматных программ, не имея практически никаких априорных знаний -- только опыт обучения!

Следующая логичная задача, которую поставили перед собой авторы -- это использовать нейронную сеть для предсказания лучшего хода. Здесь они использовали нестандартный, как мне кажется, подход для определения глубины поиска: отсечение по вероятности выиграть. То есть для каждой позиции вычисляется вероятность выигрыша, перебор идет в сторону позиций с более высокой вероятностью (или отсечение низких). Это дает преимущество при оценке длинных "вынужденных" комбинаций, когда в позиции не очень много ходов, но ее надо просмотреть глубоко. Нейронная сеть была натренирована для предсказания этих вероятностей. По сравнению с вариантом вычисления вероятностей "в лоб" (чисто через оценку позиций), нейронная сеть "угадывала" наилучший ход несколько чаще, то есть и в этом случае удалось повторить (в смысле результата) и превзойти закодированный алгоритм!

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

Это, конечно, не так круто, как "научиться играть" по партиям, но все равно впечатляет.

информационные технологии, шахматы, ai, computer science

Previous post Next post
Up