Surprising Creativity: Anecdotes from Evolutionary Computation(arxiv.org)
arxiv.org
Surprising Creativity: Anecdotes from Evolutionary Computation
https://arxiv.org/abs/1803.03453
7 comments
When using evolutionary pressures to guide software, you have to remember that your stated goal (via fitness functions) often does not truly reflect your intended goal.
For example, when I was using genetic algorithms to pick stock trades, I tried to maximize total_net_gain_loss / number_of_trades. The GA quickly figured out that 0 trades was the best answer. In hindsight, Duh! But I wanted to make trades!
"The only winning move is not to play"
For example, when I was using genetic algorithms to pick stock trades, I tried to maximize total_net_gain_loss / number_of_trades. The GA quickly figured out that 0 trades was the best answer. In hindsight, Duh! But I wanted to make trades!
"The only winning move is not to play"
That is one kind of problem. The 'Genie' problem: be very specific what you wish for because the genie will misinterpret you.
But it's not the only kind of problem. There are inherent biases in evolutionary systems. One example: in systems with varying length genotypes there is a massive pressure to bloat. Even if you encode 'small' as a strong requirement in your fitness function, it may not be enough (or it may be enough to completely defeat whatever your real goal was).
There are inherent biases. In the (simulated) genetics, in the genotype to phenotype mapping, in the evolutionary operators, even if you get the fitness function right.
Evolutionary computing as an engineering tool is hard.
But it's not the only kind of problem. There are inherent biases in evolutionary systems. One example: in systems with varying length genotypes there is a massive pressure to bloat. Even if you encode 'small' as a strong requirement in your fitness function, it may not be enough (or it may be enough to completely defeat whatever your real goal was).
There are inherent biases. In the (simulated) genetics, in the genotype to phenotype mapping, in the evolutionary operators, even if you get the fitness function right.
Evolutionary computing as an engineering tool is hard.
Just picking a nit, but the problem with a genie isn't that it misinterprets you but that it literally does exactly what you ask for. The mismatch between "what you wanted" and "what you asked for" isn't the genie's fault but yours.
Yes, the genie gives you exactly what you ask for but misinterpretes what you wish for.
[deleted]
Re: "The 'Genie' problem: be very specific what you wish for because the genie will misinterpret you."
My first wish is to beta-test my next 2 wishes.
My first wish is to beta-test my next 2 wishes.
This parallels much of mathematics. Many formulations, even in physics, admit so called trivial solutions which amount conceptually to zero.
My first thought: Why not just use max gain? of course that would leas to catastrophic failure over short or long. Second thought: Why not both? Just like speed is a derivative, so perhaps you want a set of differential equations, also gain per square time, too.
On another note, "not to play" should be a zero-division error.
On another note, "not to play" should be a zero-division error.
The article's philosophical discussion of "surprise" feels a little klunky and academic to me, and I think conflates some different kinds of surprise, but it's still really fun to think about.
Many of the projects here are all inspired by Karl Sims' work in the early 90's.
http://www.karlsims.com/
Sims evolved virtual creates by specifying goals to achieve and then running a physics simulation. He noted at the time that the evolution process was great at exploiting bugs in the simulation.
https://www.youtube.com/watch?v=JBgG_VSP7f8
I was insipred enough by Sims' genetic images (http://www.karlsims.com/genetic-images.html) that I spent a few years trying to get surprising and beautiful results of my own, with some limited success (https://flic.kr/s/3Xoz).
Many of the projects here are all inspired by Karl Sims' work in the early 90's.
http://www.karlsims.com/
Sims evolved virtual creates by specifying goals to achieve and then running a physics simulation. He noted at the time that the evolution process was great at exploiting bugs in the simulation.
https://www.youtube.com/watch?v=JBgG_VSP7f8
I was insipred enough by Sims' genetic images (http://www.karlsims.com/genetic-images.html) that I spent a few years trying to get surprising and beautiful results of my own, with some limited success (https://flic.kr/s/3Xoz).
Nice work! Your inspired-by-Sims collection is the best I've seen in that genre, I think. I always look when someone links to their genetic images because I once made some too: https://djb.deviantart.com/gallery/ (They were less garish at the original gamma setting, that's how long ago it was.)
It always felt like there's more potential in this direction. Maybe with a magic sprinkling of neural nets?
It always felt like there's more potential in this direction. Maybe with a magic sprinkling of neural nets?
Hey thank you!! Yours look great too. I know what you mean about gamma, mine were probably a little more washed out 15 years ago, I accidentally made them a bit gamma-proof I think. ;) I’m dying to find the time to do a JavaScript+WebGL version of this that other people can play with.
The big thing I spent time on was animating cross-fades between evolved expressions. I’ll send a link to the vid & paper if you’re interested.
The big thing I spent time on was animating cross-fades between evolved expressions. I’ll send a link to the vid & paper if you’re interested.
I'd be interested, thanks.
A web version would make a great time-waster. At least as the author I wound up spending much more time clicking through the space of images than working on the code; it might perhaps not feel as compelling without the feeling of getting something for almost nothing when your own program comes to life.
A web version would make a great time-waster. At least as the author I wound up spending much more time clicking through the space of images than working on the code; it might perhaps not feel as compelling without the feeling of getting something for almost nothing when your own program comes to life.
Here they are. Yeah, I agree with you, a big piece of the enjoyment was writing the code, and then being surprised by what happened while exploring the image space. You definitely don't have as much love for the surprises in someone else's program, not knowing what it's expected to do or how it works. At least one year I was working on this I spent more time using it than coding it, and it was pretty educational and productive to be more of a user.
https://www.youtube.com/watch?v=kLmtvIt6ihA
http://dahart.com/paper/hart_evomusart_2007_paper.pdf
http://dahart.com/paper/hart_evomusart_2007_slides.pdf
BTW, Karl Sims read this paper and recommended it for Siggraph, but a few other reviewers were fairly opposed to generative art papers. C'est la vie.
https://www.youtube.com/watch?v=kLmtvIt6ihA
http://dahart.com/paper/hart_evomusart_2007_paper.pdf
http://dahart.com/paper/hart_evomusart_2007_slides.pdf
BTW, Karl Sims read this paper and recommended it for Siggraph, but a few other reviewers were fairly opposed to generative art papers. C'est la vie.
Wow, the cross-fades really sell it. I never even tried to do anything like that; my genetic programs were for a kind-of-weird stack machine as the easiest thing to do. https://github.com/darius/tusdl/blob/master/evo.c
Slightly related to the starting topic of learned exploits: op_hwb_color() producing most of the colors seems to have suffered from some undefined or implementation-defined behavior -- I couldn't reproduce old pictures when I came back to this many years later. Yet that one misbehavior deserves a lot of the credit for whatever aesthetic value turned up. C'est encore la vie.
Slightly related to the starting topic of learned exploits: op_hwb_color() producing most of the colors seems to have suffered from some undefined or implementation-defined behavior -- I couldn't reproduce old pictures when I came back to this many years later. Yet that one misbehavior deserves a lot of the credit for whatever aesthetic value turned up. C'est encore la vie.
> The article's philosophical discussion of "surprise" feels a little klunky and academic to me
To me it sounded like something a referee would request or something they suspected a referee would request.
To me it sounded like something a referee would request or something they suspected a referee would request.
Off topic - I find it humorous that arXiv list 49 authors and then ends the listed author list with:
"et al. (1 additional author not shown)"
I know a line has got to be drawn somewhere but in this case, listing the last author (Jason Yosinksi) would have taken less space than the explanation that not all the authors are shown.
I know a line has got to be drawn somewhere but in this case, listing the last author (Jason Yosinksi) would have taken less space than the explanation that not all the authors are shown.
Finding where your simulation model breaks down is one of two great features of evolutionary optimization. The other is its ability to preserve a population of approximate solutions rather than finding only a single optimized solution.
The article claims that certain popular dance songs from the early 2000s were in part generated using evolutionary algorithms. Does anyone know which songs they might be?
I knew it had to be in there and indeed it was. The 'Impossibly Compact Solutions' case is expanded upon in this article by Alan Bellows: https://www.damninteresting.com/on-the-origin-of-circuits/
I don't know why, but after ten years it remains one of my favorite stories on the Internet. Worth a read IMHO.
I don't know why, but after ten years it remains one of my favorite stories on the Internet. Worth a read IMHO.
Here are two fun gifs of clever solutions AI came up with:
https://twitter.com/jeffclune/status/974718199722795008
https://twitter.com/jeffclune/status/973605950266331138
Here are some press articles which provide a shorter summary of some fun anecdotes.
popularmechanics.com/technology/robots/a19445627/the-hilarious-and-terrifying-ways-algorithms-have-outsmarted-their-creators/
https://www.newscientist.com/article/8-8-hilarious-ways-ai-h... (paywalled unfortunately)