Tuesday, 5 May 2015

Introducing fractal intelligence

Hi again dear -and rare- reader.

I am back writting after some months without activity, and it was not because I was busy writing a paper about the entropic intelligence (it is still unfinished), it was because I have been working hard on a "fractal" version of the intelligence engine.

Fractals are for algortihms what bluetooth is (was?) for devices: everything works better and faster. The dark side of fractals are they are hard to define, too caothic, at least if you want to make real calculations with them (instead of generating nice fractal images).

In the proccess of converting all the ideas the entropic intelligence was based on into some fractal equivalents, I have learned some tricks about dealing with them, and before presenting any video about fractal intelligence (it is still in beta, but works about as nice as the previous "linear" version did), I would like to first show you some early experiments with fractals.

The first thing I tried to solve using just fractals was optimizing a funtion: given f(x,y,z)=r (all reals) find the point where the funcition reaches its lower/higher point.

The funny thing is that fractals ended up being perfect for looking for the global maximums, not the local ones. In a very organic way, fractals can adapt its shape to look further or closer depending on the part of the function they are traveling at each moment.

So, here you have a video of my first "fractal experiment":

As you can see, this "thing" travels towards the global maximum at an almost constant speed. It is far from perfect, basically because the radius of the "thing" doesn't still change dynamically as it should, but it can illustrate quite clearly some basic ideas I have used.

First thing to note is that fractals are "proyected" from the actual position in several directions. Then, fractals grow as plants would do, taking the needed energy from the soil (function value serves as "nutrients"), and branching or cloning when the are full of energy.

There are some more "growth laws" involved, like the number of branches is a constant, but basically, after some time pass, the fractals are weigthened as you would do with real plants, and the central position is moved toward the most growed-up zones.

I will not delve into the fine details now, I will just try to make videos of some of my experiments and comment a little on them. Surely there will be time to come back to those "intermediate" algortihms, as they look quite promissing for some tasks.

In my list of things than could be tried to solve using this kind of fractals are: globally optimizing functions (I have a nice candidate), optimally connecting cities with roads (early beta), fractal emotional intelligence (working 90%, a V2 will come later), and, who knows, may be fractally growing neuronal networks (learning by modifying the internal structure, not only the axon weights) or, in my wildest dream (but kind of working), simulate "simplified" Q.E.D. physics with clouds of photons (these one would make a very nice screen saver at least!). If you love Feynman diagrams may be you will love this videos too!

But all those fractal algorithms are actually unfinished, some in alpha, some in beta, some in nowhere land, so I will just stick to commenting videos that show up something "real" and running.

If using fractals to solve problems seems interesting to you, or if you already use them, feel free to comment here or contact me, I will be glad to know!

No comments:

Post a Comment