Pull to refresh

Comments 50

Для человека игра вслепую приводит к увеличению числа грубых ошибок [4] и по разным оценкам игра вслепую к потере 200-400 единиц рейтинга (а для начинающих это вообще непосильная задача).

При этом начинающий, хотя и не может играть вслепую, легко сможет играть в Фишер-рэндом. Настолько удачно, что даже частично нивелирует разницу в рейтингах с опытными игроками в классические шахматы. И, что важено, сделает это без какого-либо дополнительного предобучения.
А что с Фишер-рэндомом у вашей модели? Не будет ли на этом простом примере очевидна разница между тем, где универсальный ИИ - а где комбайн ассоциативного словопомола?

Сильно подозреваю, что никак, поскольку человек-любитель в Фишере видит всё-таки начальную расстановку, а в представленной модели вообще нет понятия "позиция на доске" иначе как производной от "последовательность уже сделанных ходов"

Ну почему? Делаем цепочку ходов из какой-то начальной позиции Фишер-рэндома, походив всеми фигурами, и вернув их в исходное положение. И скармливаем эту последовательность ходов нашей модели, после чего начинаем игру.
Настоящая беда модели том, что даже в такой ситуации (где модель формально получит все необходимые ей вводные в "родном формате", в виде цепочки предыдущих ходов всеми возможными фигурами, а про расположение пешек она "должна знать", по логике автора, из "предобучения" по ассоциациям на партиях классических шахмат) модель не сможет ничего сделать.
Потому что на самом деле это не модель ИИ, а опарыш Китайской комнаты.

Можно ещё проще сделать — ввести дополнительные символы, допустим угловые скобки или кавычки. И в этих кавычках давать не запись ходов, а текущие координаты фигур на доске. Таким образом, обучающие образцы с цепочками ходов можно разбавлять закавыченными образцами с текущей позицией, и модели будет намного проще выучить, как меняет позицию тот или иной ход.
Кроме того, я бы отдельно обучил токенизатор вместо использования стандартного, чтобы шахматные правила и набор допустимых ходов заложить ещё на этапе токенизации до поступления в сам трансформер.

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

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

Так и есть, но интуитивно кажется что вторая задача проще.

Интересный подход. Т.е. По сути, это попытка научить модель играть «в слепую», но при этом если человек играет «в слепую», то он хотя бы представляет себе доску с фигурами, потому что он когда-то видел её глазами и хотя бы знает, что доска квадратная)). а у данной модели таких знаний вообще нет.
А что если на каждом ходе дополнительно «скармливать» модели текущую расстановку фигур? Т.е. помогая ей «визуализировать» позицию? Т.к. Шахматы в основном позиционная игра и история ходов нужна в основном для построения текущей позиции (имхо)

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

Да, я понимаю, что цель исследования — выяснить есть ли «понимание» внутри языковой модели, а не сделать из неё гроссмейстера. и, судя по тому, что модель «научилась» таки играть на уровне новичка, какое-то понимание всё-таки есть. Но, возможно, очень много ресурсов тратится на внутреннюю «визуализацию» позиции. И на «обдумывание» стратегии остаётся слишком мало.
как вообще модель может «догадаться» о концепции «мата», если эта ситуация случается один раз и то в конце игры. Вот представьте, что вы наблюдаете за незнакомой вам игрой, и в какой-то момент судья говорит- «выиграли чёрные». При этом не понятно что вообще произошло. Ну сделали чёрные очередной ход- и что? Даже короля при этом не срубили. Как тут понять, что дело в короле?

Я не работал с трансформерами, но на сколько я себе представляю принцип их работы, то это, по сути, большие "умные" (вероятностные) хэшмапы - откуда в них взяться "пониманию" не вполне понятно. С другой стороны, что вообще такое "понимание" в данном контексте? На мой взгляд, сам по себе вопрос про "понимание мира" в моделях недостаточно формализован, чтобы давать на него чёткий ответ. Но это ни в коем случае не умаляет достоинств данной работы.

Ну сделали чёрные очередной ход- и что? Даже короля при этом не срубили. Как тут понять, что дело в короле?

По одному такому событию - ни как.

Нужна выборка, где повторяется какой-то признак. Его и ловит RL

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

Тут есть нюанс. Король в процессе игры очень редко бывает под ударом

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

как вообще модель может «догадаться» о концепции «мата», если эта ситуация случается один раз и то в конце игры

Думаете среди обучающей выборки ни разу не встречалось описание правил шахмат?)

В каком виде там описание правил?

В виде текста, оно ж на текстах училось.

Огромное спасибо за статью и за сайт. Очень приятно было сыграть с программой, делающей 'человеческие" ошибки. Я тоже не гроссмейстер, мой рейтинг на lichess.org в рапид около 2100 Эло, я смог победить в темпе блица. По ощущениям, программа очень солидно понимает позицию, но в тактике теряется и зевает (у ранних альфа-бета программ было наоборот), в статье об этом хорошо расписано. Современные программы играют как монстры, эта -- как человек, этим и ценна.

Благодарю)) очень приятно видеть такие комментарии)

Вы действительно заметили интересную деталь

Современные программы играют как монстры, эта -- как человек, этим и ценна

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

Мне кажется такая возможность может поднять общий уровень игры людей, так что такая разработка не бессмысленна и имеет пользу для обучения.


Думаю нас еще ждет множество открытий в шахматах и в развитии ИИ))

Рассматривая разные партии и размышляя я осознала одну вещь — большинство партий проходящих на высоком уровне и попадающих в набор данных не доигрывается до мата. Ибо считается неприличным играть до мата когда он виден.

Чисто теоретически, стало интересно: что, если эти партии "доиграть" до мата в классическом шахматном движке, а потом скормить нейронке? Выборка сразу вырастет, и все партии будут заканчиваться матом.

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

Думаю, ваше предположение хорошее и в практическом плане) Основная беда
там заключается во времени, которое требуется для того, чтобы получить
датасет, а именно: 15 дней беспрерывной игры движка. Более подробный
разбор этого вопроса, есть ниже в комментариях)

Рисунок 21. Модель доигрывает окончание партии за черный цвет

Эффективней оттеснять королем короля, а не ферзем

По легенде, Капе достаточно было посмотреть как играет его отец, чтобы заиграть лучше. (не из статьи)

В этом суть научения

Эффективней оттеснять королем короля, а не ферзем

Почему вы так думаете?

Оттеснять королем короля у вас не получится, так как соперник будет вставать в оппозицию вашему королю(вставать напротив вашего короля) и не позволит себя оттеснить.

Если речь идет об оттеснении с помощью короля и ферзя, то с точки зрения количества ходов при правильном оттеснении это действительно не менее эффективный метод, правда с одним "но". Данным способом ставить мат на "автомате" сложнее, так как нужно думать с какой точке лучше дать шах королю и нужно ли его делать

К примеру, здесь человек может думать о том, пора ли давать шах и если да, то куда или может, нужно продолжать ходить королем.

Конечно для сильного игрока это не проблема, но у слабого шахматиста может возникнуть дилемма и он (допустим) проиграет по времени.

С этой стороны, метод в котором человек отрезает короля своим ферзем буквой Г более надежный, так как более автоматический и позволяет любому шахматисту поставить мат на задумываясь. Поэтому ему и учат обычно детей и новичков.

Рассматривая разные партии и размышляя я осознала одну вещь — большинство партий проходящих на высоком уровне и попадающих в набор данных не доигрывается до мата. Ибо считается неприличным играть до мата когда он виден.

Суть любой RL - одна: строить карту оптимальных маршрутов к цели

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

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

А при чем тут RL? В данном случае подход совершенно другой. Как и задача.

Подавали на вход нейросети запись партий. На выходе что и что поощрялось? ... И еще скажите, что не было обучения с подкреплением

Тем более. Упрощенный RL

Это в программировании специальный термин. Как-то прочел книжку по психологии "Не рычите на собаку". Там про обучение с конца

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

Это стандартная цепочка обучения (с подкреплением)

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

Нет взаимодействия агента со средой и exploration-а

Без взаимодействия агента со средеой RL - не RL. Тут его (как я понял) нет, т.е. следующее состояние не зависит от действия агента (от предикта модели), т.к. датасет подготовлен заранее. В RL, помимо награды, важным является зависимость следующего состояния не только от предыдущего, но и от действия агента.

не только от предыдущего, но и от действия агента.

Разумеется от этой пары.

Нет взаимодействия агента со средой и exploration-а

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

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

И вот еще что, ваши языковые модели - ничто иное как next_state=астion(state) для каждой ходящей фигуры ... По сравнению тем, если передавать сети всю картинку, передаете текущие ходы... Это все равно, что передавать только часть доски, потом другую часть ....

PS в слепую играл когда-то сразу на 3 досках +одновременно в карты. При этом визуально доску не могу представить.

К сожалению, интерфейс иногда глючит. После первого хода человеком, компьютер не делает ход, а время тикает до нуля.

Спасибо, что сообщили. Мне не удалось повторить эту ошибку, поэтому посмотреть что случилось нельзя. Чтобы этого избежать, было поставлено логирование, поэтому если такая ситуация повториться, можете смело писать и я поправлю ошибку

А что если скармливать партии из chessDB(3.5m партий) какому-то шахматному движку, чтобы он доигрывал их до конца - тогда вы не потеряете хорошие партии из-за отсутствия мата.

Да, я думаю сама по себе это хорошая идея. Из недостатков здесь лишь
проблема времени существует. Чтобы сделать приличный датасет, нужно
будет собрать около 2 000 000 партий, а значит движку нужно будет
сделать 8 000 000 - 15 000 000 миллионов ходов, что бы их закончить.
Потому что партии могут быть не только брошены перед самим матом, но
из-за того, что у одно из соперников упал флаг (и доигрывать нужно 20
ходов) или же у соперника решающее преимущество как король + ферзь
против короля, но доигрывать до мата еще ходов 7. Даже если дать движку
0.1 времени на ход нужно будет около 15 дней ожидания. Конечно это
возможно, но на момент когда обнаружилась данная проблема, уже не
хватало времени. В будущем, я обязательно учту эту возможность.

Здравствуйте!

Я не сильно разбираюсь в шахматах, но может можно синтетически увеличить число игр заканчивающихся матом запустив в конце партии доигрывать stockfish? Я исхожу из предположения, что игра, которая закончилась сдачей должна иметь какой-то явный конец и stockfish сможет доводить партии до этого конца оптимально.

Возможно, если в партии будет при этом стоять флаг описания, что партия закончилась сдачей - то машина получит понимание, что доведение соперника до сдачи тоже победа?

Для человека, не сильно разбирающимся в вопросе вы сделали очень хорошее предположение. Я уже выше отвечала частично на ваш вопрос, но дополнительно отмечу, что ваше утверждение о

Я исхожу из предположения, что игра, которая закончилась сдачей должна иметь какой-то явный конец

в целом справедливо, если человек с хорошем рейтингом ( а это +1700 где-то и это важный момент, так как более слабые шахматисты не всегда могут правильно оценить позицию и могут сдаться там, где еще не все потеряно) сдал партию добровольно(!), а не из-за потери флага, где вся игра еще может быть впереди. Так же, в выборке присутствуют не только "живые" партии, но и сыгранные онлайн и для них ситуация еще сложнее. К примеру, кто-то во время партии мог решить, что ему пора идти есть мороженое и бросить партию просто так или же иметь проблему с интернетом из-за чего возникнет техническое поражение спустя несколько минут.

Спасибо за статью в исследовательском ключе. Затронули интересные темы, хотя они и обсуждаются здесь часто. Некоторые замечания и немного занудства)
Масштабирование больших языковых моделей (LLM) является захватывающей темой, поскольку рассматривается как один из лучших кандидатов на пути к ИИ человеческого уровня.
Нет, так кажется только разработчикам таких моделей, и поддерживается науч-поп. прессой на волне достигнутых ими успехов в практических приложениях. Грубый предел возможностей таких систем определяется объемом знаний доступных на данный момент. Увеличить его может пока только человек, в перспективе эффективнее с использованием подобных систем ИИ. Чтобы сравняться с возможностями человека, т.е. неформально понимать смысл слов в разных контекстах (банально не путаться в омонимии) и получать новые знания, не сводящиеся к уже имеющимся, ИИ на основе ИНС архитектурно должен быть ближе к архитектуре когнитивной системы человека, т.е. соответствовать требованиям когнитивной архитектуры (обзор). Это особенно важно для автономных систем ИИ, напр, управляющих беспилотными миссиям к далеким планетам и звездам, оперативная связь с кот. невозможна. Таких схем разработано не мало, но они носят пока больше теоретический характер, до практической реализации дошли немногие, и больше как демонстрации возможностей. На базе ИНС разработаны отдельные подсистемы таких архитектур. Напр, глубокие сверточные сети неплохо категоризуют изображения, т.к. их архитектура подобна структуре отделов вентрального пути зрительной системы приматов, языковые модели неплохо моделируют диалоги основываясь на статистике взаимосвязей слов в естественных языках. Остается такие подсистемы интегрировать в единую архитектуру, но это наиболее сложная задача, кот. в перспективе придется решить разработчикам систем ИИ. Пока в самой нейробиологии с пониманием такой интеграции функций много неясностей. В одной из тем делал подробный комент, как это может выглядеть в применении к неформальному понимаю смысла чисел и использование этого в математических рассуждениях. Одна из последних публикаций на тему когнитивной архитектуры в ИНС.
Разбор того же Терминатора нам показывает, что он имел достаточно большое представление об окружающем мире. Терминатор понимал кто он такой и в чем его предназначение (когда во 2 части Джон восклицает «Ты мог убить его!» на что тот отвечает «Конечно, я же Терминатор» и все время подсказывает мальчику, что способствует миссии, а что нет). Он знал, зачем у человечества создан тот или иной предмет. И умело его использует как по назначению, так и по креативности (он то разъезжает на машине, то активно ей убивает) в чем помогает абстрактное мышление.
Конечно имел, т.к. авторы в кино интуитивно наградили его когнитивной архитектурой. Терминатор не просто железка с языковой моделью в голове) У него сенсоры и моторная система подобные человеческим, хотя в общем случае это вовсе не обязательно. Поэтому его гибель в котле с металлом с гаснущими «глазами» вызывает человеческое сочувствие.
На этот счет существуют две основных точки зрения людей. Первые считают, что нужно увеличивать размер моделей до тех пор, пока они не перейдут какой-то порог размера данных (знаний), после которых можно «взломать» язык и вычислить законы мироустройства.
Это мнение людей кот. занимаются исключительно ИНС с готовыми идеями и решениями. Без представлений из каких областей исследований они инспирируются. Впрочем, для успешной работы это не помеха, если это не касается поиска новых архитектурных решений. В одном из коментов привел аналогию почему этот путь кажется тупиковым, и как эти проблемы обходятся в нейробиологии человека.
Вторые же говорят о том, что современные языковые модели, просто умело манипулирует набором данных, совершенно не понимая о чем идет речь (сюда же в итоге можно отнести поведение LaMDA, которая лишь создает имитацию понимания разговора). Один из самых влиятельных лидеров этого мнения «крестный отец ИИ» Ян Лекун. Который утверждает, что увеличение языковых моделей не приведет к возникновению ИИ уровня человека: «пытаться строить интеллектуальные машины, расширяя языковые модели, — это все равно что строить высотные самолеты для полета на Луну. Вы можете побить рекорды высоты, но полет на Луну потребует совершенно другого подхода».
Согласен с таким утверждением. Однако Лекун весьма противоречивая фигура в идейном плане. Он верит в некий собственный путь развития ИИ, но при этом постоянно вдохновляется идеями из нейробиологии) Например, он сторонник замшелой идеи обучения ИИ с «чистого листа» позаимствованной у средневековых философов в отношении обучения человека, когда исследований на эту тему еще в помине не было. См. статью с обсуждением его взглядов на эту тему.
Чей лагерь прав точно не известно. Стоит наверное выделить три причины, которые могут ограничить возможности данного подхода:

Язык не отражает в достаточной степени реальности и по текстовым описаниям нельзя получить знания о мире
Имеющаяся архитектура Transformer в принципе ограничена и не способна справятся с определенным классом задач, требующим построения мысленных моделей и алгоритмов
Сама по себе задача предсказания слова в конце текста не достаточно широкая
Так и есть с некоторыми уточнениями. По сути об этом написал выше.
Модели вроде AlphaZero [3], которые считаются нейросетями, но на самом деле это не чистые нейросети, а нейросети плюс перебор вариантов по дереву методом Монте-Карло. Поэтому утверждение, что они обучаются шахматам с нуля, зная лишь правила шахмат не совсем верно — они «знают» изначально еще и метод перебора вариантов, имеют репрезентацию текущей позиции на входе в которой заданы пространственные отношения между фигурами. Кроме того, эти модели не универсальны — они могут играть в разные игры, но вот поговорить с ними о смысле жизни уже не получится.
Э-э-э… об этом как раз речь в статье с обсуждением табулы рассы с Ле Куном, что в этой сети заложено априори.
Пример с концептуализацией
У человека природой заложено не мало априорных знаний и способностей, точнее выработанных эволюционно. Одна их главных — способность к обобщению информации. Эволюционно эта способность является ранним приобретением, и поэтому заложена глубоко на нейронном уровне, в их способности к пр-временной суммации (или компрессии, нелинейной фильтрации — смотря с какой стороны рассматривать). В простой форме сумматора с функцией активации эту способность унаследовали формальные модели нейронов. На способности к пр-временной суммации строится вся иерархия обработки информации в структурах мозга, кот. с разной степенью успеха моделируется ИНС с различной архитектурой. Обобщение (абстрагирование) также является компрессией информации. Высшей формой обобщения считается концептуализация (дополнительно см. теория теории), связанная с переносом концептуальной структуры (модели) из одной области в другую. Судя по этому обзору исследований на младенцах до 2-х лет способность к концептуализации фактически является врожденной способностью.

Поясню изложенное на примере из собственного игрового опыта, но не в шахматы, а шашки. Когда в детстве взрослые научили играть в них, то по началу часто проигрывал, даже тем, кто научился позже. Это расстраивало, поэтому стал тщательнее продумывать ходы затрачивая на это больше времени, но результат от этого изменился мало. Это продолжалось до тех пор пока неожиданно не возникло ощущение, что игра в шашки чем-то напоминает сражение противников на поле битвы. А в этом был силен) В то время насмотревшись кино любил рассматривать карты боевых действий, походов, и тп. Перевел гору тетрадей с рисованием таких карт воображаемых битв с дислокацией войск, направлением атак, засад, окружений. Все это так живо представлялось в воображении) В мозге словно что-то перемкнуло, и доска стала казаться полем сражения, фишки пехотой и кавалерией, ходы — направлением атак, организацией засад и окружений. Странным было то, что после этого стал меньше задумываться над ходами, они стали возникать сами-собой, интуитивно, и стали намного результативнее. Значительно позже задумался над этим — с чем было связано это улучшение в игре? Первая мысль, если долго мучиться, то что нибудь получится) Т.е. все же научился находить эффективные ходы и предугадывать ответные, и это умение автоматизировалось, как обычно бывает с навыками, и оно осело в подсознании. Но к чему тогда возникла аналогия с полем сражения? Может мозг таким образом дал знать о достижении такого уровня? Но возможно произошел некоторый перенос концептуальной модели битвы, кот. так же является своеобразной игрой, на игру в шашки, включая на уровне мотивации. Достоверно этого уже не узнать, и останется тайной мозга — черного ящика. Шахматы любили многие полководцы, и играли весьма на приличном уровне. Интересно, это случайное совпадение, или в этом случае так же проявляется концептуальная связь?

ИНС также могут делать нечто подобное, напр, обучение на выборке одного языка облегчает обучение на выборке для следующего, особенно если эти языки из одной языковой группы, как это происходит у людей. Но что именно при этом происходит в сети? Брутальное обобщение или перенос концептуальной модели с одного языка на другой? Разработчики сетей думают в этом направлении, в этой статье авторы разрабатывают методы непрерывного обучения с учетом аналогий, в этой работе что-то пытается сделать Гугл в еще большем масштабе. Посмотрим насколько удастся стянуть эту человеческую фичу.
На lichess можно добавить своего бота, который будет иметь реальный рейтинг, я думаю таким образом можно гораздо лучше оценить рейтинг.
lichess.org/player/bots

Спасибо за данную статью, Алиса, было очень интересно её читать и потом сыграть партейку-другую.

Признаюсь, первую партию я проиграл. Мы дошли до примерно равного уровня ("забаррикадировались"), и на моих попытках прорыва - я проиграл. Сицилианку против неё бессмысленно разыгрывать...

А вот вторая партия заслуживает внимания. На основе первой партии и Ваших рассказов - я понял, что "стандартное" она играет очень хорошо, и здесь у меня нет шансов. Поэтому с самого старта я начал "наглеть", но немного неожиданно наглел, хоть и равноценно. Хоть в итоге мы опять дошли до уровня баррикад, но с небольшим стратегическим перевесом с моей стороны. Ходить мне особо некуда было, и я начал делать одинаковые ходы ладьёй (вперёд - назад), ожидая что она сделает. По началу она аналогично прыгала своей (ибо ей тоже некуда было ходить), но где-то на 3-4 таком прыгании она походила пешкой, что дало мне удобный ход конём. И что странно - после этого она посыпалась, причём местами начала делать даже глупые ходы (хоть и не все).

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

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

И в завершение ещё раз хочется выразить благодарность Вам за подобную статью, было очень интересно читать.

П.С.

В начальной школе я добился 3-его разряда (а так и 2-го имел бы, но недостаточно было участия в соревнованиях нужного уровня). Классе в 5-6 сиё дело забросил, и сейчас лишь иногда играю с друзьями, интереса ради. Какой это уровень в приведённом Вами рейтинге не знаю, но что-то среднее, наверное, у меня было бы.

Спасибо и вам, без таких любопытных читателях как вы, выпуск подобных статей был бы в итоге невозможен) Поэтому я искренне рада, что вам понравилось ее читать)
Это действительно хорошее наблюдение

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

Кажется, что модель должна повторять ходы, но на самом деле это не всегда так. К примеру, обычные шахматисты часто делают повторения не из-за того, что хотят ничью, а набирая время несколькими быстрыми ходами. А перед ходом который должен фиксировать ничью делают отклонение (или же после троекратного повторения, просто не фиксируют ничью а продолжают играть). Поэтому в выборке модели вполне может встречаться повторение, которое в итоге не заканчивается ничьей. Еще могу предположить, что из-за того, что модель играет с контекстом в котором стоит результат 0-1 в пользу модели, то, в некоторых позициях это может стимулировать ее делать не лучший ход (по ее мнению), который в нашем случае приводит к ничье по правилам, а тот который позволит выиграть. Но так как она не знает как победить, то просто "сыпется" .

Как решать проблему неготовности модели к нестандартным ходам - на данный момент идей не имею

Возможно это решится, простым увеличением выборки обучения за счет чего увеличится ее способности к обобщению, как к примеру произошло, когда проверялось, что будут делать черные на 1. e4 e5 2. d4 exd4 3. Qxd4 Nc6 4. Qxg7, что ооооочень нестандартно. Первые модели "игнорировали" ферзя на g7, а те, что учились на более крупных данных спокойно его ели (хотя ход от этого не стал менее редким и абсурдным в такой партии).

Или думаю это возможно за счет партий stockfish, так как движок лишен присущего человеку "чувства прекрасного" и в этом плане всегда старается сделать лучший ход в конкретной позиции, а не играть по знакомым схемам и расстановкам

Спасибо за статью. Возможно, задам глупый вопрос, но интересно, какую роль играет «предобученность» модели в вашем дообучении? Не будут ли результаты похожими, если обучать шахматам модель с аналогичной архитектурой с нуля?

Как говорится: "Не бывает глупых вопросов. Глуп тот вопрос, который не был задан."

Спасибо за ваш вопрос)))

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

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

Кстати, ваш сайт https://chess.meanotek.ru/ недоступен, просьба вернуть :)

Алиса, очень интересная и глубокая статья. Спасибо большое за публикацию! Интересно и познавательно было прочитать!

Чигорин с лишней фигурой, отводит своего слона от защиты короля

???
на диаграмме он без пешки, а не с фигурой :-)

Sign up to leave a comment.