Как стать автором
Обновить

Комментарии 14

Забавно, я как-то написал статью с таким же названием.
Правда там речь шла скорее о перцептроне.

Попробуем повысить точность, заменив везде float на double. Это оказалось правильным решением, теперь при правильном количестве итераций вес всегда принимает значение 1.8 и смещение 32.

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

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

https://habr.com/ru/articles/714988/
Я говорил об этой статье. Неправильно ссылку прикрепил.

Усилия и результаты похвальные, но если решили сделать нейросеть, способную играть в шахматы, то начинать надо не с этого. В конце концов есть множество готовых, отлаженных фрэймворков для программирования нейросетей, тот же tensorflow или pytorch. Основная сложность тут - собрать и подготовить обучающий датасет. Без него нейронная сеть не заработает, а практика показывает, что именно создание датасета - 95% всей работы. В Вашем случае нужно разобрать пошагово многие тысячи шахматных партий, создав из них обучающий датасет. А если создадите и еще сделаете публичным для других, сообщество будет очень благодарно ) Успехов!

Я думаю, понять идею градиентного спуска это важный шаг, хоть и маленький. Нельзя же сразу с места в карьер.

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

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

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

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

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

Точно так же разбирался с этим делом, проникся градиентным спуском, вдохновило это видео https://www.youtube.com/watch?v=eyCq3cNFpMU, там в первой части теория, во второй (эта ссылка) код на С++ для случая произвольного количества подбираемых параметров. Там такой ньюанс, что чем больше параметров хочется определить, тем больше локальных минимумов может образоваться и замучиешся подбирать начальные точки и смещения.

Посмотрел по вашей рекомендации, видео о теории показалось мне более полезным, не зря посмотрел

Как-то попадался на глаза движок, который можно натренировать на любую пошаговую игру с полной информацией. Воспроизводит гугловский AlphaZero. Гугл не открыл исходники, это кто-то имплементировал по описанию. Там Монте-Карло плюс нейросетка для оценки положения. Для тренировки датасет не нужен - только правила игры. Играет сам с своими копиями, пока не достигнет дзена (эволюционный алгоритм). Вот его бы разобрать.

Можно ссылку на проект или название?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории