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