Artificiell evolution av bilder
Stina Andrén stian748
840809-0044
729G50 – Artificiell Intelligens
Linköpings Universitet
HT 2007
Abstract
Evolutionary art är konst som är skapad genom genetiska algoritmer; artificiell evolution. Jag
kommer först att beskriva hur en genetisk algoritm fungerar för att sedan gå vidare till hur
man skapar bilder genom artificiell evolution. En djupare beskrivning av hur bilder kan
utvecklas genom genetisk programmering av Lisputtryck kommer att göras. Jag kommer även
att diskutera automatiserat estetiskt urval och hur framtiden ser ut för artificiellt utvecklade
bilder.
Innehållsförteckning
Genetiska algoritmer .............................................................................................................. 1
Generellt om genetiska algoritmer ..................................................................................... 1
Procedur ............................................................................................................................. 1
Evolutionary art...................................................................................................................... 2
Biomorphs .......................................................................................................................... 3
Artificiell evolution av bilder med Lisputtryck som genotyper............................................. 4
Mutation av Lisputtryck ..................................................................................................... 6
Korsning av Lisputtryck..................................................................................................... 7
Resultat............................................................................................................................... 7
Genetic images ................................................................................................................... 8
Automatiserat estetiskt urval.................................................................................................. 9
Automatiserat urval med likhetsteorin ............................................................................... 9
Framtida utveckling.............................................................................................................. 10
Diskussion ............................................................................................................................ 11
Referenser............................................................................................................................. 12
Figurförteckning................................................................................................................... 12
729G50 – Artificiell Intelligens
HT 2007
Stina Andrén
840809-0044
Genetiska algoritmer
Generellt om genetiska algoritmer
Genetiska algoritmer introducerades på 70-talet av John Holland, och är en parallell sökteknik
som är inspirerad av Darwins evolutionsteori [2]. Algoritmen simulerar evolution genom att
skapa en population av möjliga lösningar och tar sedan fram den bästa lösningen genom
mutation och korsning. Istället för evolutionens naturliga urval eller ”survival of the fittest”
används i genetiska algoritmer något som kallas för en ”fitnessfunktion” för att få fram den
bästa lösningen.
Procedur
Först initieras en population av slumpmässigt genererade representationer av möjliga
lösningar. Dessa kallas genotyper. I biologin består en genotyp av DNA. Genotyperna i
artificiell evolution kan till exempel vara binära strängar av ettor och nollor, regler eller
vanliga tal. Lösningarna kan vara representerade på olika sätt beroende på området algoritmen
används i. Storleken på populationen är också den beroende på problemet, den kan till
exempel bestå av hundratals eller tusentals olika genotyper. Den lösning som genotypen
representerar, alltså det resultat den kommer att leda till, kallas för fenotyp. I biologin skulle
detta motsvara till exempel en människa, vars genotyp är ett visst DNA. [2]
Från populationen görs sedan ett urval av de individer (lösningar) som kommer att gå vidare
till nästa generation. Urvalet görs med hjälp av en fitnessfunktion som mäter kvaliteten på
lösningarna. Kvaliteten kan exempelvis mätas genom att funktionen ger högre poäng till
lösningar som presterar bra och lägre poäng till lösningar som presterar sämre.
Fitnessfunktionen är kontextberoende och blir därför olika för olika sorters problem. När
sedan ett antal lösningar blivit utvalda ska de reproduceras till nästa generation genom de
genetiska operatorerna korsning och mutation. Hur många lösningar som väljs ut för att
fortsätta evolutionen beror också det på kontexten. Korsning innebär att man tar två lösningar
och korsar deras gener med varandra för att få fram en ny lösning. Mutation innebär att ett
eller flera element i en lösning byts ut eller byter plats, på ett eller annat sätt förändras. [3]
På detta sätt skapas en ny generation av lösningar som skiljer sig från den första. Sedan
upprepas proceduren på generation efter generation med den önskade effekten att bättre och
bättre lösningar genereras. Sökningen kan avslutas på flera olika sätt. Antingen kan den
avslutas när en lösning är funnen, eller så har man satt en gräns för hur många generationer
som ska utvecklas. I det fallet avslutas algoritmen när den når denna gräns. Men det finns
även andra sätt att avsluta den, till exempel genom manuell inspektion efter att ett antal
generationer skapats. [2]
För att en genetisk algoritm ska fungera krävs det att förändringarna som görs med de
genetiska operatorerna inte innebär för stora förändringar i genotypen, för annars kan
ändringarna bli slumpmässigt till det sämre vilket skulle leda till att algoritmen skulle bli som
en slumpmässig sökfunktion. [7]
1
729G50 – Artificiell Intelligens
HT 2007
Stina Andrén
840809-0044
Pseudokod för en genetisk algoritm kan se ut så här (dock finns flera olika typer, detta är bara
ett av många möjliga sätt att utföra algoritmen):
Initiera en population
Utvärdera populationen med en fitnessfunktion
Repetera:
Välj ut individerna som ska reproduceras
Korsa och/eller mutera individerna
Utvärdera nästa generation
Ersätt de sämst rankade individerna i populationen med den nya generationen
Tills man uppnår ett tillfredsställande resultat
Fördelar med genetiska algoritmer är att de arbetar parallellt och inte kräver expertkunskap
om problemet i fråga [7]. De är väldigt anpassningsbara och har många användningsområden.
Genetiska algoritmer används oftast för att lösa problem där man har en stor mängd med
information att söka igenom. Nackdelar med genetiska algoritmer är att de inte alltid hittar
den optimala lösningen på problemet. Det är väldigt viktigt att fitnessfunktionen och
genotypen är väl utformade. Om inte fitnessfunktionen fungerar som den ska är det omöjligt
för algoritmen att hitta en lösning. [2]
Evolutionary art
Ett område där man använder genetiska algoritmer är evolutionary art. Här skapar man konst,
såsom bilder och musik, genom artificiell evolution.
Redan för 150 år sedan drömde Ada Lovelace, kvinnan som ofta kallas den första
programmeraren, om att skapa ett kreativt system. Hon ville göra en dator med musikalisk
kapacitet. Genom åren har människor på flera olika sätt försökt skapa system som är kreativa,
bland annat genom neurala nät, expertsystem och genetiska algoritmer. [2]
Evolutionary art skiljer sig från den vanliga användningen av genetiska algoritmer genom att
det inte finns ett bestämt mål för sökningen som kan mätas med en fitnessfunktion.
Det handlar här inte om ett problem som har en bestämd lösning utan snarare om att utforska
ett område med hjälp av genetiska algoritmer. De blir ett undersökande redskap istället för ett
optimerande redskap. [2] Det man vill uppnå är något som är kreativt och tilltalande.
Eftersom det här målet är ungefär så diffust det kan bli är det väldigt svårt att använda sig av
en fitnessfunktion för att uppnå det. Istället för fitnessfunktionen använder man sig i
evolutionary art oftast av interaktivt estetiskt urval. Med detta menas att en människa kommer
in i processen mellan varje generation och väljer ut till exempel de bilder eller musikstycken
som är mest tilltalande. Dessa går då vidare till nästa generation. Antingen kan användaren ha
ett mål med sina val, att till exempel bilden ska utvecklas i en viss riktning, eller så görs valet
enbart utifrån estetiken.
En nackdel med interaktivt urval är att det är tidskrävande, speciellt när det gäller musik där
användaren måste lyssna igenom ett helt musikstycke för att kunna bedöma det. Det är också
lätt att en bedömare kommer in på rutin och blir uttråkad och slutar tänka efter vid sina val.[1]
Att sitta och ständigt bedöma saker är svårt och kräver hög koncentration. Något som dock är
intressant med interaktivt urval är att till exempel den bild som användaren slutligen nöjer sig
med efter ett antal generationer på ett sätt representerar den människans sammanlagda
estetiska val, kan ses som en bild av den personens smak.
2
729G50 – Artificiell Intelligens
HT 2007
Stina Andrén
840809-0044
Det har gjorts flera mer eller mindre lyckade försök att skapa automatiserat estetiskt urval,
alltså en slags fitnessfunktion. Ett av dessa försök kommer att beskrivas kortfattat längre fram
i texten. Jag kommer dock först att skriva mer om interaktivt estetiskt urval.
Biomorphs
En av de första som använde sig av interaktivt estetiskt urval var biologen Richard Dawkins.
Han gav 1986 ut en bok som heter ”The Blind Watchmaker” som handlar om evolution och
naturligt urval. I boken beskrev han ett program han hade implementerat på sin dator.
Programmet hette Biomorphs och kunde rita symmetriska streckfigurer. [6]
Programmet har en rekursiv algoritm som utgår ifrån en uppsättning av nio parametrar som
varje genotyp består av. Dessa parametrar beskriver egenskaper hos strecken, till exempel
förgreningsfaktor och förgreningsvinkel. Nio olika figurer visas på skärmen samtidigt, från
start är de bara nio små streck. Man väljer en ruta att klicka på och denna figur blir då
föräldern till nästa generation av figurer. Alla de nio nya figurerna är alltså ättlingar till en och
samma figur, dock muterade på olika sätt. Det Dawkins hade tänkt var att dessa streck skulle
utvecklas till olika sorters trädliknande figurer med grenar och stammar, men snart såg han att
helt oväntade former började dyka upp, som till exempel djurliknande figurer. [1]
Det är många som har implementerat Dawkins Biomorphs, och flera versioner finns
tillgängliga på nätet. Jag har själv testat programmet och det är fascinerande vilka former som
kan utvecklas från att bara ha varit några streck. Efter fyrtio generationer fick jag fram
intressanta figurer som jag inte hade förväntat mig skulle utvecklas från de små streck som
jag startade med.
Figur 1. Biomorphs från utgångsläget samt efter evolution.
En man som har varit väldigt viktig för utvecklingen av artificiell evolution av bilder är Karl
Sims. Han skrev 1991 ett paper som heter ”Artificial evolution for computer graphics”, som
blev vägledande inom området. Jag kommer här att gå in i detalj på hur han har utvecklat sin
metod för artificiell evolution av bilder som han beskriver i sitt paper.
3
729G50 – Artificiell Intelligens
HT 2007
Stina Andrén
840809-0044
Artificiell evolution av bilder med Lisputtryck som genotyper
Genotyper som består av ett bestämt antal parametrar och regler har en begränsning, nämligen
att det bara är ett bestämt antal fenotyper som kan skapas. Det finns ingen möjlighet att en ny
parameter ska genereras av den artificiella evolutionen. Den genetiska rymden kan inte bli
större, utan utgår den från att ha N dimensioner kommer den fortsätta att ha det. För att
komma förbi den här begränsningen kan man ha funktioner i genotypen istället för att bara ha
parameterdata. Detta innebär att man går från en genetisk algoritm till genetisk
programmering.
Ett programmeringsspråk som lämpar sig väldigt bra för genetisk programmering är Lisp.
Detta för att Lisp representeras med trädstrukturer där varje nod är en funktion.
I det här fallet används Lisputtryck som genotyper. En uppsättning med Lispfunktioner och
ett antal argumentgeneratorer används för att skapa olika uttryck som kan muteras och korsas
för att skapa olika fenotyper. En del mutationer kan generera större uttryck med nya
parametrar, vilket gör att nya sorters fenotyper skapas. Andra mutationer förändrar bara de
redan existerande delarna av uttrycket.
Ekvationer som räknar ut färgen för varje pixelkoordinat(X,Y) i bilden utvecklas genom att
använda uppsättningen med Lispfunktioner. Den består av 36 stycken funktioner:
+, -, *, /, mod, round, min, max, abs, expt, log, and,
or, xor, sin, cos, atan, if, dissolve, hsv-to-rgb, vector,
transform-vector, bw-noise, color-noise, warped-bw-noise,
warped-color-noise, blur, band-pass, grad-mag, grad-dir,
bump, ifs, warped-ifs, warp-abs, warp-rel, warp-by-grad.
Uppsättningen består av flera olika sorters funktioner som påverkar en bild på olika sätt.
Varje funktion tar ett visst antal argument och räknar ut och returnerar en bild. Här är några
exempel på vad olika funktioner kan utföra:
Noise-funktionerna(bw-noise, color-noise, warped-bw-noise, warped-color-noise)
tar slumpmässiga tal som argument och gör bilden suddig eller grynig på olika sätt. Ju högre
tal som argument desto mer noise. Blur och warp är funktioner som förvränger bilden på
olika sätt. De booleska operatorerna and, or och xor kan skapa bilder som får ett rutmönster.
På nästa sida visas en bild med exempel på vad olika enkla funktioner kan skapa för bilder.
4
729G50 – Artificiell Intelligens
HT 2007
Stina Andrén
840809-0044
Figur 2. Bilder som skapats av funktionerna nedan.
A är längst upp till vänster och I är längst ned till höger.
a.
b.
c.
d.
e.
f.
g.
h.
i.
X
Y
(abs X)
(mod X (abs Y))
(and X Y)
(bw-noise .2 2)
(color-noise .1 2)
(grad-direction (bw-noise .15 2) .0 .0)
(warped-color-noise (* X .2) Y .1 2)
Sims har inte beskrivit detaljerna kring hur funktionerna implementeras eftersom han inte
tycker att det är det viktiga i proceduren. Det som han anser är viktigt att beskriva är
metoderna som används för att kombinera funktionerna till längre uttryck. Detta görs genom
de genetiska operatorerna som kommer att beskrivas nedan, men först måste beskrivas hur
funktionerna får argument att använda.
5
729G50 – Artificiell Intelligens
HT 2007
Stina Andrén
840809-0044
Uttryck skapas genom att en slumpmässig funktion från funktionsuppsättningen väljs och
sedan genereras så många argument som just den funktionen behöver. Argumenten till
funktionerna kan vara antingen vara scalars(ett värde) eller vektorer(en lista med värden).
Olika sorters slumpmässiga argument kan genereras:
! En scalar, t ex .4
! En vektor bestående av tre element, t ex #(.34 .45 .98)
! En variabel, t ex X- eller Y-koordinaten på pixeln
! Ett annat Lisputtryck som returnerar en svartvit eller färgbild
De flesta av funktionerna har blivit anpassade så att de tvingar argumenten att vara av rätt typ,
eller så utför de olika saker beroende på typen av argument som givits till dem. Oftast tar
funktionerna emot och returnerar bilder.
Evolution av Lisputtrycken görs genom interaktivt estetiskt urval. Fenotyperna av
slumpmässiga uttryck genereras och visas på en skärm och sedan väljer en användare vilka
bilder som ska reproduceras.
Mutation av Lisputtryck
Oftast är små förändringar att föredra framför stora när uttrycken muteras. Stora
slumpmässiga förändringar i genotypen leder till stora förändringar i fenotypen, som kanske
inte alltid är till det bättre. Ändå behövs de stora förändringarna ibland för att uttrycket ska
utvecklas till att bli mer komplext. Det finns flera olika sätt att mutera Lisputtrycken:
!
!
!
!
!
!
!
Vilken nod som helst kan mutera till ett nytt slumpmässigt uttryck. Detta kan leda till
stora förändringar i fenotypen.
Om noden är en scalar(ett värde) kan den muteras genom att addera en slumpmässig
summa till värdet som redan finns där.
Om noden är en vektor(lista med värden) kan den muteras genom att addera en
slumpmässig summa till varje element i listan.
Om noden är en funktion kan den mutera till en ny funktion.
Ett uttryck kan bli ett argument till en ny slumpmässig funktion. Om funktionen
kräver flera argument genereras dessa slumpmässigt. Till exempel kan X bli (* X .3).
Ett argument i en funktion kan hoppa ur funktionen och bli det nya värdet för noden.
Tvärtom mot föregående alltså. Till exempel kan (* X .3) bli X.
En nod kan muteras till en kopia av en annan nod från föräldrauttrycket.
Andra typer av mutationer kan förstås också göras, men dessa räcker för att få en balans
mellan små förändringar och möjligheter till mer komplexitet.
Antalet mutationer som görs beror på längden av föräldrauttrycket. Detta minskar risken för
att många mutationer görs på ett redan komplext uttryck. På så sätt behålls något slags
stabilitet hos fenotyperna. De blir varken för stora eller för små. Man kan lätt tro att ökad
komplexitet i uttrycken leder till häftigare bilder, men så är inte alltid fallet. Det är ofta bättre
med en minskning i komplexitet än en ökning i komplexitet. En ökad komplexitet kan
innebära att det blir stora uttryck som kräver mycket minne utan att de behöver förbättra
resultatet för den sakens skull.
6
729G50 – Artificiell Intelligens
HT 2007
Stina Andrén
840809-0044
Det tar lång tid att rita upp bilden för ett väldigt komplext uttryck. För att hålla nere
tidsåtgången tas uttryck som är för tidskrävande bort från populationen redan innan de visats
för användaren. Detta görs genom att bedöma beräkningstiden för ett uttryck. För varje
funktion finns en genomsnittlig beräkningstid uträknad. Genom att summera tidsåtgången för
alla funktioner i uttrycket får man fram den totala beräkningstiden för uttrycket.
Istället för de borttagna uttrycken genereras nya uttryck som också deras tidsåtgång mäts
innan de visas för användaren. Detta upprepas tills uttryck som är tillräckligt snabba
genereras. Denna procedur innebär att ett automatiserat urval görs innan det interaktiva
urvalet, och på så sätt blir processen en samverkan mellan automatiserat och interaktivt urval.
Korsning av Lisputtryck
Två metoder används för att korsa uttryck. Den första metoden kräver att de två uttryck som
ska korsas är någorlunda lika i strukturen. Noderna i de båda uttryckens trädstrukturer gås
igenom simultant och kopieras, och när en skillnad mellan de två uttrycken upptäcks kopieras
en av de två versionerna. Sannolikheten för att den ena ska kopieras är lika stor som för den
andra. Denna korsning ger genotyper som inte skiljer sig speciellt mycket från
föräldrauttrycken. Här nedan har två uttryck korsats. De genererar fyra barn, två av dem är
likadana som föräldrauttrycken och två har lika mycket från båda föräldrar.
Förälder 1: (* (abs X) (and X Y))
Förälder 2: (* (/ Y X) (* X -.7))
Barn
Barn
Barn
Barn
1:
2:
3:
4:
(*
(*
(*
(*
(abs
(abs
(/ Y
(/ Y
X)
X)
X)
X)
(and
(* X
(and
(* X
X Y))
-.7))
X Y))
-.7))
Den andra metoden för att korsa uttryck är mindre begränsad än den första. Den går till så att
en nod i det ena uttryckets trädstruktur byts slumpmässigt ut mot en slumpmässigt vald nod i
det andra uttryckets trädstruktur. Detta innebär att vilken del som helst från den ena föräldern
kan sättas in var som helst i den andras struktur. Med den här metoden kan de två
föräldrauttrycken generera 61 olika genotyper, till skillnad från de fyra som kan genereras
med den första metoden.
Resultat
Det här projektet utfördes på en parallell superdator som heter Connection Machine CM-2,
som kom ut på marknaden 1987. Som mest fanns det ungefär 70 stycken Connection
Machines i världen. Mutationerna och korsningarna av Lisputtrycken utfördes på en annan
dator, och superdatorn användes för att parallellt evaluera alla pixlar och rita upp bilden.
Programmeringsspråket som användes på Connection Machines heter Starlisp och är en sorts
Lisp.
Lisputtryck kräver ofta 10 till 40 generationer av bilder innan intressanta motiv kan uppstå.
Ett extremt stort antal uttryck av acceptabel längd kan uppnås genom evolutionen och otroligt
många olika mönster och strukturer kan bildas. Uttryck som bara är fem eller sex rader långa
kan generera komplexa bilder. De här uttrycken kan utvecklas genom den artificiella
evolutionen på bara ett antal musklick under några minuter, alltså bra mycket snabbare än den
tid det tar ett designa en sådan bild.
7
729G50 – Artificiell Intelligens
HT 2007
Stina Andrén
840809-0044
Figur 3. Artificiellt utvecklad bild.
Detta uttryck skapade bilden ovan:
(cos (round (atan (log (invert y) (+ (bump (+ (round x y) y) #(0.46 0.82
0.65) 0.02 #(0.1 0.06 0.1) #(0.99 0.06 0.41) 1.47 8.7 3.7) (color-grad
(round (+ y y) (log (invert x) (+ (invert y) (round (+ y x) (bump (warpedifs (round y y) y 0.08 0.06 7.4 1.65 6.1 0.54 3.1 0.26 0.73 15.8 5.7 8.9
0.49 7.2 15.6 0.98) #(0.46 0.82 0.65) 0.02 #(0.1 0.06 0.1) #(0.99 0.06
0.41) 0.83 8.7 2.6))))) 3.1 6.8 #(0.95 0.7 0.59) 0.57))) #(0.17 0.08 0.75)
0.37) (vector y 0.09 (cos (round y y)))))
Det är svårt att förstå hur dessa uttryck kan skapa så komplexa bilder, men det är heller inte
nödvändigt för en användare att kunna analysera uttrycken när den här metoden använts för
att skapa bilderna.
Intressanta bilder kan sparas för framtida användning genom att man sparar bildens genotyp.
Eftersom genotypen endast är ett Lisputtryck tar den inte stort utrymme, och man kan därför
spara väldigt många bilder i form av genotyperna. Dessa kan sedan användas på nya sätt,
exempelvis genom att man muterar dem med andra intressanta bilder. [4]
Genetic images
I projektet Genetic Images från 1993 använde Karl Sims artificiell evolution med Lisputtryck
som genotyper för att utveckla bilder. Projektet har bland annat ställts ut på Centre Georges
Pompidou i Paris. En population av 16 bilder visades på lika många bildskärmar som satt
bredvid varandra. Besökarna bestämde vilka bilder som skulle gå vidare till nästa generation
genom att ställa sig på sensorer framför dessa. De bilder som ingen ställde sig framför ersattes
8
729G50 – Artificiell Intelligens
HT 2007
Stina Andrén
840809-0044
med ”avkomma” av de bilder som har valts. På det här sättet skapades en artificiell evolution i
samverkan med museets besökare.
Den här installationen var en intressant samverkan mellan människa och maskin, där
människan stod för känslan och det estetiska urvalet, medan datorn stod för algoritmen och
utförandet. Det som uppnåddes i samarbetet var något som ingen av delarna hade kunnat
åstadkomma på egen hand. [5]
Automatiserat estetiskt urval
Automatiserat estetiskt urval är inte bara intressant för att det skulle göra processen i artificiell
evolution av bilder mycket snabbare utan också för att det finns en mängd andra områden där
det skulle kunna användas. Användningsområden diskuteras mera längre fram.
Väldigt lite forskning har gjorts på vad som egentligen gör en bild intressant, trots att det
alltid har funnits ett intresse för detta. Man vet väldigt lite om hur estetiskt urval fungerar, och
det är en fortfarande en lång väg att gå för att uppnå den kunskapen. På senare år har dock ett
antal intressanta försök gjorts till automatiserat estetiskt urval. Ett sätt att göra detta är att
använda sig av förkunskap om bilder och om genotyper som genererar estetiskt tilltalande
bilder. Dock finns det ingen metod för att bestämma genotypernas fitness utifrån denna
information. Det finns dock en ny generell teknik som inte kräver expertkunskap för att lösa
problemet. Denna beskrivs mycket kortfattat nedan. [6]
Automatiserat urval med likhetsteorin
Två svenskar, Nils Svangård och Peter Nordin, som arbetar på Chalmers, har gjort ett projekt
där de försöker utveckla automatiserat estetiskt urval. De använder sig av den matematiska
likhetsteorin, där en ny universell metod för att räkna ut likheten mellan två objekt har
utvecklats. Baserat på ett bibliotek av estetiskt tilltalande bilder räknar de med hjälp av
likhetsmetoden ut hur lika nya genotyper är bilderna i biblioteket. På detta sätt går de bilder
som är mest lika bilderna i biblioteket vidare till nästa generation och muteras och korsas. De
utvärderade sin metod genom att en användare fick göra ett estetiskt urval, och sedan
jämförde de resultatet av detta med vad deras automatiserade urval fick för resultat. Den
slutsats de drog av resultatet av detta var att deras system kunde skilja på fina och fulare
bilder, men att systemet dock fick problem när en generation bestod av bilder som var väldigt
lika varandra. [6]
Exakt hur deras metod fungerar går jag inte närmare in på, det är inte relevant för det här
projektet, det som är viktigt att nämna här är att det finns metoder för att utveckla
automatiserat estetiskt urval, alltså en slags fitnessfunktion, i evolutionary art. Dock bygger
alla dessa metoder på att man redan har en uppsättning med bilder som är estetiskt tilltalande
som systemet kan jämföra med på ett eller annat sätt.
9
729G50 – Artificiell Intelligens
HT 2007
Stina Andrén
840809-0044
Framtida utveckling
Även om inte speciellt mycket forskning gjorts på automatiserat estetiskt urval och
evolutionary art märker man ändå att utvecklingen har gått framåt inom området. Detta med
tanke på de nya tekniker som kommit på senare år för att automatiserat välja ut bilder [6]. Det
ska bli intressant att se hur området kommer att utvecklas både inom den närmaste framtiden
och även på lång sikt. Som det är nu finns inte särskilt många användningsområden för
artificiellt utvecklade bilder förutom i just det konstnärliga skapandet, men jag kan tänka mig
att de kan komma att bli användbara i framtiden om man lyckas skapa en fungerande
fitnessfunktion.
För att kunna skapa en bra fitnessfunktion behöver man dock veta mera om hur kreativitet
fungerar. Hur uppstår människans känsla för vad som är vackert? Vad är det som gör att man
väljer en bild framför en annan? Detta område är väldigt diffust och man vet inte mycket om
det. Fram tills att vi vet mer om hur dessa sidor av medvetandet fungerar får vi förlita oss på
andra sätt att göra estetiska urval.
Karl Sims har många idéer om hur artificiell evolution av bilder skulle kunna utvecklas
vidare. Han föreslår bland annat att man skulle kunna ha en specifik bild som mål för
evolutionen. Då skulle man behöva ha en fitnessfunktion som kunde avgöra hur lik den
utvecklade bilden är målbilden och ett uttryck skulle kunna sökas efter med automatiskt urval.
Sedan skulle man kunna blanda interaktiv selektion med automatisk selektion, om man utgår
från det som den automatiska selektionen skapat och sedan väljer interaktivt. Han föreslår
även att man skulle kunna spara information om det interaktiva urvalet, alltså vilka bilder som
valts i de olika generationerna, och analysera detta urval. Man skulle då kanske kunna skapa
ett system som kunde generalisera denna information och ”förstå” vad som gör en bild
attraktiv. Man skulle sedan använda sig av en fitnessfunktion som avgjorde hur väl de
genererade bilderna motsvarar dessa krav. Detta är en väldigt intressant tanke, men också en
väldigt svår utmaning. [4]
Det kan tänkas att det finns många områden där evolution av bilder kan vara användbart i
framtiden. Några exempel kan vara inom design och arkitektur eller inom modeindustrin.
Evolution av bilder kan tänkas användas som ett verktyg för att öka och inspirera kreativiteten
hos en användare.
10
729G50 – Artificiell Intelligens
HT 2007
Stina Andrén
840809-0044
Diskussion
Jag tycker att genetiska algoritmer är ett väldigt spännande område inom artificiell intelligens.
De kan appliceras på väldigt många olika områden och alltså även på något så oväntat som
konst. Det som är intressant med algoritmerna är att de kan användas framgångsrikt på så
många olika sätt inom olika områden. På ett håll löser de en viss sorts problem, på ett annat
håll en annan typ av problem. När det gäller evolution av bilder används algoritmen som ett
utforskande verktyg snarare än en problemlösare.
Genetiska algoritmer fokuserar på resultatet, snarare än hur det uppnåtts. En användare
behöver inte förstå processen som skapar en bild, man behöver med andra ord inte veta hur
just ett speciellt Lisputtryck genererade en viss bild.
De bilder som skapas genom artificiell evolution är enligt mig inga mästerverk, men det som
är intressant är att se hur ett inte alltför långt Lisputtryck kan skapa en väldigt avancerad bild.
Evolutionen blir också väldigt påtaglig när man kan se hur bilderna utvecklas från generation
till generation.
11
729G50 – Artificiell Intelligens
HT 2007
Stina Andrén
840809-0044
Referenser
[1] Davidson, Aaron (2000). Evolution of art by aesthetic selection [www]
< http://spaz.ca/aaron/SCS/biography/selection.html > Hämtat 2007-10-02.
[2] Johnson, C & Romero Cardalda, J (2002). Genetic Algorithms in Visual Art and Music.
I: Special Edition: Leonardo vol 35 (MIT Press).
[3] Norvig, Peter & Russell, Stuart (2003). Artificial Intelligence – A modern approach.
Upper Saddle River. s. 116-119.
[4] Sims, Karl (1991). Artificial evolution for computer graphics.
I: Computer Graphics (Siggraph ’91 Proceedings) vol 25, s. 319-328.
[5] Sims, Karl (1993). Genetic Images. I: Centre Georges Pompidou revue virtuelle nr 5.
[6] Svangård, Nils & Nordin, Peter (2004). Automated aesthetic selection of evolutionary art
by distance based classification of genomes and phenomes using the universal similarity
metric. I: Applications of Evolutionary Computing, EvoWorkshops 2004 LNCS vol 3005,
s. 447-456.
[7] Thomas, Dale (2002). Aesthetic selection of developmental art forms. I: Artificial life vol
VIII (MIT Press), s. 157-163.
Figurförteckning
Figur 1……………………….. s. 3
Figur 2……………………….. s. 5
Figur 3……………………….. s. 8
Figur 1 hämtad 2007-10-10 från [www]
< http://www.rennard.org/alife/english/biomexamplegb.html >
Figur 2 & 3 hämtade från
Sims, Karl (1991). Artificial evolution for computer graphics. I: Computer Graphics
(Siggraph ’91 Proceedings) vol 25, s. 319-328.
12