Slashdot Mirror


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."

6 of 53 comments (clear)

  1. Re:Whats wrong with SNNS by KMAPSRULE · · Score: 5, Informative

    From the SNNS licensing terms:
    SNNSv4.1 is available NOW free of charge for research purposes under a...

    LGPL(Joone's Licensing) is a VERY attractive License for commercial users, "free for research purposes" would preclude some from being able to use it,
    other wise I agree this Joone seems to have less features/algorithm support than SNNS

    --

    --Im an oven mitt, not an engineer! (SLArbys Radio Commercial)
  2. Can also be combined with genetic algorithms by mrblah · · Score: 5, Informative

    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).

    1. Re:Can also be combined with genetic algorithms by Anonymous Coward · · Score: 2, Informative
      "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)."

      Lots of neuroevolution code, including probably the state-of-the-art algorithms (ESP, NEAT) can be downloaded from the NN research Web site at UT-Austin. Some of it is available in both C++ and Java. Papers describing the algorithms and various applications can be downloaded from the same site.

  3. Check out NeuroSolutions by Sidlon · · Score: 2, Informative
    True, it's not free (beer or speech), but this really is the most impressive NN development platform I've ever worked with. It has a VB-like interface for creating a custom network, and powerful wizards to handle the common problems.

    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.

  4. Java is way too slow for serious NN code by Anonymous Coward · · Score: 2, Informative

    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).

  5. Shameless plug by JanneM · · Score: 2, Informative

    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.