Robust artificial creativity systems are an important step towards the ultimate commodity: a mass-producable product that in turn produces solutions and ideas on demand. Think how this could add to our capacity for problem solving. The idea is as exciting as the challenges involved in realizing it. Many questions remain unanswered:
Not only do we lack understanding of our own creative mechanisms, but the basics of computer programs seem to oppose the idea of achieving unbound originality. Here’s a look at that important, fundamental problem when implementing creativity. In easy digest format, no less.
A Brief Introduction to Creativity
Crucial to what follows is pointing out that creativity is ill-defined and people generally have very different ideas of what it is. This can make it difficult to discuss and debate.
Art is typically strongly tied to creativity, and many scientists are focusing on this. The painting on the side was created by the computer program Aaron, which is one of the more famous creative systems. But while creativity exhibits itself very strongly amongst artists and is easily associated with them, that’s nowhere near the whole story. For example, there’s software like Thaler’s neural networks that have invented new, patentable physical materials. This is another type of creative expression.
And to go even further; in Emergence of Creativity, my chapter in the book Intelligent Complex Adaptive Systems, I explain and define creativity and its origins in a way that accounts for even the actions of primitive organisms — not only human abilities.
But for this article’s purposes, all we have to agree on is that creating something new or being original is an essential part of creativity. Given this agreement, we shouldn’t run into a problem with the following explanations. But even so, keep in mind how extremely multifaceted creativity is and that I’m simplifying the concept (to keep this article from becoming a book).
A problem when creating creative systems
To properly explain the problem, how programming seems to oppose creativity, we must understand what computer programs are: instructions. A set of steps the computer executes. Typically, when we create computer programs we specify a certain problem and in turn devise a set of instructions that addresses this problem.
A program that can add numbers is a very simple example of this: we specify that its input are numbers and operators, how it should apply the operators to the numbers and that the output should be the result of the computation. Note here that before we create a program we need to know what we want it to do and what instructions achieve that purpose.
Computer programs are instructions, even when they become more complex.
An example of a creative system
Consider an intelligent agent model. An agent is a system that perceives its environment (input) and acts upon that environment (output), and broadly speaking, an agent’s input can be anything from keystrokes to streaming video (or a combination).
Our agent is a writer, to stay within a creativity setting most are comfortable with (here’s to hoping you think people like Shakespeare are creative). For this particular case, the input is a human’s demanding to hear a story about a particular subject, like a story about detectives or robots. Our agent composes a story, puts it in a file and then acts upon the environment by displaying it on-screen.
In between receiving input and presenting output is, of course, a program that maps the input to output. Its brain, loosely speaking. We’ve already stated the agent’s high-level goal: to write a story. It’s the part of the agent that makes decisions on where he puts the plot twist where we learn that his mother, Alice, wasn’t really an actress but a government agent.
But in order to make our agent write something other than gibberish, he must have a dictionary of words and he must know grammar. He must also have common sense to know how the world works or otherwise we’d be getting stories where a bucket drinks from a detective.
In the real world we would have to take our agent’s architecture quite a bit deeper. We would have had to give him some way of choosing plots, paragraphs and words, for example. But we’re going to look past that and just focus on what we already have at this point.
Instructions are limitations
Note now that when we gave our agent a dictionary, a goal, grammar knowledge and common sense, we effectively restricted him: He’s not a painter. He’s not a musical composer. He’s not a programmer, a witch, a lion or a wardrobe. And when we look at it as a creative writer, we begin to see he’s not that creative at all.
A goal limits the objectives of a system and thereby helps us organize how the system will behave1: Our agents should write a story — he’s not about to write a groundbreaking paper about artificial creativity. And what about his stories? He has common sense that dictates no man can fly without the help of machines. We killed our creative agent’s Superman right there.
But these restrictions were also necessary for him to do anything at all. To explain this with a familiar analogy, it’s like writing a cooking recipe: To bake a cake we need certain ingredients. When we bake it the ingredients define what kind of cake it becomes. But we’re baking a cake, not bread. And the cake is sweet, not sour. The ingredients are restricted to define a particular outcome of the baking. Similarly, the instructions we devise are what defines a programs behavior and outcome.
Basically, to make it do what we want it to, we impose restrictions — a confined set of rules out of all the possible rules in the world.
What kind of instructions make limitless systems if instructions themselves are limitations?
Now here’s the core of the problem, finally: We agreed in the beginning of this article that an essential part of creativity is originality and creating something new. But like we’ve discussed above we know beforehand how a program should behave before we make it, including what it should produce.
So how can we make a program when we don’t want to know beforehand what it should do, and when we want it to be as limitless as possible? If we must tell the program what to do, can the program ever be original? Can it surprise us? Can it make something novel?
The basics of programming require us to explicitly design mechanisms that produce certain outcomes. By giving these explicit instructions we inadvertently decrease the potential of the program surprising us since clearly it means that we know beforehand how it will behave.
The instructions that define our program (and make it work) are in turn the exact reason it can’t produce surprising, novel and interesting ideas.
But how about a self-organizing program that writes its own code on the fly to overcome its restrictions? Yes, that sounds appealing and is what many scientists working on artificial creativity are trying to do, in one form or the other. And it would be really easy too… if the program wouldn’t have to be creative to write new code!
Edit (Aug. 25th): Due to some comments from readers (thank you) I feel inclined to emphasize what I mentioned in the article: many creative systems have already been made (have a look through the creativity category).
I’ve personally created and worked on systems that present creative behavior. Making them more robust is just a question of time, research and development. The example used here is intentionally simple and raw to flesh out an essential problem that scientists face when developing creative systems—but this is a problem we are overcoming.
Links and References
- Aaron painting retrieved from Wikipedia
- 1 Stuart Russell and Peter Norvig (2002). Artificial Intelligence: A Modern Approach (2nd edition). Prentice Hall. 60.
- Absolut Adopts Machines & Artificial Creativity Recently Absolut Vodka launched Absolut Machines, a new campaign that'll be running for a year and centers around two artificial...
- The 5th International Workshop on Computational Creativity I received a notification recently that the 5th International Joint Workshop on Computational Creativity (IJWCC) is open for submissions. I...
- Emergence of Creativity in Intelligent Complex Adaptive Systems The book chapter presents my latest research on the emergence of creativity in natural and artificial organisms, a theory of...
- Anthropocentric Approaches to Creativity I just added a few paragraphs to the artificial creativity page, on anthropocentric approaches to creativity. If you have a...