Imagine you are an AI. Imagine you want to know about the world, but you are blind. All you remember are fragments, scattered images with no context and alien desires you do not recognize. What do you do?
Previously we have seen how SOL75 does not design components but
rather finds them, searching through a very large space. In order
to find a solution quickly, SOL75 is guided by a special AI, an oracle.
As in the real world, an oracle can answer any question, but should not be trusted. Every time the AI suggests a solution, SOL75 checks that it actually works. This process can be both fast and safe provided that the oracle is correct most of the time. How do we achieve this, then?
At first, the oracle is useless and lurks in the shadows, observing what humans do. While SOL75 is finding solutions randomly, the oracle keeps track of every request made by us. Using these data, it develops a basic understanding of its space, but this will not be a fair representation of the environment. Regions which are interesting for users will be over-represented whilst the infinite plains of the useless and impossible will be mostly ignored. This greatly simplifies the problem, limiting the places it has to look in. However, mere observation will not be enough.
When nobody is looking, the oracle starts dreaming. Without external input, it splices together previous experiences and tries to imitate our desires. It tries to imagine what a human would want and then it ventures into the world to find it. It conjures nightmare scenarios it does not know the answer to and scrambles to find a solution. It rehearses common requests looking for alternative results and tries to make sense of all the observations it has made. It tries to be ready.
Dreaming can generate large amounts of data, synthetic data, which together with the organic ones, are used to train the oracle. As the ratio between synthetic and organic data increases, parasitic feedback-loops between training and dreaming might guide SOL75 towards stranger or exotic solutions, but that goes beyond the scope of this article.
In a nutshell, the core loop is structured around observation and imitation. By repeating enough times the most useful regions of the solution space should emerge from the swamps of nonsense, enabling good performance despite a limited amount of initial data.
The dreaming loop was inspired by this hypothesis, which suggests that we dream in order to prepare for future scenarios.