Как реализовать искусственную нейронную сеть в Delphi?

Я хочу иметь искусственную нейронную сеть:

  • 42 входных нейрона
  • 168 скрытых нейронов
  • 7 выходных нейронов

Эта сеть должна играть в игру "Connect Four". В конце каждой игры сеть получает обратную связь (результат игры / победа?).

Обучение должно быть сделано с временным различием обучения.

Мои вопросы:

  • Какие значения должны быть в моем массиве вознаграждений?
  • И наконец: как я могу применить это к моей игре сейчас?

Огромное спасибо заранее!

5 ответов

Решение

Нет необходимости в псевдокоде. Посмотрите на эти ссылки:

Первый удар: вы присваиваете "0" t в 'main', но нижний предел ваших массивов равен '1', поэтому вы получаете доступ к несуществующему элементу в циклах, следовательно, к AV.

Если бы вы включили проверку диапазона в опциях компилятора, вы бы получили ошибку проверки диапазона, и вы, вероятно, нашли бы причину раньше.

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

Если вы заинтересованы в использовании сторонней библиотеки (бесплатной для некоммерческих продуктов, я очень доволен некоторыми инструментами этой компании http://www.mitov.com/html/intelligencelab.html (хотя я ' мы никогда не использовали их разведывательную лабораторию, только видео инструменты.)

Fast Artificial Neural Network (FANN) - это хорошая библиотека с открытым исходным кодом, она была оптимизирована и использована большим сообществом с большим количеством поддержки и привязок Delphi.

Рекомендуется использовать зависимости в этой области, если вы не до конца понимаете, что делаете, мельчайшие детали могут оказать большое влияние на работу нейронной сети; так что лучше всего тратить время на реализацию сети, а затем на что-то еще.

Другие ссылки, которые могут быть полезны для вас:

http://delphimagic.blogspot.com.ar/2012/12/red-neuronal-backpropagation.html(включает исходный код). Кодирование нейронной сети Backpropagation с двумя входными нейронами, двумя выходными и одним скрытым слоем. В примере представлены два набора данных, которые могут обучить сеть и увидеть, насколько точно обучение минимизирует ошибку, показанную на графике. Модификация программы может изменить количество раз, когда сеть обучалась с тестовыми данными (эпохами)

Другие вопросы по тегам