Я хочу запрограммировать шахматный движок, который учится делать хорошие ходы и выигрывать против других игроков. Я уже закодировал представление шахматной доски и функцию, которая выводит все возможные движения. Поэтому мне нужна только функция оценки, которая говорит, насколько хороша данная ситуация на доске. Поэтому я хотел бы использовать искусственную нейронную сеть, которая затем должна оценивать данную позицию. Выходной сигнал должен быть численным значением. Чем выше значение, тем лучше положение белого игрока.
Мой подход заключается в создании сети из 385 нейронов: на доске шесть уникальных шахматных фигур и 64 поля. Поэтому для каждого поля мы берем 6 нейронов (1 для каждой части). Если есть белый кусок, входное значение равно 1. Если есть черная деталь, значение равно -1. И если в этом поле нет такого фрагмента, значение равно 0. В дополнение к этому должен быть 1 нейрон для перемещения игрока. Если это белый поворот, входное значение равно 1, и если он черный, значение равно -1.
Я думаю, что конфигурация нейронной сети довольно хороша. Но основная часть отсутствует: как я могу реализовать эту нейронную сеть на языке кодирования (например, Delphi)? Я думаю, что веса для каждого нейрона должны быть одинаковыми в начале. В зависимости от результата матча весы затем должны быть скорректированы. Но как? Я думаю, что я должен позволить двум игрокам (использующим мой движок) играть друг против друга. Если белые победят, черные получат обратную связь, что ее веса не являются хорошими.
Итак, было бы здорово, если бы вы могли помочь мне внедрить нейронную сеть в язык кодирования (лучше всего было бы Delphi, иначе псевдокод). Спасибо заранее!