Reputation: 11
everyone
I'm currently running a research using Multilayer perceptron. I previously run this using WEKA but I have migrated to scikit-learn in python for various reason.
I tried to reproduce my prediction results in WEKA to scikit-learn so I made an exact perceptron with the exact same learning rate, momentum, hidden layer, etc However, the prediction results turns out differently for these both platforms. Can anybody gives me some explanation regarding this matter?
The only thing that I notice is that scikit learn uses either lbfgs, adam, and sgd to optimize its connection weight while WEKA uses backpropagation. But could it be the only reason? or is there another reason?
Best regards
Upvotes: 1
Views: 442
Reputation: 809
If you train a neural net with a different optimizer, it will certainly give different results. This difference could be slight or tremendous. All NN optimization algorithms use backpropagation - i.e., LBFGS, Adam, and SGD all use backpropagation. Also - in general - training the same NN twice will likely never give you the exact same result - this is because most optimizers (at least the ones worth your time) take partially stochastic steps.
Upvotes: 1