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