Почему нет механизмов глубокого обучения шахматам, похожих на AlphaGo?


32

Компьютеры в течение долгого времени могли играть в шахматы, используя метод "грубой силы", исследуя определенную глубину и затем оценивая позицию. Компьютер AlphaGo, однако, использует только ANN для оценки позиций (насколько я знаю, он не выполняет поиск по глубине). Можно ли создать шахматный движок, который будет играть в шахматы так же, как AlphaGo играет в Go? Почему никто этого не сделал? Будет ли эта программа работать лучше, чем лучшие шахматные движки (и шахматисты) сегодня?


5
См. Arxiv.org/abs/1509.01549 (Жираф: Использование обучения глубокому усилению для игры в шахматы) и популярную статью technologyreview.com/s/541276/… . Также erikbern.com/2014/11/29/deep-learning-for-chess.html
амеба говорит восстановить Монику

Это был просто вопрос времени, пока кто-нибудь не сделает это правильно. Итак, через месяц после того, как вы разместили свой вопрос, вы идете: arxiv.org/abs/1712.01815 .
говорит амеба: восстанови Монику

Ответы:


49

РЕДАКТИРОВАТЬ (после прочтения бумаги):

Я внимательно прочитал газету. Давайте начнем с того, что 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 (эффективный коэффициент разветвления) довольно мал. Использование нейронной сети в качестве замены функции статической оценки определенно сильно замедлит работу двигателя.


1
Спасибо. Некоторые вопросы: Шахматные движки используют алгоритм альфа-бета, разве это не алгоритм "грубой силы"? Означает ли «Поиск по дереву Монте-Карло», что на несколько шагов впереди текущей позиции?
Лиас

1
@lijas "грубая сила" обычно определяется как поиск всех возможностей. Шахматные двигатели этого не делают.
SmallChess

7
@lijas Вы только что ответили на вопрос. Умножение матриц - медленная операция.
SmallChess

3
Альфа-бета-поиск уверен, что это "грубая сила". Ханс Берлинер о тенденциях искусственного интеллекта: «Я считаю, что наиболее важной тенденцией было то, что компьютеры стали значительно быстрее за последние 50 лет. В ходе этого процесса мы обнаружили, что многие вещи, для которых у нас были в лучшем случае антропоморфные решения, которые во многих случаях не удалось охватить настоящая суть человеческого метода может быть реализована с помощью более грубых методов, которые просто перечисляются до тех пор, пока не будет найдено удовлетворительное решение. Если это ересь, пусть будет так ». (см. ieeexplore.ieee.org/document/820322/?reload=true )
Даниэль Лидстрем

1
Альфа-бета-версия @smallchess - это алгоритм поиска де-факто, даже такие варианты, как negascout, которые являются просто постепенными улучшениями. На что еще он может ссылаться? Это было написано задолго до появления систем глубокого обучения.
Даниэль Лидстрем

6

DeepBlue уже победил Каспарова, поэтому эта проблема решается гораздо более простым подходом. Это было возможно, потому что число возможных ходов в шахматах намного меньше, чем в гоу , поэтому это намного более простая проблема. Кроме того, обратите внимание, что как NN, так и грубой силе нужны огромные вычислительные ресурсы ( здесь вы можете увидеть фотографию компьютера за AlphaGo, обратите внимание, что он использует не только графические процессоры, но и TPU для вычислений). Вся суета с го была в том, что когда Deep Blue победил Каспарова, сообщество go утверждало, что это было бы невозможно с го (по многим другим причинам, но для суммирования аргументов мне нужно дать подробное введение в игру. идти). Да, вы можете научить NN играть в шахматы, Марио , или попробовать научить его игратьStarcraft ...

Я предполагаю, что причина этого в том, что вы просто не часто слышите в основных СМИ о случаях, когда люди решают проблемы, которые уже были решены.

Кроме того ваша посылка не так, Deep Learning будет использоваться , чтобы играть в шахматы, например , как описано в Deep Learning Machine Обучает Сам по шахматам в 72 часов, Пьесы на международном уровне мастера . См. Также соответствующую статью « Жираф: использование глубокого обучения для игры в шахматы» .


3
Несмотря на то, что, очевидно, существуют некоторые шахматные программы, обученные с глубоким обучением подкреплению, факт остается фактом, что никто не создал такую ​​программу, которая бы побеждала «традиционные» шахматные движки. Я предполагаю, что это потому, что эта проблема (победа над традиционными двигателями) просто не интересна / не мотивирует достаточно, чтобы затратить много усилий, необходимых для разработки чего-то уровня AlphaGo.
говорит амеба, восстанови Монику

1
@amoeba - широко распространенное программное обеспечение для игры в игры, которое также не использует глубокое обучение, и обычно оно слабее, чем любители 1 дан, намного хуже, чем AlphaGo. AlphaGo является доказательством концепции.
Тим

1
@ rus9384 это не легко, но мы уже «решили» это, Deep Bluie победил Каспарова, у нас есть наш черный лебедь, который прошел шахматный тест Тьюринга.
Тим

5
Решенная игра - это еще одна вещь: мы не знаем, гарантирует ли идеальная игра победу для черных / белых или заканчивается ничьей.
rus9384

1
@ rus9384: Было бы интересно начать игру против идеального шахматного ИИ и посмотреть «Белые выигрывают. Мат в 97 ходов».
Эрик
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.