Ever wondered about the big bang and how we as humans evolved through the years acquiring the needed skills to survive? The Darwinian theory of natural selection and the survival of the fittest? Artificial intelligence and if machines can ever one day have a mind like us?
In this small demo, we explore these big concepts on a very small scale! The scale of giving an artificial agent (in this case a car) a mind ( an artificial neural network) and putting it in an unknown context and asking it to learn how to drive on its own! No prior training, No code or script of how to navigate, no idea of the world, no idea what is that, no idea that it’s even a car, nothing – nada!
Simply all it knows that it’s an object that has five sensors in the front, and an arbitrary mind that can translate the signal coming from its sensors into a steering force(right or left and speed) and most importantly it will die if it hit a wall and it will be rewarded if it manages to stay as long as possible on the road – That is it!
So imagine with me this small little car like us humans that suddenly found themselves in the world with these abilities and now they are asked to evolve and learn how to survive on their own. To make it more exciting, We create a population of these cars and give each car a random mind and then we let them navigate the space they are in ( the red cars who die at the beginning of the video). Using the laws of natural selection we wait until the whole generation die and then we start picking the best performing car and then we start breeding them and create a new population from its offspring and we repeat the same process for a couple of generations.
And voila! You start getting a few possible cars that can learn how to drive and navigate the world very professionally. More interestingly, each car has a different style of navigating the world (basically different personalities). Coming a long way from nothing to becoming a very smart object that can navigate this given world on its own and passes the knowledge in the shape of the genes through the generations.
This is a completely different approach from traditional machine learning techniques where you have data that are either labelled (like the case of supervised learning ) or un-labelled data (unsupervised learning), and it’s not exactly reinforcement learning where you have no data at all but you incentive an agent on its good behaviour. Here the agent learns through an evolutionary process passing the good genes to the new generations.
This little experiment demonstrates several concepts like how powerful is the natural selection process in finding the fittest object very rapidly and how machines using such a simple process that is inspired by our nature can quickly develop and acquire a skill to solve an unknown problem without any prior knowledge of the problem and context at all pretty much like us humans! This doesn’t mean to say that they are like us humans – just yet! Certainly, it opens the door to a whole new level of how we perceive artificial machines and the possibilities they can bring to us if we set them free from data!
What do you feel? What do you think? Please feel free to share with me your ideas and thoughts on this.
**This experiment was done completely in GH-Python inside Grasshopper/Rhino. No libraries were used in this experiment and all classes of artificial neural network (ANN) and the evolutionary solver were hard coded for better control and maximum code efficiency.