Saturday, May 17, 2008

Kohonen Neural Networks and JAVA

Well as you can see on the title of the post, I decided to talk a bit more about what I do 3/4 of my day: JAVA, hopefully to share the problems I have everyday will help somebody else and also I'm pretty sure they will also help me.

My whole Java career started 3 years ago just by coincidence, I was in charge of the development of the "brain" of a mobile robot and the best way to have an OS independent software is using Java, so I ended up buying a Java book and started messing around with my computer and Netbeans.

Anyway, to make a long story short I developed two softwares to create the robot's brain, the requirement was that the robot could be able to move from position A to position B making all the decisions by himself in order to avoid obstacles and reach its destination.

To accomplish this goal I decided to use Self Organizing Maps also called Kohonen Networks, a self-organizing artificial neural network that selects the winner neuron by using the euclidean distance.

The learning process for the SOM is to make that different areas of the network can be activated by similar input patterns, and this resembles a lot to the way our brains work when we receive auditory or visual information and different areas of our brain generate the response.

JKam is the name of the software I developed for this task, its goal is to make easier the training process for Kohonen Networks and it has the following features:
  • It allows you to define the structure of the map (Input Neurons, X Neurons and Y Neurons)
  • Bubble and Gaussian neighborhood functions
  • Exponential, Linear or Inverse Time learning factor functions
  • Training variables such as amount of steps, radius, training sets and initial learning factor rate.
  • It also allows you to save and re-use training sets and neural networks on an XML format.


I stopped working with this software a couple of years ago but I think it can be pretty useful on different fields so if anyone is interested on using it, just send me an email and I will gladly send you the files.

Well that's it, on the next post I'll talk about the software using a SOM trained with JKam, the brain of the robot: Ferbar.

14 comments:

Nick Kelly said...

Hi, I am really interested in the JKam software that you have developed.

I am a PhD researcher at the University of Sydney, and I am trying to use a Kohonen net for shape recognition.

I have done a lot of work with two dimensional Kohonen nets, but wanted to see what happens if I have a net with as many features as there are pixels, e.g. if I have a set of 32x32 pixel image would I be able to get a Kohnen net with 32x32 feature vectors to learn to recognise shapes?

Your software looks like it could be a really good way to explore this so I am very interested in looking at it.

Thanks!

Luis Barragan said...

Hi Aldous!

Nice to hear from you, please give me your email address and I will gladly send you the application with some sample files.

eliza said...

wow Luis, now you impressed me!!!! OMG!!! - I have no more to say!:O

btw, next time you resume writing on your blog plz let me know since I saw the piano post and the JAVA post only today! (shame on me!:/)
;)

Nick Kelly said...

I am nkel7041@mail.usyd.edu.au

Many thanks!

Madison said...

Okay--not sure what Kohonen Neural Networks are...i guess that doesn't matter because you can take a minute and explain it....but i am here!

Sammy said...

myspamisfiltered@gmail.com

I'm interested in the JKam software that you have developed.

Could you please allow me to try it out?

salocinx said...

Hi Luis!

I am very interested in your framework called JKam. At the moment I am working on my master thesis at the university of zurich and I am trying to accomplish some noisy classifications in the area of imperfect information games.

Could you please send me JKam for a try to my address:

email: salocinx{at}hotmail[dot]com

thanks alot - regards, nicolas.

Unknown said...

Hi, I'm a student in communication network's engineering and I'm interested about the JKam software. I'm trying to use Kohonen for image classification. Could you please send me your program on my address: aymen.deadlysting@gmail.com.
thank you a lots,
best regards.

hectork said...

Dear Luis,

I'm very interested on JKam. Righ now I'm exploring some SOM applications with two undergrad students, and your software could be a great start point.
My e-mail: hector.cadavid@escuelaing.edu.co.

Best regards,
Héctor

Unknown said...

Hi..

My name is Priza, a MSc student from UTM Malaysia. Right now i'm doing some research using Kohonen SOM.
I'm interested on your program. Can you send it to me? my email: priza.pandunata@gmail.com

Thank you very much

Maria said...

Hi, I´m really interested in your software.

Could you give me your email in order to interchange some questions?

Thank you very much.

David Atlas said...

Hi I'm working on a robot for university of illinois. I'm very interested in your software for use in self-training navigation. The brain of my robot is an android G1 phone. If you have questions or would like pictures let me know. Many Thanks,
David

Eko said...

I am not success developing Kohonen

If you apply it to Image Compression case, where did we use Kohonen?

Can I learn from your code? Much appreciated. Here is my email : swdev.bali@gmail.com

Tq

esantra said...

me, too - please
my email is esantra@gmail.com