Обучение нейронной сети

Igor

Новичок
#1
Доброго времени суток. Недавно увлекся темой нейронных сетей, однако возникает много вопросов, и надеюсь кто-нибудь сможет мне помочь.
Решил попробовать создать программу, имитирующие поле ячеек nXn размера, также имеется m "игроков" (Роль игроков заменяет компьютер). Изначально "игроки" занимают одну произвольную точку, а дальше их задача захватить все поле. Происходит это следующим образом: наступает черед игрока под номером 1, проверяются все клетки, занятые этим игроком, каждая клетка имеет право на один ход в пределах одной ячейки, то есть 8 клеток вокруг данной. Клетка игрока может сделать два действия: "захватить пустую клетку" или же "уничтожить клетку противника".
Имеются три матрицы
(все значения в матрицах взяты с потолка)
1) матрица 3x3 (определяет важность хода в ту или иную сторону)
[1,1,1]
[1,0,1]
[1,1,1]

2) матрица 3x3 для атаки (определяет вес для атаки)
[1,1,1]
[2,0,2]
[3,3,3]

3) матрица 3х3 для занятия пустых клеток
[3,,3,3]
[2,0,2]
[1,1,1]

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

Вложения

#2
скорей всего придётся использовать генетический алгоритм. и рандомно менять матрицы пока не появится доминирующий вид. Вот видео про гинетический алгоритм, но без нейросетей
 
Последнее редактирование: