о внутренней оценке шахматной позиции

Apr 14, 2019 15:57

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

deep learning, chess

Leave a comment

Comments 15

ivanoff272 April 14 2019, 12:09:06 UTC
Так вот, мысль следующая - можно ли придумать способ оценки шахматной позиции, где нет никаких встроенных весов для материала. То есть материал должен проявляться неявно, как дополнительные фигуры и возможности, вытекающие из низ, а разница в силе фигур вытекала бы из этих возможностей. Так вот возможность такая есть - нейросетевые движки позицию оценивают не по материалу, а количеству выигранных партий из данной позиции

старый анекдот: шах. аматор умирает, попадает в ад рай, и садится играть белыми, ну например с Капабланкой
делает ход е2-е4, и Капа сдается!
аматор: "Маэстро, но почему??"
Капа: "Вы тут новый, а мы уже давно. е2-е4 всегда выигрывает" (ц)

Reply

akor168 April 14 2019, 12:15:43 UTC
Кстати, в варианте CrazyHouse судя по уже существующим движкам начальная позиция выиграна за белых после е2-е4 ( стокфиш дает +3). Но для белковых нереально даже держать логику счетного движка (все зависит от конкретного расчета).

Reply


zlyuk April 14 2019, 12:20:42 UTC
я не совсем понял что вы имеете в видду под "сгенерить рыбу". но я, по совпадению, как раз недавно тоже влез разобраться как работает альфазиро. её разработчики утверждают, что они первые (или почти первые) кто успешно не использовал вообще никакой функции "от экспертов". их нейронная сеть генерирует оценку позиции сама (после настройки), так же как и распределение по ходам, которое нужно для алгоритма поиска.
в каком-то абстрактном смысле, у них есть веса для фигур, потому что сеть смотрит на каждую фигуру отдельно (как на пиксель) и вольна делать с ней что хочет. но ответа на вопрос "сколько стоит конь" не существует.
более того, выбор хода зависит от оценки след. позиций и от независимо рассчитанного (той же сетью) распределения вероятностей ходов из данной позиции. и эти оценки смешаны, так что "вес" фигуры ещё влияет и на это распределение.
правильно ли я понял ваше предложение - заменить оценочную функию альфазиры на "экспертную" (как у стокфиш) и посмотреть что получится?

Reply

akor168 April 14 2019, 13:26:43 UTC
Не заменить, в верифицировать признаки, придуманные экспертами через альтернативный способ оценки внутреннего обучения нейросети. По идее, это может резко ускорить обучение. И тут важно, что движку не предлагается правильная система, которая запросто может оказаться неправильной, а он, именно, помимо построения своей собственной системы оценки, одновременно проверяет на зуб системы, предложенные экспертами, и/или настраивает гипер-параметры в них. Например, корректируя собственно стоимость фигур, или преимущества двух слонов, или явно пытаясь найти и формализовать понятие той или иной крепости.

Reply

zlyuk April 15 2019, 08:55:42 UTC
тут я уже рискую совсем опрофаниться, но мне кажется что стокфиш и подобные такое делают - регулируют настройки своим функциям по результатам игр.
я бы так это представил - вместо полностью произвольной оценочной функции, NN выдаёт параметры для наперёд фиксированной экспертной функции. интересный вариант, конечно.
правда пафос альфазирщиков в том, что их алгоритму вооще побоку во что играть, так что вряд ли их это заинтересует. но можно просто попробовать всунуть NN внутрь стокфиша, оставив поиск минимаксом (а не монте-карло). впрочем. наверняка счас всё это уже пробуют

Reply

akor168 April 15 2019, 09:13:51 UTC
Да, насколько я понял это я было одно из ноу-хау Стокфиша - тонкая настройка оценочной функции. Но, то что у нейронок общая оценка позиции сильнее это признают даже их противники. Стокфиш просто считает в тысячу больше позиций (потому что просчет через нейросеть сильно дольше), но оценочная позиция у него хуже, ибо она базируется на эмпириках с наигранными гипер-параметрами ( ... )

Reply


birdwatcher April 14 2019, 13:37:37 UTC
Интересно, существует ли движок, которому не нужно объяснять правила (как ходят разные фигуры, и вообще что нужно ходить по очереди и поставить мат). Он должен самостоятельно вывести это, наблюдая за тысячами партий, а если ходит неправильно, ему просто засчитывают поражение.

Reply

akor168 April 14 2019, 13:46:19 UTC
Ну, нейросети вполне можно настроить и так. Только надо сильно штрафовать за неправильные ходы или ходы два раза подряд. Но с другой стороны, если вы объявляете автоматический проигрыш за недопустимый ход, то ничего удивительного, что система за достаточное количество партий, просто выучит правила(поскольку нарушение правил это сразу проигрыш, а мы максимизируем выигрыш). Другой вопрос, что список допустимых ходов все-таки проще определить сразу, чтобы сэкономить время на обучение. И собственно моя идея, что надо попробовать соединить знания экспертов, доверив нейросети проверку их гипотез(то есть помимо ходов по правилам нейросети дополнительно скармливаются некие эмпирические правила, придуманные человеком, а она должна проверить их адекватность, и если да, использовать их, тем самым быстрее обучаясь).

Reply


technocrator April 14 2019, 21:27:47 UTC
>> белковый чемпион мира проиграет все встречи и движку с рейтингом в 3200

хм, неужели супергросс не сможет "засушить" прямо ни одной партии белыми в матче из 10-20 партий?

Reply

akor168 April 14 2019, 21:44:16 UTC
Ну может 1-2 ничьих белыми в матче из 100 партий. Условно говоря разница в рейтинге в 400 это практически 100% ожидание выигрыша в серьезной партии. КМС против гроссмейстера если быть более конкретнее.

Reply

technocrator April 14 2019, 21:52:35 UTC
Ну... учитывая современное развитие дебютной теории и то, что гроссы не слишком стремятся играть в открытых швейцарках, где часто теряют пункты рейтинга против крепких середнячков, то на высоких уровнях, имхо, всё не так однозначно. Ничейные тенденции всё-таки слишком сильны. Хотя, я что-то даже не следил, кто из современных гроссов после Крамника играл матчи с машинами без форы?

Reply

akor168 April 14 2019, 22:00:59 UTC
Накамура играл с Комодо(не очень успешно) но это уже довольно давно, с тех пор движки спрогрессировали. Хотя было бы очень интересно узнать какая фора гарантирует равную игру против топовых гроссов.

Reply


Leave a comment

Up