Тренируй нейронную сеть на крестики-нолики с помощью генетического алгоритма - PullRequest
0 голосов
/ 22 мая 2018

Я пытался реализовать генетический алгоритм для игры «крестики-нолики».На данный момент я делаю следующее:

  1. Инициализируем 50 случайных сетей
  2. Пусть каждая сеть играет против каждой сети.
  3. После этого каждая сетьсыграет 98 игр (против каждого игрока на каждой стороне)
  4. пригодность каждой сети рассчитывается следующим образом: fitness = wins + draws -loses
  5. Применить генетический алгоритм:

    5,1.Выберите 5 лучших сетей по значению их пригодности.

    5.2.Скопируйте эти 5 сетей в другие 45 сетей.(То есть 10 раз первое, 10 раз второе ...)

    5.3.Измените p процентов от веса со случайным гауссианским множителем, умноженным на коэффициент s.

    if(p < Random(0,1)){ weight/bias += Random.gaussian() * s; }

Мои значения, которые я сейчас использую:

p = 0.05
s = 0.05

И моя сеть принимает решения следующим образом:

Я использую минимаксный алгоритм с глубиной 2 (не много, я знаю).Оценка платы выполняется сетью.

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

Я очень рад, если кто-то может помочь мне с этим.

Привет, Финн

...