Я думаю, что было бы лучше, если бы я подробно остановился на вашем втором пункте с примером движения в игре 1 между AlphaZero и Stockfish, которое также помогло удовлетворить мое любопытство сегодня.
ограничение по времени 1 мин / ход (Как бы этот недостаток Stockfish?)
Производительность Stockfish зависит как от ограничения по времени, так и от конфигурации оборудования, поэтому просто подумайте, когда кто-то удваивает потоки ЦП, тогда Stockfish требуется меньше времени (не обязательно наполовину), чтобы найти решение, чем это было бы с первой конфигурацией.
В первом сообщении, опубликованном на Chess.com, кто-то утверждал, что Stockfish не играет оптимально, потому что он не может воспроизвести те же результаты, используя тот же Stockfish на своем компьютере. Он сказал, что в позиции ниже (игра 1 - ход 11) Stockfish сыграл Kg1-h1 (переместил своего короля), что не имело никакого смысла. С другой стороны, вяленая рыба на своем компьютере показала более развивающий ход, такой как Be3 (ход темного квадратного слона), давайте посмотрим на позицию:
Да, это был пассивный ход, и кажется, что Stockfish должен был сыграть более развивающий ход. Но он был неправ. Зачем? Поскольку он управлял Stockfish в течение 15 секунд, и если бы он управлял им в течение часа, он получил бы Kg1-h1 как лучший ход в этой позиции. Stockfish меняет свое решение, когда он анализирует все возможные ходы более глубоко. Вот что я изначально сказал в своем ответе :
Я запустил последнюю вьюшку на позиции (на 11-м ходу):
- Во-первых, это дает b4 как оптимальный ход, когда двигатель работает около минуты. После этого он решает, что Be3 лучше.
Но через 5 минут на моем оборудовании, которое работает на 1400k узлов / с, он решит перейти с Kh1 в качестве оптимального движения.
В статье говорится, что stockfish рассчитывает 70 000 тыс. Позиций в секунду и запускается в течение 1 минуты за ход, это примерно в 50 раз больше моего оборудования, поэтому я позволю моей работе в течение 50 минут ... Kg1-h1 по-прежнему Выбор для Stockfish.
Ограничение по времени является ключом
В приведенном выше случае, вероятно, не имело особого значения, если Stockfish побежал дважды, потому что решение было бы таким же, но на следующем шаге это определенно будет :
В этой позиции Stockfish решил переместить пешку на левую сторону ( a4-a5 ). Допустим, у меня есть компьютер, который запускает движок Stockfish со скоростью 1400 тыс. Узлов в секунду, что примерно в 50 раз ниже, чем у Stockfish в реальной игре ( в статье говорится, что 70 тыс. Кн / с). Таким образом, я могу смоделировать игру, если буду запускать ее по 50 минут на каждом ходу. Хорошо.
Я запустил анализ Stockfish в вышеуказанной позиции и получил следующие результаты:
- Stockfish начал предлагать некоторые ходы, но через 6 минут на моем компьютере (соответствует 7,2 секунды на Stockfish в реальной игре) он предпочел a4-a5, как только игра пошла .
Это хорошо, но я продолжал работать в течение полных 50 минут, чтобы достичь вычислений Stockfish в игре, которая была разрешена за 1 минуту:
Печальная правда в том, что я считаю, что Stockfish проиграл все свои игры из-за ограничения по времени. Stockfish получает более глубокий поиск и оценку с течением времени, и в игре не было разрешено использовать вводную книгу, которая заставляет его рассматривать много ходов на малой глубине. Обратите внимание, что в реальной игре играли a4-a5, что показывает, что (предполагая, что он может оценивать 70 миллионов позиций в секунду), Stockfish в игре не тратил больше 21,6 секунд на ход. В противном случае он бы изменил свое решение на эти три других хода в реальной игре. Причина этого до сих пор неясна для меня, поскольку мой Stockfish также потреблял меньше памяти (около ~ 130 МБ ОЗУ по сравнению с 1 ГБ, упомянутым в оригинальной статье , при условии, что все это идет в хеш-таблицы).
Вывод
Как я указывал, аппаратное обеспечение, на котором работала Stockfish, в лучшем случае было в 18 раз быстрее моего (обновление: на одном ядре), основываясь на анализе, который я проанализировал. Я не уверен, что AlphaZero действительно сможет использовать такое оборудование для обучения своих сетей за 4 часа, я могу только предположить, что он слишком низок для такой игры, как шахматы. Кроме того, AlphaZero потратил эти часы на обучение, которое также включает в себя создание прочных отверстий (и, как отмечается в документе, предпочтения по сравнению с определенными открытиями). С другой стороны, Stockfish был инвалидом на дебютах, и он не оценивал 70 миллионов позиций в секунду в течение 60 секунд на каждый ход.
В заключение, все, что я сказал, было основано на моих предположениях. Конечно, итоги AlphaZero и игр были для меня супер интересными. Тем не менее, я бы хотел увидеть игру, в которой игра Stockfish была такой же, как и у меня на компьютере. То есть больше времени и вводная книга позволены. Также легко получить результаты анализа Stockfish при каждом движении, и я хочу, чтобы они выпустили его, чтобы показать, насколько хорошо он работал.