# [dorkbotdc-blabber] some blather about last nights dork

Philip Kohn pkohn at mail.nih.gov
Thu May 29 11:13:40 EDT 2008

```Hi Nikolas,

I love controlled randomness.  It has been my bread and butter for lots
of art projects.
When I'm working on an art algorithm, tons of parameters pop up that
need to be set.
The easiest thing to do is to apply some sort of randomness.
Random walks, temporal filtering, and sums of trig fuctions (with more
random functions for frequency and amplitude)
are some of my favorites, although I've also had good luck with random
bit manipulation, Markov chains, etc.
Sometimes I'll layer it so that it jumps between different random
functions, since a single random function
can easily become boring (randomness is still statistically predictable,
and the brain adapts to the statistics pretty quickly).
The thing is that if you try not to use randomness, it forces you to
really think about how to translate
some aesthetic principles into a set of rules.  This is a lot harder to
do then twiddling some random functions.

What I see when I introspect about being creative or trying to do
something "random", is that I am actually using
rules that utilize regular cognitive processes, such as following
associations between memories, or scanning my environment
for some object to trigger an association.  I'm just using an additional
rule to try to follow associations that are unusual,
personal, or very loose, so that another person would not be able to
I'm leveraging off the complexity of my environment and my memories.
I combine things that are unrelated, or I apply some process to
something that it is not usually applied to, I consider the
opposite, or what it would be it be like if I took something to the
other extreme from what is usual.
Check out Eno's oblique strategy cards for more "creative rules".
People are lousy random number generators, if you look mathematically at
what they produce.

I think that independent creativity is not at all random, if you define
random as completely unpredictable even with perfect and complete
information.
The only type of true randomness I know about is certain quantum
phenomena, and even there it is only our current best model.
There is no practical difference between true randomness and the sort of
semi-randomness you get from
systems that are either complex, chaotic, or have a lot of hidden
information (the brain is all of these!).
Computer random functions are really semi-random since they are
completely predictable if you know the seed and the algorithm.
I don't believe that quantum level things are important to understanding
brain function, mostly because there is
no direct evidence, and no reason to believe that a system as complex as
the brain needs these effects to do what it does.
fun to debate!)

We should get together, it would be fun!

Philip

Nikolas Coukouma wrote:
> Philip Kohn wrote:
>
>> Pindar's talk really got me thinking about creativity.
>> I would really like to know more about how things like balance, and
>> composition
>> are handled without randomness.
>> I really love the idea of seeing how far you can get without any
>> random numbers.
>> I've always relied on some sort of random functions, even if they are
>> carefully tuned and filtered,
>> but in a way it is really a cop out.
>>
> I'm interested in discussing this more ... possibly in an in-person
> meeting/get-together. I hope to stop by HacDC tonight, so if you (or
> other interested people) are there, that's all the merrier.
>
> A bit of background: I am a computer scientist; some would call me a
> mathematician as well, but I lack training in that field. I tend to take
> an extremely technical approach to things, which I recognize as both
> useful and limiting ;) I have some creative hobbies (primarily
> photography) and a general interest in "creative stuff."
>
> Back to the subject at-hand ...
> In my opinion, you can not have a system that is (independently)
> creative without randomness of some sort. My reasoning is that, without
> randomness, you are limited to a strict set of rules, which were
> designed by some human. I'm guessing that this objection of randomness
> is "use a random number as an input"; it could easily result just from
> measurement errors and the like ... the uncertainty inherent in the world.
>
>
>> Most of the tools of artificial intelligence (neural nets, backprop,
>> etc.) are designed to capture
>> regularities in the input/output transformation.
>>
> Yes.
> Below is a lengthy digression to define some terms...
> * Artificial intelligence deals with "intelligent agents" - systems that
> perceive the state of their world and then take an action to accomplish
> a goal (whether its moving to a different location or changing an answer
> on a multiple choice test). Usually some metric is defined so its
> success can be measured.
> * Artificial neural networks consist of a connected system of
> nodes/vertexes, inspired by biological neurons (and bear about as much
> resemblance as many novels "inspired by a true story").  Each node takes
> one or more input and produces one output. That output can then be sent
> to one or more other neurons. There is no randomness; these are
> functions in the mathematical sense.
> * Backprogation is a "supervised" method for training neural networks.
> The network is given a test input, its output is compared to the
> expected output. Then blame is assigned for errors and adjustment is
> performed. The adjustments start closest to the output and proceed back
> towards the input. It's supervised because, although you're not
> necessarily sitting there, you have decided what the right answer is.
> * K-means clustering takes a collection of n objects (e.g. DVDs) with
> multiple attributes (e.g. each users rating is a different attribute)
> and puts them into k groups (e.g. 10, for whatever reason you picked
> it). Each item can only be assigned to one group. The goal is to make
> each group as similar as possible.
> * Genetic algorithms search for an optimal solution by generating a
> set/population of possible solutions and then "breeding" them. The
> breeding part consists of determining how good each solution is,
> deciding whether or not it should be discarded, mating the survivors
> ("crossover") to produce new solutions, and randomly each of these new
> solutions a bit. The crossover step keeps different parts of each
> mate... the core of genetic algorithms has a mathematical basis and,
> again, is only "inspired by" biology.
>
>
>> But I think art and creativity revolve around the interplay of
>> expectations and surprises.
>> You have to have rules, but you also have to break them, and break
>> them the right amount and
>> in the right contexts.
>> You need AI tools that can take a model of the regularities and figure
>> out how to make these interesting
>> and strong exceptions.
>> The worst thing you can do as an artist is to create something that
>> looks like a mistake.
>> (Although you can repeat that "mistake" and then it may become good
>> art again!)
>> The exceptions need to stand out.
>>
> See genetic algorithms above; there's also a vast collection of
> statistical approaches, which are particularly popular for natural
> language stuff. A fun example is this blog haiku generator
> http://memes.angrygoats.net/forms/haiku
> http://memes.angrygoats.net/faq
>
> An example from http://memes.angrygoats.net/livejournal.com/nofcna/haiku
>
> transforming something
> intangible gives meaning
> to its existence
>
>
>> I have done some art evolution, using my own ratings as a fitness
>> function.
>>
> This seems like a reasonable approach to me
>
>> Here are some of the best links:
>>
> Thanks for these
>
>
>> There is a big problem with all this.
>> When you have a lot of parameters, or knobs to twiddle, you need a
>> minimum of twice that number of example datasets.
>> So if you really want to evolve each brush stroke, you will need a lot
>> of user input.
>>
>
> There's quite a bit of interest in this ... among other things, Amazon
> has a service for paying people to complete these sorts of tasks:
> http://www.mturk.com/mturk/welcome
> A non-monetary incentive for people to participate is fun. I know there
> are at least a few games online there that are being used for data
> collection...
> http://www.gwap.com/
> Rating communities (e.g. Flickr, Amazon) are another possible source of
> information... some of the work on incentives for distributed computing
> (donating your computer's time to some task) may also be worth looking
> into (e.g. lottrees).
>
>
>> One solution would be to evolve a "critic" that evaluates the results,
>> and then let it work automatically.
>> I have some ideas about how to evolve the critic based on examples of
>> good art that can be found easily on the web.
>>
> A related concept in genetic algorithms is "co-evolution"; in chess you
> might have a collection of black players and a collection of white
> players, and have them play against each other as they evolve.
>
> Cheers,
> -Nikolas
>
>
> ------------------------------------------------------------------------
>
> ........................................................................
> .......dorkbot dc: people doing strange things with electricity.........
> ................... http://dorkbot.org/dorkbotdc .......................
> ........................................................................

```