2010-05-21 24 views
2

J'utilise an external library pour les réseaux de neurones artificiels dans mon projet ..problèmes Neural Network

En testant l'ANN, il m'a donné la sortie de tous NaN (pas un nombre en C#)

  • L'ANN a 8 entrées, 5 cachées, 5 cachées, 2 sorties, et toutes les couches d'activation sont de type Linéaire, et utilise la rétropropagation, avec un taux d'apprentissage 0.65

  • je un cas de test pour la formation { -2.2, 1.3, 0.4, 0.5, 0.1, 5, 3, -5 } ,{ -0.3, 0.2 } pour 1000 époque

  • Et je l'ai testé sur { 0.2, -0.2, 5.3, 0.4, 0.5, 0, 35, 0.0 } qui a donné { NaN , NaN} Note: ce est un exemple de beaucoup qui produit même affaire ...

Je suis en train de découvrir si c'est un bogue dans la bibliothèque, ou une configuration illogique ..

Les raisons pour lesquelles je pouvais penser pour la configuration illogique:

  • Toutes les couches ne doivent pas être linéaires
  • peut ne pas avoir descendant des couches de taille, i.e. 8-5-5-2 est mauvais ..
  • Un seul testcase?
  • Les valeurs doivent être dans la gamme [0,1] ou [-1,1]

Est-ce l'une des raisons ci-dessus pourrait être la cause d'une erreur, ou il y a des contraintes/règles que je fais ne sais pas dans ANN la conception ..?

Note: Je suis novice dans ANN

Répondre

2

Eh bien, avec en sachant quoi que ce soit à propos de la bibliothèque que vous utilisez ce n'est pas facile à deviner. En règle générale, une entrée ANN doit être comprise entre 0..1 ou -1.1, c'est peut-être parce que vous avez des valeurs en dehors de cette plage causant les résultats malheureux. Si ce qui précède est la cause du problème, il existe un certain nombre de techniques permettant de transmettre les données d'encodage à un ANN, par exemple vous pouvez mettre à l'échelle vos entrées pour vous assurer qu'elles sont toujours dans la plage et maintenir la relation relative.