AI — Top For Programming — Flop for Creativity?
The creativity of AI, a blessing or a curse?
Imagine you want an AI to generate a perfect black circle. You can use an image-generating AI like MidJourney for this, and you might end up with a 3D ring of intertwined leaves, or something completely different.
However, if you encode the same task in a format like SVG, you get a perfect black circle on a white background.
Why is that, and does it mean that AI can program better and generate images leading to random results?
The “why” behind the phenomenon
The reasons for this clear difference can be traced back to the functionality, data sets, and their interpretation. Both the interpretation of the data sets and the task require a certain level of creativity and probability. Without probability, the results would be purely random, whereas without randomness (e.g., “Seed” and “Temperature” in GPT), the results would always be identical.
If I ask for a code for a circle, the room for interpretation is very small, since most of the programming examples are probably correct and there are many. On the other hand, if I search for a circle in Google Images, for example, the results become less and less precise the further I scroll. This creates a so-called “variability”. The more precisely I formulate my question, e.g., “search for a perfect circle on a black background”, the results become more precise.
Now you have to imagine the image generation like this: you throw a bucket with a thousand small black balls into a square black room. They just happen to be lying around there. Now you try to find out for each ball where the best place would be for it to create the desired circle with all the other balls. This creates an average or median.
In programming, the case is a bit different. You would find that many examples from the data set are very similar and the probability of a correct result is very high. Of course, this decreases significantly with the increasing complexity of the task. When searching for a specific code, it makes sense to subdivide it into intermediate tasks or intermediate steps in order to keep the variability low.