Проблемы нейронной сети - PullRequest
2 голосов
/ 21 мая 2010

Я использую внешнюю библиотеку для искусственных нейронных сетей в моем проекте ..

Во время тестирования ANN, он дал мне вывод всех NaN (не число в C #)

  • ANN имеет 8 входных, 5 скрытых, 5 скрытых, 2 выходных, и все слои активации имеют линейный тип и использует обратное распространение со скоростью обучения 0,65

  • Я использовал один тестовый пример для обучения { -2.2, 1.3, 0.4, 0.5, 0.1, 5, 3, -5 } ,{ -0.3, 0.2 } за 1000 эпох

  • И я проверил это на { 0.2, -0.2, 5.3, 0.4, 0.5, 0, 35, 0.0 }, что дало { NaN , NaN} Примечание: это один из многих примеров, которые приводят к одному и тому же случаю ...

Я пытаюсь выяснить, является ли это ошибкой в ​​библиотеке или нелогичной конфигурацией ..

Причины, которые я мог придумать для нелогичной конфигурации:

  • Все слои не должны быть линейными
  • Не может быть слоев с нисходящим размером, т. Е. 8-5-5-2 плохо ..
  • Только один тест?
  • Значения должны быть в диапазоне [0,1] или [-1,1]

Может ли любая из вышеперечисленных причин быть причиной ошибки, или есть некоторые ограничения / правила, которые я не знаю при проектировании ANN? .. *

Примечание: я новичок в ANN

1 Ответ

2 голосов
/ 21 мая 2010

Что ж, без знания какой-либо информации о используемой вами библиотеке нелегко догадаться. Как правило, входные данные ANN должны быть в диапазоне от 0,1 до -1,1, поэтому, возможно, это потому, что у вас есть значения за пределами этого диапазона, вызывающие неудачные результаты.

Если вышеуказанное является причиной проблемы, существует ряд технических приемов для кодирования данных, передаваемых в ANN, например, вы можете масштабировать свои входные данные, чтобы убедиться, что они всегда находятся в диапазоне, и поддерживать относительные отношения.

...