Пишу нейросеть, которая б научилась играть в игру "4 в ряд".
Код
Использовал сверточную нейросеть и q-learning. Еще сложность в том, что нельзя изменять Q функцию после каждого хода. Нужно запоминать ход, и только после сыгранной партии изменять Q-функцию.
Но возникают странности, потому что после 1-3 эпох все ходы становятся одинаковыми.
Это доказывает функция evaluate()
Логи:
Epoch 0/10000
Right ANS=410, Real=[8, 8, 8]
Epoch 0/10000
Right ANS=410, Real=[8, 8, 8]
Epoch 100/10000
Right ANS=410, Real=[8, 8, 8]
...
Epoch 9900/10000
Right ANS=410, Real=[8, 8, 8]
Сама нейросеть:
InputConv2d (1 фильтр)
Conv2d(32 фильтра, размер ядра = 4x4, т.к. игра называется 4 в ряд)
персептрон 60
персептрон 30
персептрон 10 - вывод
В чем проблема? (Чувствую, всем все равно. Или иди разбирайся сам, зачем мне на тебя тратить время)