Photos, ramblings, whatever

Thursday, June 25, 2009

Machine learning

I've already mentioned to a couple of people that I'm working on a machine learning algorithm. Tonight I managed to find the bug that made it do things it knew wasn't good (or rather, the bug that made it divide how good it thought something was by the number of times it had happened) and it now passes the first two unit tests I wrote for it. Passing the first one is less impressive though because all it tests for is that the algorithm tries all its options before picking a favorite, but the second test involves it actually learning.
If you would like to play with it, here is the download location. Currently I don't have anything as fancy as a configure script (that's a future feature), but the eclipse project files included are able to build it automatically provided you have the vala compiler installed in /usr/bin/valac.
libHector-0.0.1.tar.bz2
This archive contains full source and linux i386 binary.

Current features:
  • Novel input motivated reinforcement learning system
  • Rapid convergence to optimum behaviour for low dimensional input

Future features will include:
  • A means of hierachially organising modules (for increased scalability and generalising)
  • Increased ability to learn from sequences of events (partly using the hierarchal arrangement)
  • Working memory

Labels:

Saturday, June 20, 2009

New fractal



Well, while keeping my mind nimble for the software engineering exam on Monday I've found a new fractal. It's the same algorithm as the Mandelbrot set, but using tessarines instead of the usual complex numbers.
I've written an applet for viewing the fractal. Left-click zooms in, right click resets to original zoom.

--update:
It turns out the method described above merely produces a computationally expensive square. The fractal on display above is a very pretty algebra mistake which I don't seem to be able to make again.