Build Your Own Neural Network
windowpain writes "I just discovered Joone. It's an LGPL neural net development environment for creating, training and testing neural networks. The aim is to create a powerful environment both for enthusiasts and professional users, based on the newest Java technologies.
Joone is composed by a central engine that is the fulcrum of all applications that already exist or will be developed.
It's available in Linux, MacOS and Windows versions."
The Stuttguart Neural Network Simulator has been available for free for a long time now.
Occam's razor is the blind faith in the natural selection of least resistance and in universal oversimplification. -- EF
I don't have time to play with such a thing. I'm too busy developing the neural network in my skull.
Sunlit World Scheme. Weird and different.
Looks rather limited to me. It's again implements only BP algorithms and their variants. Why not include ART-based (adaptive resonance theory) and LVQ-based (linear vector quantization) algorithms? They are much more efficient than BP in many instances (e.g. classification problems).
In other words, sounds very limited to me.
Heh. For the same reason you use a computer instead of a trained monkey. Less crap to clean up and it doesn't talk back. At least if it does you can unplug it. :-)
In Republican America phones tap you.
There is not general solution to the global optimization problem.
There is not general solution to the global optimization problem.
/joeyo
2^5
For those who want to combine genetic algorithms with neural networks, there's also a project that combines joone with JGAP (a Java genetic algorithms framework).
Low chance anyone here will know what I was talking about, but in the case someone does ...
Does anyone remember a programming language that was specifically for creating, training and using neural networks?
I've always been a big programming language addict. Back in the early 90s, being 12-14 years old and excited to finally have a modem, I was downloading every programming language for DOS I could find from all the BBSes I called.
I can't remember what it was called. I remember roughly what the IDE looked like, but very little else. It was a fun system- it had general-purpsose programming constructs, but was especially built for creating, training and using neural networks. I seem to recall the syntax having a semi-familiar pascal/algol/C-ish syntax; it wasn't just a library for Lisp or Scheme.
I've check the SimTel archives, and haven't been able to find it again. Oh, how awesome were BBSes... Stronger sense of community than the 'internet' seems to have. Anywho, thanks for any tips!
Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
1) It has an obvious preference for the dramatic... For example, rather than having the original Terminator simply walk over and kill Sarah Connor when she is stuck in an overturned vehicle, it instead has the Terminator commandeer a semi and attempt to run her over. Brilliant!
2) It doesn't believe in rushing into a kill as quickly as cyborg-ly possible, but instead has its Terminators advance slowly on the hapless victim.
3) Despite all these logical fallacies in SKYNET's programming, it is able to use automated factories to conduct research and development at a level beyond humans, in order to: build Terminators. Oh yeah, and master time travel.
So, let us hope that if we ever built a SKYNET, it wouldn't be stupid enough to conquer time, and then have no idea what the next logical step is.
"To confine our attention to terrestrial matters would be to limit the human spirit." -Stephen Hawking
Plus, the only limit on their demo is that you can only save a networks structure, but not the trained weights or output. This means you can use the demo to determine if a problem is solvable through a NN, and only get your company to buy it if it works for your project.
The package inlcudes source code to produce Sammon Maps in Postscript format. These can be very useful tools for finding clusters in data. What they revealed about UK higher education institutes was eye opening.
Matt...
--
A man hears what he wants to hear and disregards the rest.
Save the Bottom Line
Linux, MacOS and Windows versions
hmm, almost everywhere
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
I just discovered Joone. It's an LGPL neural net development environment for creating, training and testing neural networks. The aim is to create a powerful environment both for enthusiasts and professional users, based on the newest Java technologies. Joone is composed by a central engine that is the fulcrum of all applications that already exist or will be developed. It's available in Linux, MacOS and Windows versions.
;)
I've hilighted some terms to help prove my theory.
So there you have it:
An amazing "discovery" that "aims" to use "Java technology" in order to the "fulcrum" of "all applications that already exist or will be developed". Whatever.
NEXT!
Now serving crackpot #23423989.
In general, at every iteration of training, neural nets need to solve an optimization problem. For example, in BP nets, the conjugate-gradient algorithm is used. However, unless this package is hooking into some low level C or Fortran libraries, the training is going to take forever.
There are good reasons, other than historical, that high performance math libraries are programmed in Fortran and not other higher-level languages.
Let's see...we'll be using a virtual machine to emulate a virtual network of simulated neurons...no thanks!
I can understand the desire to have portability, but this just reeks. It's like using basic to emulate a 486. The part of me that appreciates elegant, efficient design is puking on the floor.
why help a project when you can whine instead! way to go slashdot fool!
"Didn't you get it? That whole battery thing was a lie that people like Morpheus and others who had been unplugged were told, just so they'd stop asking further questions. "
No, it was a shortsighted ingredient by the Wachowski Bros. that they were called on and had to fix in the next movie.
I'm glad you enjoyed that movie, but I can't get past what a hack and a half it is. It really would have been a good idea for those guys to novelize that trilogy before making a movie of it.
"Derp de derp."
Hard as it is for me to believe, you may be talking about a language I wrote in the late 80's. "Ralph" was our internal name for it (inside joke); I think the market droids pushed it as NNSim or something like that. We released a full function version on a bunch of BBSs & talked it up on geni, compuserve, news groups, etc. to promote a hardware accelerator board (DSP based). The idea was people would get interested and then (as their models got larger) they'd want more speed and buy our accelerator board.
The core language was a based on pascal, but with salient structure (like python) and a bunch of (at the time) interesting extensions. You could declare networks and treat them like an array (for messing with the weights) or like a procedure (for training) or like a function (for using them).
Does this sound like what you're remembering?
-- MarkusQ
P.S. In case you can't guess how the story ends, it turned out that for really interesting networks you'd need a lot more oomph than our boards could provide. The product died, as did several others, and the company sank beneath the waves.
My current neural network implementation (on generic CPU) with order of 10^6 neurons use CBLAS ATLAS fast linear algebra library as a number crunching part. When you have to do some down to metal optimizations Jave is waste of time.
The best property of NN's are when compared to other learning machines is that computation can be parallelized easily. For small problems one should maybe use other ML machines (SVM doesn't overfit) which isn't as easily/well parallelized (-> doesn't scale up so well).
Above solution doesn't scale up when making neural networks with 10^9 or more neurons with current (or near future) hardware. One have to radically redesign one's implementation because your neural network memory/data is most of the time on hard disk and only small portitions is in memory. Need to take into account the time of disk accesses (database theory is helpful here). Also making your network asynchronous and implementation multithreaded (eliminate harm of I/O wait-states from HDD accesses + good use of SMP+RAID) is a must.
And of course if one have enough money designing your/buying a NN chip is of course the best option (because the parallism of NN chips can be made to be wicked fast).
If you want a simulation framework that is more flexible than a dedicated NN simulator, we are developing Ikaros, a discrete-time modular simulator. Runs on Linux, OSX and Windows. Implement your modules in C or C++ (and implementing bindings for other languages would be easy), then specify a connection matrix for inputs and outputs between modules to form a complete simulation.
The next step in development is creating some graphical visualizing tools, and to make it run multiple instances transparently across a network.
Trust the Computer. The Computer is your friend.