1

I am trying to develop an Artificial Neural Network using PyBrain to model biological data. My ANN compiles and runs, but its accuracy value is very low, never surpassing ~62%. From a coding perspective, how can I improve the ANN's accuracy? Something I noticed was that each time, the outputs of the ANN are not the same, either, even though the test data set doesn't change--is there a reason the ANN is acting to unstably, and how can I improve this?

Thank you! :)

user3847447
  • 1,291
  • 3
  • 11
  • 8
  • What type of network are you using? What type of learning/optimization do you use? – janwschaefer Aug 11 '14 at 22:01
  • I am using the backpropagation algorithm built into PyBrain's library, and my hidden layer uses the tanh squashing function. I hope this answers the question--I would be happy to provide code if it would help. – user3847447 Aug 12 '14 at 23:31

1 Answers1

1

If you creating new network each time you run your script then it is normal that outputs are different.

Each time you create ANN pybrain initialize weights of connections with random values (range 0 to 1).

You can save your ANN with NetworkWriter and read it with NetworkReader in pybrain.tools.customxml (see code documentation for reference, pybrain API is missing few things).

You can adjust training process with learning rate and momentum. Also you could apply more training epoch to your network.

If you provide your code I could say more.

Pawel Wisniewski
  • 430
  • 4
  • 21
  • Thank you! However, is there a way to save the iteration that yields the highest accuracy? – user3847447 Aug 13 '14 at 18:01
  • I personally iterate through momentum values (from 0 to 1 step 0.1 but it can be smaller, like 0.01 if you have time) and learning rate (from 0.1 to 1 step 0.1) and i use `NetworkWriter` to save network that scores the best on `testOnData()` from `BackpropTrainer` class. – Pawel Wisniewski Aug 14 '14 at 06:01