@Article{Buchanan2001, author = {Bruce G. Buchanan}, title = {Creativity at the Metalevel: AAAI-2000 Presidential Address}, journal = {AI magazine}, year = {2001}, volume = {22}, number = {3}, pages = {13-28} }
The key to building more creative programs is to allow them to reflect on and modify their own frameworks and criteria.[p14]
The meaning of "creativity"
Can machines or programs act creatively? In order to answer this question, must we first have clear criteria for what constitutes creative activity?
If creativity cannot properly be described mechanistically, human minds cannot be symbol-manipulation machines. [p13]
Creativity, as used in common parlance, captures a wide range of loosely related phenomena across domains, and hence is difficult to operationalize or test for. [p13]
It is still unclear how to connect ideas about creativity in machines to what we know of creativity in people. For example, Sternberg (1998) surveyed people to determine the characteristics people generally associate with creativity, and found a general consensus about 6 major elements:
Implementing some of these characteristics in artificial intelligences (such as numbers 2 and 4, above) seems fairly natural in attempts to build creative AIs, while others seem significantly less important, perhaps irrelevant (notably numbers 5 and 6). The importance of various elements will differ according to whether one is attempting to simply design AIs that act creatively, or if one is attempting to create AIs that are creative in the same ways that people are, that is to say, to accurately model human creativity. [p14]
Cognitive scientists have identified several abilities important for creative work:
Minsky suggests with his "puzzle principle" that we can program a computer to solve any problem, so long as we are able to recognize when it is solved. [p15] The implication is that creativity is essentially problem solving; we need not define creativity, we need only to be capable of recognizing valid solutions.
Creativity is (typically) a relational term connecting something new to what has come before in a given domain or structure. Thus, a certain degree of knowledge about a given domain is a necessary pre-condition for new solutions to be considered creative, rather than accidental novelties. Too much domain-specific knowledge may, however, inhibit creativity, as seen in programs which "over-learn". [p15]
Creative AI programs
Several AI programs have generated solutions which may be considered creative in various domains. [p16-20] Some examples include:
What is common to these systems is the ability to put together known elements in a particular framework according to some set of combinatorial principles, while being able to "recognize" implausible or impossible combinations and discarding them. [p17]
Utilizing this basic mode of opeartion (generate and prune), the program METADENDRAL, which analyzed the chemical structures of steroid compounds, generated the first examples of scientific results useful and interesting enough to be published in a refereed scientific publication. [p18]
Models for Creative Programs
In cognitive science, psychology, and AI, models of creativity typically fall into four classes: [p18]
Creative behavior in machines has been broken down according to a variety of classification schemes by different theorists, however. For example:
Johnson-Laird (1988), argues that all creative behavior could be modelled in machines according to 3 algorithm types: [p19]
Roger Schank (1988) suggests that modelling creativity in a machine means supplying the computer with 3 types of heuristics: [p21]
It is important in designing creative problem-solving AIs that all aspects of their behavior are "made as explicit and modular as possible, so they can be adaptive." [p22]
If a program generates a set of solutions or extensions in a given domain that is too numerous to permit evaluation of each solution individually, it may be useful to introduce domain-independent criteria for what constitutes an "interesting" solution, e.g. singularities, exceptions, and attributes which have a great deal of explanatory power. If a program is able to identify features such as these in the solutions it generates, it may be more capable of generating creative solutions. [p22]
Search at the meta-level allows a reasoner to identify the most effective tasks or strategies for a particular task. [p23]
Buchanan distinguishes between creativity at the meta-level and at the performance level. When a program attempts to find a solution at the performance level, it operates with a fixed ontology, fixed criteria, and fixed methods. At the meta-level, there are multiple instances of these three elements through which the program may search, in attempts to find the best performance program. [p23]
Buchanan argues that efforts to build more creative AIs must attempt to overcome three primary limitations of current programs, which he calls the problems of accumulation, reflection, and transfer. [p24]
Accumulation - The capacity to store and later use information. Current AIs do not typically build on what they have experienced in the past in a way that is meaningful and useful to it, while this is certainly a central component of human intelligence and creative behavior.
Reflection - Thinking at the meta-level; metacognition. Includes knowledge about: tasks, problem-solving procedures, strategies, and applicability conditions for procedures. Implementing this would involved designing a second-order program that can reason over representations of a program's knowledge. This would allow the program to: shift representations (considered one of the most difficult and necessary problems to solve in AI for the past several decades), introduce new ways to satisfy constraints (i.e. generate its own relevant "goal states", introduce an appropriate degree of randomness, reflect on and change values, and define new problems. [p24]
Transfer - Using knowledge from one domain to help the AI solve problems in a separate domain. Potential forms of this capability include: sharing ontologies, using analogy engines, importing concepts from an old domain, and modifying previously successful methods [p25]. Programming an AI to do this is largely a problem of representation; if two AIs, or two domains dealt with by a single AI, use different representational structures, how can knowledge be tranferred from one to another?