Can develop java program with Simbrain?

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Can develop java program with Simbrain?

novenyang
hi, Jeff,

Thanks for your work!

If there is any tutorial to show how can I use Simbrain to develop a programme without using the GUI? I tried to find it in the documents but fail to get it.

Thanks in advance!!

Yang, Hui
Reply | Threaded
Open this post in threaded view
|

Re: Can develop java program with Simbrain?

jyoshimi
Administrator
Hello, and thanks for your message.  There is a lot to say about this.   The first thing is that Simbrain was initially intended primarily as a GUI-oriented neural network program, with the understanding that programs like Joone and Snarli served the needs of those looking for a good java neural net API / library.

However, a lot of work did go in to the network API for Simbrain, and we are still working on it.  It is especially useful if you want to create networks with arbitrary topology.  So there is more to say and I could try to put together some docs for you.   But before I go on, let me ask: are you using Simbrain 2.0 (the working version you can download) or the latest code from the subversion repository, which will become 3.0?  Also, what type of application do you have in mind?

Thanks for your interest,

- Jeff
Reply | Threaded
Open this post in threaded view
|

Re: Can develop java program with Simbrain?

novenyang
hi, Jeff,

Thanks for your reply.

I am using Simbrain 2.0. And the nueral network in my mind is supervised, forward, backpropagation training algorithm.

The simplest example is to simulate a quadratic function y = x*x, actually, I spent about 10 days using Joone, which made me very depressed. It seems to me that Joone neural net only works for the domain x in [0, 1], but for example if x=1.2, y = 1.44, the error become very large. while it seems no body cares about Joone anymore, and I cannot get help from there.

Thank you in advance.

Yang, Hui
Reply | Threaded
Open this post in threaded view
|

Re: Can develop java program with Simbrain?

jyoshimi
Administrator
Ah, I see. Well, if you need to make progress quickly, I don't think Simbrain will be able to help much.  2.0's backprop is based on Snarli, so you are best off using the Snarli library directly:

http://snarli.sourceforge.net/

The sourceforge forum does not look active, but Simon Levy, who created it, is generally pretty responsive.  I think he may have a newer release which is not on sourceforge yet, but I'm not sure.

Backprop is being rewritten for Simbrain 3.0, but that will not be released for at least 6 months, and probably even later than that, alas.

Too bad about Joone, since so much work went in to developing it and since its focus is backprop.   I thought I saw a post somewhere about others picking up with the work on it...

Best,

- Jeff
Reply | Threaded
Open this post in threaded view
|

Re: Can develop java program with Simbrain?

nervestaple
I too would be greatly interested in a non-GUI API for simbrain. I've looked long and hard but there don't seem to be any libraries for spiking neural nets in Java (or C#, my other language) that are implemented as well as simbrain's. The Izhikivech neuron especially. I am developing a 2D simulation of evolving spiking neural nets in a physics-based environment, and have most of it written except currently I am using Joone, which doesn't seem to be suited for real-time calculation nor spiking neural nets. Any pointers on using just the neural net API of simbrain or a pointer towards something that could help me would be greatly appreciated! (Time is not such a big issue... if simbrain is indeed the only one, i would gladly wait for an API)
Reply | Threaded
Open this post in threaded view
|

Re: Can develop java program with Simbrain?

novenyang
In reply to this post by jyoshimi
Thanks Jeff for saving me so much time!!

Yang, Hui
Reply | Threaded
Open this post in threaded view
|

Re: Can develop java program with Simbrain?

jyoshimi
Administrator
In reply to this post by nervestaple
Nervestaple:

I'm glad for yours (and Hui's) interest in the underlying model networks in Simbrain, especially since the code wasn't originally written to be used as a library.  On the other hand, we did really try to make it clean,  and separate from the GUI view, and it went through several refactors.  I'm especially glad you are happy with the spiking neuron stuff, since I didn't have much guidance when I implemented that (e.g. I had to come up with weird class names like "spikeresponder").

The first thing I'll do is mention SNNAP (http://snnap.uth.tmc.edu/), but you say you've been looking around so you probably saw it already.

In terms of using Simbrain outside of the GUI, this is becoming one emphasis with version 3.   So, I'd really like to work with you in implementing your spiking networks outside of the GUI.  Perhaps we can talk about what you'd like to accomplish, and then we can spend a few weeks making as much progress as we can.  In the process I'll put up some docs, add relevant services in the API, etc.   We also plan to improve the updating so it can run efficiently on multi-core machines.  Then after a few weeks you can make the call about whether it looks like it will work for your needs.   Either way it will push me to do some things on my todo list!

If we do pursue this, it would be great if you jumped in to the code at some point, e.g. to improve the numerical integration implementation (we currently use Euler's method).

Feel free to contact me directly or continue this thread here.  There is also a developer list, but since we just switched back to sourceforge it may be migrated there.  If it is we could talk there too.

- Jeff