Learning learning

In his ironical book, De ijzeren wil (The Iron Will), Bas Haring, describes the unintelligent nature of a human brain. A brain is composed of billions of individual cells. Like the ants in a colony, each of these cells is unintelligent; it doesn't have a clue as to what is going on, doesn't know that it is responsible for the emergent behaviour of for example hearing, or knowing that chairs are for sitting and cake is for eating (and not the other way around).

A brain is a decentralised heap of intelligence, there is no central bureau in the chain of hierarchy that is declaring orders. Such a centre would need an intelligent brain to make intelligent decisions in the hierarchy - and that brain would need a central bureau that declares orders, which would need a brain - and so on. It has to stop or start somewhere. Furthermore, Bas Haring argues, if there was such a centre, why not simply fire the rest of the brain?

Thus, none of the cells in a brain know what they're doing. None of the heaps of connected cells know what they're doing. But as a collective, they exhibit the emergent property of reasoning, or deducting, or feeling.


Adapting and improving

The key to a brain's intelligence is learning. The individual cells in a brain connect to countless of other cells, most of them nearby, some of them far away. Throughout a brain's lifecycle these relations may change: a heap of connected cells that is doing something wrong will stop existing, other cells that are doing things right will tighten their bonds. As a child, our brain has some simple instinctive behaviours that react to pain and pleasure. From here on, the brain adapts, improves, and learns. Things that cause pain are bad, thirsty is bad, drink is good, things mom and dad do are good. The brain improves by reacting to stimuli and copying and mimicking behaviour from other brains that know more.

I'm coming back to the Photobjects/Hyperpolator/PhotoBot hive now. As I anticipated and explained in the artificial creativity article, this setup is able to more or less create an artistic impression based on the social state of the world today. The final step in the process, PhotoBot, collects the images Photobjects proposed based on Hyperpolator's pessimistic summary of the world, and tosses them on an empty canvas in a designish way.

PhotoBot doesn't really know what it is doing: it can perform all the stuff Adobe PhotoShop can, blur images, overlay images, cut, crop, scale and rotate images, adjust the color of images, and it does all of it in a totally random way. Naturally, this is not the way to good design. If PhotoBot generates a thousand proposals in this way, we may get lucky and find that one artwork among those in artisitcally interesting.


Decision tree

And this gets boring after a while. Each day we could let the program run all night, creating thousands of crappy compositions of which one or two might be acceptable the next morning, but in overall we would probably start getting annoyed with the computer for generating hundreds of composition in which it the same ugly things appear over and over again.

These need to be filtered out, we need to give the algorithm a hand by telling it to stop doing the ugly things, and start doing more of the nice things. After all, if our parents didn't give us a hand as a baby we would still be crawling around the floor. If we could help our program by pointing out the compositions that look better than others (and if we do that a lot and a long time), it might figure out a) what elements work better together and b) what transformations work better than others.

PhotoBot keeps a history of its actions for each artwork. For example, it records that it started out with image a in a corner rotated at 45 degrees, then put image b on top of it rotated at 20 degrees in the middle, and then put image c on top of that rotated at 180 degrees.

If we point out to PhotoBot that this makes a nice composition, the next time it selects image a, it will probably rotate it at 45 degrees (its decision tree recorded that we like image a rotated at that angle) and continue by placing image b on top of it. Likely it will rotate this image 20 degrees (its decision tree recorded that image a rotated at 45 degrees and image b rotated at 20 degrees fit will together), but it may also do something else entirely, maybe rotate image a 130 degrees instead. If we do a second round of learning, we might prefer the 130 degrees rotation more. PhotoBot updates its decision tree, recording that image a rotated 45 degrees followed by image b rotated 20 degrees is nice, but apparently image a rotated a 130 degrees is even nicer. The next time it will take more bolder actions and probably rotate image a 130 degrees. One step doesn't have a clue about the resulting composition, only what is more likely to do next.

Through this time consuming process, PhotoBot might eventually learn something about the relation between individual elements, how they fit well together considering their rotation.


Something from nothing

If we would introduce a 100 parameters instead of simply: element / rotation / next element, the process basically remains the same. PhotoBot learns what relations between elements work well, its decision cells record and adjust the process.

After a while we would be unable to follow or point out exactly what PhotoBot is learning or recording, but it is learning. Like the inside of a brain, neither PhotoBot nor we can be certain anymore about each individual step. We would only perceive the global effect. because we pointed out that the total composition looked nicer than others.

Like the cells in a brain.


Tom De Smedt, researcher at the St. Lucas School of Arts, Antwerp, Belgium, 2005