-
Notifications
You must be signed in to change notification settings - Fork 267
Recurrent freeform networks are broken (NullPointerException) #160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Thanks, I will take a look. |
I checked in code that fixes the NPE. I don't believe it is training correctly, though, and am still looking at that. |
The original ElmanXOR example uses a hybrid strategy with the NeuralSimulatedAnnealing training class, while for freeform networks we only have backpropagation and resilient propagation, is this correct? Are you always testing the Elman topology? Ideally the training should also work for more complex topologies with multiple context layers. |
networks. (i.e. with context neurons)
Just checked in another fix. I also added a ElmanFreeform example. This example works just like the flat network example, it uses hybrid with simulated annealing. It works with Elman just fine now, and trains to error levels I would expect. I am still going to keep this issue open as there are a few more things I would like to do. Namely I want to figure out what training methods all work with freeform. Backpropagation and resilient will work. I suspect anything that is not derivative based will work, i.e. annealing, genetic, PSO, and NelderMead might well work. But I doubt very much that SCG, Levenberg Marquadt would. They would require a special version to be written for freeform. Maybe. But I want to try each, it if its a minor issue preventing the trainer from working, I'll fix it. Secondly, now that I actually understand how the freeform nets work, I am going to add a wiki page on them that describes how to put together custom structures with them. |
Thank you for your effort :) |
NPE is fixed, and it seems to train for SRN's now. I aded an example for that. Also wrote up some docs for freeform. http://www.heatonresearch.com/wiki/Freeform_Network |
@jeffheaton what about the isRecurrent parameter? There are 2 possibilities:
|
I sent an email to the original contributor, but he has not responded. My thoughts are that it is "useful, but currently unused". I am going to leave it in, for now. There are really two type of recurrent networks. Recurrent, with a context neuron. This is what the freeform networks currently support. But there are also completely recurrent networks, such as NEAT networks. Here you simply have to run the network a fixed number of cycles to actually calculate the recurrent links. When I ultimately expand freeform to support NEAT style recurrence, then I might well need such a flag. |
As I wrote here http://www.heatonresearch.com/comment/6404#comment-6404, recurrent freeform networks are broken.
There are many ways to reproduce the problem, here I took the "ElmanXOR" example and I tried to convert the Elman network to a freeform Elman network (applying minimal changes).
What I always get is a NullPointerException when I try to train the network.
Thanks.
The text was updated successfully, but these errors were encountered: