2017-01-18 26 views
0

Я начал немного узнавать о нейронных сетях. Я хотел создать сеть нейронов, которая учится играть в тетрис.NEAT Neuronal network JavaScript

Итак, я наткнулся на NEAT JS Library и подключил его с помощью игры в тетрис в consolejs. Моя забота о том, что что-то не так, потому что сеть держит только одну кнопку, независимо от того, сколько фрагментов уже на экране. Не уверен, что я написал неверную функцию фитнеса, или мой тренер бросает мой лучший геном. Потому что, когда сеть оценивает некоторые моменты, ускоряя плитку, это поведение уходит в следующее поколение.

Помощь всегда приветствуется :-) если вы хотите иметь взгляд проверить repo

Чтобы запустить только компакт-диск в каталог и запустить index.js с node.js

Спасибо всем заранее !

+0

Это, вероятно, слишком широка, как и было задано, и не предоставляет никакой информации, которая может быть немедленно доступна. –

+0

Хорошо, тогда позвольте мне перефразировать мой вопрос. Почему сеть не кажется, что ее выбор отличается от состояния игрового поля. Кажется, он решил только одну кнопку и никогда не пробует вторую игру. – user2581391

+0

Чтобы перефразировать то, что вы спрашиваете: «Пожалуйста, прочитайте и поймите мою кодовую базу и отлаживайте ее». На самом деле это действительно сложно. –

ответ

0

Вы можете попробовать несколько вещей ...

  1. тест, если вы получили вашу функцию подсчета очков права. Попытайтесь изменить его, чтобы вознаградить что-то глупое, как размещение блоков слева. Если вы получите ожидаемое поведение, вы, вероятно, можете легко изменить функцию, соответствующую вашей проблеме. Если результат противоположный тому, что вы ожидали, вы можете сказать алгоритм о ошибке вместо оценки, поэтому умножьте значение на -1 перед его возвратом.
  2. Отслеживайте средние баллы за поколение и посмотрите, со временем они улучшатся. Если да, все в порядке, но вам, вероятно, потребуется больше времени на обучение. Если что-то в алгоритме не так.
  3. Проверьте параметры эволюции. У вас должно быть как можно больше населения, чтобы обеспечить разнообразие. около 200 должно быть минимальным. Используйте лучшие 10% своего населения для воспроизведения. каждый воспроизводимый геном должен иметь небольшой (примерно 3%) шанс мутировать.