РЕДАКТИРОВАТЬ (после прочтения бумаги):
Я внимательно прочитал газету. Давайте начнем с того, что Google утверждал в газете:
- Они победили Stockfish с Монте-Карло-Tree-Search + Глубокие нейронные сети
- Матч был абсолютно односторонним, много побед для AlphaZero, но не для Stockfish
- Они смогли сделать это всего за четыре часа
- AlphaZero играл как человек
К сожалению, я не думаю, что это хорошая журнальная статья. Я собираюсь объяснить с помощью ссылок (так что вы знаете, я не сплю):
https://www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author
Сами по себе результаты матча не имеют особого смысла из-за довольно странного выбора элементов управления временем и настроек параметров Stockfish: в игры играли с фиксированным временем 1 минута / ход, что означает, что Stockfish не использует свою эвристику управления временем ( много усилий было потрачено на то, чтобы Stockfish выявлял критические точки в игре и решал, когда провести дополнительное время на ходу; при фиксированном времени на ход сила сильно пострадает).
Стокфиш не мог играть в лучшие шахматы с минутой за ход. Программа не была разработана для этого.
- Stockfish работал на обычной коммерческой машине, в то время как AlphaZero был на машине с 4 миллионами + TPU, настроенной на AlphaZero. Это похоже на сопоставление вашего высококлассного рабочего стола с дешевым телефоном Android. Торд написал:
Одна - это обычная шахматная программа, работающая на обычных компьютерах, другая использует принципиально иные методы и работает на специально разработанном оборудовании, которое недоступно для покупки (и было бы выходом из бюджета обычных пользователей, если бы оно было).
- Google непреднамеренно передал 64 потока на 32-ядерный компьютер для Stockfish. Я цитирую гроссмейстера Ларри Кауфмана (эксперт по компьютерным шахматам мирового уровня):
http://talkchess.com/forum/viewtopic.php?p=741987&highlight=#741987
Я согласен, что тест был далеко не справедливым; Еще одна проблема, которая помешала SF, заключалась в том, что он, по-видимому, выполнялся в 64 потоках на 32-ядерном компьютере, но он играл бы намного лучше, если бы на нем работал только 32 потока, так как SMP практически не дает преимущества, компенсирующего замедление примерно с 5 до 3. Также соотношение затрат было больше, чем я сказал; Я думал, что это 64-ядерная машина, но 32-ядерная машина стоит примерно вдвое меньше, чем я предполагал. Так что, может быть, в целом 30 к 1 не так уж плоха оценка. С другой стороны, я думаю, вы недооцениваете, насколько это может быть улучшено.
- Stockfish дал только 1 Гб хеш-таблицы. Это шутка ... У меня есть большая хеш-таблица для моего приложения Stockfish для iOS (отказ от ответственности: я автор) на моем iPhone! Торд написал:
... слишком маленькие хеш-таблицы для количества потоков ...
1Гб хеш-таблица абсолютно неприемлема для подобного матча. Вяленая рыба часто сталкивается с хэш-столкновением. Требуются циклы ЦПУ для замены старых хеш-записей.
- Stockfish не предназначен для работы с таким количеством потоков. В моем шахматном приложении для iOS используются только несколько потоков. Торд написал:
... играл с гораздо большим количеством поисковых потоков, чем когда-либо испытывал значительное количество испытаний ...
- Stockfish бежал без вводной книги или настольной базы Syzygy из 6 предметов. Размер выборки был недостаточным. Версия Stockfish была не последней. Обсуждение здесь .
ВЫВОД
Google не доказал без сомнения, что их методы превосходят Stockfish. Их количество поверхностно и сильно смещено к AlphaZero. Их методы не воспроизводятся независимой третьей стороной. Еще слишком рано говорить о том, что глубокое обучение - превосходящий метод традиционного шахматного программирования.
РЕДАКТИРОВАТЬ (декабрь 2017 г.):
Существует новая статья от Google Deepmind ( https://arxiv.org/pdf/1712.01815.pdf ) для углубленного изучения шахмат. Судя по всему, шахматный движок Stockfish с мировым именем был «убедительно» побежден. Я думаю, что это самое значительное достижение в компьютерных шахматах после матча Deep Blue 1997 года. Я обновлю свой ответ, как только прочту статью подробно.
Оригинал (до декабря 2017 г.)
Давайте уточним ваш вопрос:
- Нет, шахматные движки не используют грубую силу.
- AlphaGo делает поиск использование дерева, он использует Монте - Карло дерево поиска . Google " Монте-Карло Tree Search alphaGo ", если вы хотите убедиться.
ИНН можно использовать для шахматных движков:
Будет ли эта программа работать лучше, чем лучшие шахматные движки (и шахматисты) сегодня?
Жираф играет примерно на уровне международного мастерства, что соответствует рейтингу ФИДЕ 2400. Тем не менее, Stockfish, Houdini и Komodo играют примерно на FIDE 3000. Это большой разрыв. Зачем? Почему не поиск по дереву Монте-Карло?
- Материал эвристический в шахматах прост. Большую часть времени шахматная позиция выигрывает / проигрывает, просто считая материалы на доске. Пожалуйста, помните, что подсчет материалов не работает для Go. Подсчет материала на несколько порядков быстрее, чем при работе нейронных сетей - это может быть сделано с помощью битбордов, представленных 64-битным целым числом. В 64-битной системе это может быть сделано только несколькими машинными инструкциями. Поиск по традиционному алгоритму намного быстрее, чем машинное обучение. Более высокие узлы в секунду переводят на более глубокий поиск.
- Точно так же существуют очень полезные и дешевые методы, такие как обрезка нулевого хода, уменьшение запоздалого хода, убийственные ходы и т. Д. Они дешевы в использовании и намного эффективнее подхода, используемого в AlphaGo.
- Статическая оценка в шахматах быстрая и полезная
- Машинное обучение полезно для оптимизации параметров, но у нас также есть SPSA и CLOP для шахмат.
- Есть много полезных метрик для сокращения дерева в шахматах. Гораздо меньше для Го.
Было исследование, что поиск по дереву Монте-Карло не подходит для шахмат. Го - это игра, отличная от шахмат. Шахматные алгоритмы не работают для Go, потому что шахматы основаны на жестокой тактике. Тактика, возможно, важнее в шахматах.
Итак, мы установили, что MCTS хорошо работает для AlphaGo, но менее для шахмат. Глубокое обучение было бы более полезным, если:
- Настроенная оценка NN лучше, чем традиционные алгоритмы. Однако ... глубокое обучение не волшебство, вам, как программисту, все равно нужно заниматься программированием. Как уже упоминалось, у нас есть что-то вроде SPSA для самостоятельной игры для настройки параметров в шахматах.
- Инвестиции, деньги! На машинное обучение в шахматах денег не так много. Stockfish является бесплатным и открытым исходным кодом, но достаточно сильным, чтобы победить всех игроков-людей. Зачем Google тратить миллионы, если кто-нибудь может просто скачать Stockfish бесплатно? Зачем платить за процессорные кластеры? Кто будет платить за таланты? Никто не хочет этого делать, потому что шахматы считаются «решенной» игрой.
Если глубокое обучение может достичь следующего, оно побьет традиционный алгоритм:
- Учитывая шахматную позицию, «почувствуй» ее как человека-гроссмейстера. Например, человеческий гроссмейстер не пойдет на плохие строки - по своему опыту. Ни традиционный алгоритм, ни глубокое обучение не могут этого достичь. Ваша модель NN может дать вам вероятность [0..1] для вашей позиции, но этого недостаточно.
Позвольте мне указать:
Нет. Жираф (ссылка, опубликованная @Tim) не использует поиск по дереву Монте-Карло. Он использует обычный алгоритм Nega-Max. Все, что он делает, это заменяет обычную функцию оценки на NN, и это очень медленно.
еще:
Хотя Каспаров был побежден Deep Blue в матче 1997 года. «Человечество» было действительно проиграно в 2003-2005 годах, когда Крамник проиграл матч Deep Fritz без победы, а Майкл Адамс проиграл кластерной машине в одностороннем матче. Примерно в то же время Рыбка оказалась слишком сильной даже для лучших игроков мира.
Ссылка:
http://www.talkchess.com/forum/viewtopic.php?t=64096&postdays=0&postorder=asc&highlight=alphago+chess&topic_view=flat&start=0
Я цитирую:
В шахматах у нас есть понятие материальности, которое уже дает разумную оценку того, как хорошо работает двигатель, и может быть быстро вычислено. Кроме того, есть много других аспектов игры, которые могут быть закодированы в статической функции оценки, которая не может быть выполнена в Go. Из-за большого количества эвристик и хорошей оценки EBF (эффективный коэффициент разветвления) довольно мал. Использование нейронной сети в качестве замены функции статической оценки определенно сильно замедлит работу двигателя.