During my research on Emergent Behaviours I’ve been often questioned about the usefulness of something that you can’t control, you can’t predict and seems to be totally random. I’m not going through these points here, I’ll let the future talk about the past.
However, scientifically speaking, I need to prove a few points. In particular I was looking for answers to two questions:
- Can performance improve when allowing emergent behaviours?
- Is an emergent behaviour an expression of randomness?
To answer these questions I set-up a Predator-Prey scenario, where the predator had all the advantages, namely
- It is faster than the prey
- It is programmed by me
Armed with the python library PyEvolve I developed several preys without success. This went on until I decided to blend complexity and goal-pursuing. In other words I trained two recurrent neural networks, one to be complex and the other one to avoid the predator. A third network mixes the twos. The resulting prey speaks by itself:
This proved that complexity, the fertile ground for emergent behaviours, can improve the performance of a goal oriented system.
To answer the second question, I replaced the complex module with a random number generator. The result was awful: the prey could not survive for more than 40s !
Complexity (according to Kolmogorov, is not random. The chaotic processes have laws that a successful prey managed to exploit for survival. This hopefully gives me some breath in the struggle of proving that my research in emergent behaviours will lead to interesting results and ideas.
This work is currently under review in a journal publication… let’s hope for the best!