The Network(MultiLayerPercept) does not learn

Help
yokalona
2012-01-15
2012-12-24
  • yokalona

    yokalona - 2012-01-15

    Hi!
    I make a MultiLayerPerceptron, and than need to learn him, but he does not learn!
    I make this code:

    neuralNetwork = new MultiLayerPerceptron(new int[]{8,8,1});
        trainingSet = new TrainingSet<SupervisedTrainingElement>();
    

    than training set loaded from file:
        

       TrainingSet.createFromFile("output.txt", 8, 1, " ");
    

    and getting start to learn:
          

     neuralNetwork.learnInSameThread(trainingSet);
    

    when I begin to test the network - it gives the same response to any input. If you repeat the training - the answer varies, but all the same just repeated.

    "output.txt" have a 8 input {-3..3} and 1 output {0.1 .. 0.9}.
    

    I add all from file with code:

    Iterator<SupervisedTrainingElement> iter=TrainingSet.createFromFile("output.txt", 8, 1, " ").iterator();
        while(iter.hasNext())
        trainingSet.addElement(iter.next());
    

    The network is trained a lot of time, even too much - after 30 minutes, I realized that nothing good happened. apparently I'm doing something wrong.
    please, tell me, what the problem?

     
  • Zoran Sevarac

    Zoran Sevarac - 2012-01-15

    Try normalizing inputs, they all must be all in range  or , it wont work if they are in range
    Do it with
    trainingSet.normalize();

    Also if your inputs are on  it might make sense to use Tanh as transfer function, instead default sigmoid

    Good luck!
    Zoran

     
  • yokalona

    yokalona - 2012-05-20

    Thanks a lot =)
    It works =)

     

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks