Mikael'Skagenholt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Linköpings'Universitet' [email protected]''''''''''''''''''''''''''''''''''''''''''''Artificiell'Intelligens'II'–'729G11' ' '' ' ' ' ' Genetik'i'musik' En'analys'av'genetiskt'inspirerad'programmering'och'dess'kapacitet' till'musikskapande' ' ' ' ' ' ' ' ' ' ' ' ' Mikael'Skagenholt' [email protected]' 921021I1091' ' Artificiell'Intelligens'II' 729G11' Projektarbete'HT'2012' Linköpings'Universitet' ' 1' Mikael'Skagenholt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Linköpings'Universitet' [email protected]''''''''''''''''''''''''''''''''''''''''''''Artificiell'Intelligens'II'–'729G11' ' '' Abstract' I rapporten beskrivs metoden genetisk programmering, som genom evolutionsliknande operationer utvecklar syntaktiskt korrekta och körbara program baserat på de krav och syften som ställs av användaren. Denna metod jämförs med genetiska algoritmer, en närbesläktad metod, och båda utvärderas sedan i sin förmåga att skapa musik. Genetisk programmering förklaras därefter djupgående i relation till musikskapande och praktiska exempel visas med hjälp av systemet GP-music av Brad Johanson och Riccardo Poli (1998). Vidare analyseras Johanson och Polis utvärderingssystem, i form av ett artificiellt neuralt nät, och dess bakomliggande träningsprocess som låter datorn avgöra musikstyckets kvalitet utan mänsklig inblandning. ' 2' Mikael'Skagenholt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Linköpings'Universitet' [email protected]''''''''''''''''''''''''''''''''''''''''''''Artificiell'Intelligens'II'–'729G11' ' '' Innehållsförteckning' 1.#Introduktion#...................................................................................................................#4' # 1.1'Evolutionsteoretiska#uttryck#.......................................................................#5' # 1.2'Musikteoretiska#uttryck#................................................................................#5' # 1.3'Föregående#forskning#....................................................................................#6' # 1.4'Evolutionsbaserad#mjukvara#.......................................................................#6' 2.#Genetisk#programmering#........................................................................................#10' ###########2.1#Terminal#och#functional#sets#.....................................................................#10' ###########2.2#GPImusic#..........................................................................................................#13' ########################2.2.1#Genetiska#operatorer#..................................................................#14' ########################2.2.2#Fitness#...............................................................................................#16' 3.#Diskussion#....................................................................................................................#20' 4.#Källförteckning#...........................................................................................................#22' ' ' 3' Mikael'Skagenholt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Linköpings'Universitet' [email protected]''''''''''''''''''''''''''''''''''''''''''''Artificiell'Intelligens'II'–'729G11' ' '' 1.'Introduktion' Musikskapande och andra kreativa uttrycksformer har länge ansetts vara unikt mänskliga aktiviteter. Man skulle kunna hävda att kreativitet är en av de högsta formerna av intelligens och att det är en så avancerad, ogripbar process att den aldrig kan simuleras av maskiner som enbart följer instruktioner. Allteftersom fältet för artificiell intelligens har vuxit fram under det senaste dryga halvseklet har man dock börjat inse hur kraftfull och omfattande datorns kapacitet är, förutsatt att vi angriper problemen på rätt sätt. Datorn har med AI-forskningens hjälp gått från en förhärligad miniräknare till konstnärens värsta fiende- en maskin som aldrig upplever skrivkramp och i all oändlighet kan producera kreativt material. Evolutionskonceptet, som presenterades för allmänheten i Charles Darwins bok ”Om arternas uppkomst” år 1859, är en av de starkaste grunderna till människans avtagande tro på Gud. Genom detta verk avmystifierades vårt ursprung och man fann den process som låg bakom livet på Jorden. På samma sätt rör vi oss inom datavetenskapen mot en punkt där vi kan simulera, och avmystifiera, den mänskliga kreativa processen. Kan den egenskap många anser vara så unikt mänsklig faktiskt vara en produkt av idéer som likt evolutionsprocessen kombineras, muteras och slumpas i långa händelsekedjor? Jag har i detta projektarbete valt att kombinera evolutionskonceptet och musik för att se om något kreativt faktiskt kan uppstå ur ren utveckling och anpassning till de krav som ställs. Anledningen till att jag har valt att fokusera på musik är att det har varit en stor del av mitt liv under de senaste sju åren, i form av gitarr-, trum- och pianospelande. Det är därför den kreativa uttrycksform som jag känner mig mest bekant med. Hur kombinerar vi då dessa koncept så att de är relevanta för AI? Svaret finns i genetisk programmering. I det här projektarbetet kommer jag att fördjupa mig i denna metod och tillämpningen GP-music av Brad Johanson och Riccardo Poli (1998), för att se hur det faktiskt går till när musiken skapas genetiskt. ' 4' Mikael'Skagenholt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Linköpings'Universitet' [email protected]''''''''''''''''''''''''''''''''''''''''''''Artificiell'Intelligens'II'–'729G11' ' '' 1.1 Evolutionsteoretiska'uttryck' Genetisk programmering har i sin utformning inspirerats mycket av evolutionen. Man har därför döpt många operationer efter den faktiska evolutionära processen de efterliknar. Vilka operationer som används i GP-music presenteras mer ingående i ett senare skede av rapporten; nedan följer dock en kort, generell beskrivning av de för rapporten relevanta evolutionsteoretiska uttrycken: • Gen (Collins, 2012): en ärftlig enhet som finns i kromosomen och påverkar hur genotypen är uppbyggd • Genotyp (Collins, 2012): en organisms genetiska struktur • Fitness (Woodward, 1997): en organisms möjlighet för överlevnad i den givna miljön • Generation (Heitkötter och Beasley, 2000): en population av organismer som har uppstått (genom reproduktion) till följd av en hög fitness i föräldragenerationen • Population (Heitkötter och Beasley, 2000): en grupp individer som för någon form av interaktion med varandra • Förökning (Heitkötter och Beasley, 2000): skapandet av en ny individ från två föräldraindivider genom någon form av reproduktion 1.2 Musikteoretiska'uttryck' I denna rapport förekommer några musikteoretiska uttryck med avsikt att förklara hur musikskapandet faktiskt går till. Av denna anledning är det viktigt att introducera och skapa en enkel förståelse för följande uttryck som har hämtats från Virginia Tech Multimedia Music Dictionary (Cole och Schwartz, 1996): • Ton: ett musikaliskt ljud som går att beskriva i längd och tonhöjd ' 5' Mikael'Skagenholt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Linköpings'Universitet' [email protected]''''''''''''''''''''''''''''''''''''''''''''Artificiell'Intelligens'II'–'729G11' ' '' • Skala: en samling toner i en bestämd ordning, som antingen kan vara stigande eller fallande och börjar samt slutar på samma ton • Ackord: två eller fler toner som spelas samtidigt • Intervall: avståndet i tonhöjd mellan två toner • Takt: en enhet som bygger på att ha enhetligt många toner i varje sektion av ett musikstycke. För exempelvis en 4/4-takt består varje takt av fyra taktslag på formen 1-2-3-4. En ”fjärdedelsnot” (en ton som spelas under en fjärdedel av hela takten) ryms på ett taktslag, vilket innebär att fyra fjärdedelsnoter ryms i en takt. • Oktav: en ton som ligger åtta steg över ursprungstonen och har en dubbelt så hög frekvens 1.3 Föregående'forskning' Det har framförallt sedan nittiotalet utförts mycket forskning inom genetiska algoritmer och genetisk programmering i olika kreativa ämnen. Mest relevant för denna rapport är ansatsen som kommer att analyseras och beskrivas som exempel på ”evolutionsbaserad mjukvara” (genetiska algoritmer och genetisk programmering): GP-music (Johanson och Poli, 1998). Som jämförelse och informationskälla har även den genetisk algoritm-baserade GenJam (Biles, 1994) använts. Ytterligare inspiration har hämtats från Alfonseca et al. (2007) samt Burton och Vladimirova (1997) och deras forskning på utvärderingsmetoder (fitness raters) som hjälper datorn att på egen hand utvärdera kvaliteten i musiken som skapas. 1.4 Evolutionsbaserad'mjukvara' I samlingsordet ”evolutionsbaserad mjukvara” väljer jag att sätta begreppen ”genetiska algoritmer” och ”genetisk programmering” för att undvika missförstånd med liknande ansatser såsom ”evolutionär programmering” eller ”evolutionära ' 6' Mikael'Skagenholt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Linköpings'Universitet' [email protected]''''''''''''''''''''''''''''''''''''''''''''Artificiell'Intelligens'II'–'729G11' ' '' algoritmer”. Metoden som används av båda ansatserna till evolutionsbaserad mjukvara är snarlik i teorin, men genererar sina lösningar på olika sätt. För att genomföra en evolution med hjälp av genetiska algoritmer måste man först förse datorn med information att utgå från. Inom räckvidden för denna rapport kommer jag endast att förklara hur detta går till vid skapandet av musikstycken. Informationen som används representeras med hjälp av bitsträngar. En bitsträng är en samling bit, eller binary digit, som är den grundläggande enheten för datarepresentation inom informationsteknologi (Daintith, 2004). Flera enkla bitar kan kombineras till mer avancerade datamängder och därmed representera ett musikstycke. Representationen av ett musikstycke i GP-music sker genom XM, extended module format (Johanson och Poli, 1998). Det är ett filformat för musik som använder 255 olika värden, där toner, tonhöjd och pauser beskrivs och representeras som bitsträngar (Huss, 1994). När man väl har representerat sin initialpopulation av musikstycken i bitsträngar körs den genetiska algoritmen och genomför olika genetiska operationer, där bitsträngarna delas, sammanfogas och muteras. Det resulterar så småningom i en generation där användaren är nöjd med resultatet och väljer att stoppa förökningen. Resultatet blir en mer eller mindre slumpartad kombination av ursprungsmaterialet. Vid implementationen av andra problem är det möjligt att skapa helt slumpartade initialpopulationer, men eftersom man här strävar efter att skapa så bra musikstycken som möjligt så bör man ange något för datorn att sträva efter. Datorn vet trots allt inte vad som låter bra eller dåligt och sannolikheten för att den i de första hundra generationerna skulle skapa något som ens låter musikaliskt är nästan obefintlig. Vid skapandet av ett musikstycke utgår man därför gärna från ett eller flera referensverk. Genetisk programmering är i själva verket baserad på genetiska algoritmer, men skapar istället trädlika representationer av musikstycken som sedan modifieras av den evolutionära processen. För att kunna skapa en initialpopulation av musikstycken ' 7' Mikael'Skagenholt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Linköpings'Universitet' [email protected]''''''''''''''''''''''''''''''''''''''''''''Artificiell'Intelligens'II'–'729G11' ' '' måste man ange syntaktiska regler som sedan används för att skapa slumpmässiga (men regelbundna) organismer (Koza, 2003). Den stora skillnaden mellan genetiska algoritmer och genetisk programmering är därför att man i den genetiska programmeringen inte behöver implementera någon initialpopulation, eftersom den skapas slumpmässigt med hjälp av det syntaktiska regelverk som har implementerats. Varför kan man här låta bli att använda sig av ett referensverk? Vi finner svaret i skillnaden mellan metodernas representation av individer. För en genetisk algoritm har varje individs bitsträng en bestämd längd. Individer som skapats genom genetisk programmering har inte denna begränsning och kan därför innehålla mycket mer information. Efter ett fåtal generationer kan till exempel pauser och repetition naturligt uppstå hos en individ och överföras till nästkommande generationer (Johanson och Poli, 1998). Slutresultatet blir att man fortare kan skapa individer som låter som musik med hjälp av genetisk programmering, men å andra sidan enklare skapar musik i en viss stil eller generellt mer korrekta stycken med genetiska algoritmer (som följer ett referensverk). ' ' Figur 1: En möjlig skillnad i bitlängd för de olika metoderna Figur 1 visar hur individer (kvadrater) i genetisk programmering kan kombineras till nya individer av varierande längd. För genetiska algoritmer kombineras de olika individerna endast till en blandning mellan dessa, det vill säga att två stycken individer med längden åtta bitar skapar en tredje, åtta bitar lång individ. När det väl är dags att kombinera dessa individer för att skapa ett helt musikstycke kan individerna i genetisk programmering ha en helt slumpmässig storleksfördelning, medan individerna i genetiska algoritmer alltid kommer att vara lika stora (se figur 2). ' 8' Mikael'Skagenholt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Linköpings'Universitet' [email protected]''''''''''''''''''''''''''''''''''''''''''''Artificiell'Intelligens'II'–'729G11' ' '' ' ' Figur 2: En möjlig skillnad i storlek för varje individ (olikfärgade kvadrater är olika individer) i de olika metoderna Av detta exempel kan vi dra slutsatsen att genetiska algoritmer fungerar väl på rent matematiska problem, där man snabbt kan optimera en sträng till en önskad lösning. Problemet med musik är dock att det är en högst subjektiv konstform och inte kan angripas på samma sätt som ett matematiskt problem. Här blir därför den genetiska programmeringens utforskande tillvägagångssätt, med färre restriktioner och möjligheten att redan efter några få generationer skapa avancerade kombinationer av individer, en bättre lämpad metod. Självklart beror valet av metod på problemet man står inför; att skapa ett nytt musikstycke i Mozart-stil kan ses som att optimera flera av hans gamla verk till en ny lösning, och då låter genast genetiska algoritmer som den perfekta metoden. ' 9' Mikael'Skagenholt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Linköpings'Universitet' [email protected]''''''''''''''''''''''''''''''''''''''''''''Artificiell'Intelligens'II'–'729G11' ' '' 2.'Genetisk'programmering' Den genetiska programmeringen bygger på att skapa populationer av syntaktiskt korrekta datorprogram (Koza, 2003). Genom att ställa upp en grundläggande samling regler som specificerar hur den slutgiltiga lösningen ska se ut kan man forma programmets evolutionära utveckling. I GP-music, som jag kommer att fördjupa mig senare i denna rapport, hanteras musikstycket som ett program med en samling funktioner som definierar tillgängliga operationer för tonhjöd och rytm. För att kunna skapa syntaktiskt korrekta program behövs ett programspråk som har en så pass enkel syntax att man utan svårigheter kan sammanfoga bitar av kod, utan att stöta på stora problem. Man kan med fördel använda språket LISP tack vare dess prefixnotation (Koza och Poli, 2005) eftersom det liknar strukturen hos ett programträd (figur 3). För musikskapande är det relevant att definiera syntaktiska regler som på olika sätt kombinerar olika toner. ' ' ' ' ' ' ' Figur 3: En jämförelse av representation i träd och representation i LISP-aktig pseudokod. Här spelas två toner samtidigt och bildar ett C5-ackord. Programmet arbetar sig uppåt från barnnoderna till föräldranoden. 2.1'Terminal'och'functional'sets' Terminal och functional sets utgör det syntaktiska regelverk som hittills har diskuterats. De används i genetisk programmering för att definiera tillgängliga operationer (för matematiska problem till exempel addition och subtraktion) och vilka variabler och konstanter som får användas (Koza, 2003). Ett kort exempel presenteras för att visa hur detta fungerar i praktiken (figur 4). ' 10' Mikael'Skagenholt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Linköpings'Universitet' [email protected]''''''''''''''''''''''''''''''''''''''''''''Artificiell'Intelligens'II'–'729G11' ' '' Figur 4: En grafisk, mycket förenklad representation av innebörden hos terminal och functional sets ' Låt oss anta att vi ställs inför problemet att lösa en matematisk uppgift som lyder: vad är hälften av tre? Vi definierar då våra (mycket triviala) functional och terminal sets till att innehålla några relevanta operatorer och konstanter. Vårt terminal set innehåller i det här fallet siffrorna 0,5, 2 och 3 och vårt functional set innehåller de matematiska operatorerna multiplikation, division och subtraktion. Figur 4 visar hur man analogt sett kan likna evolutionsprocessen vid en gripklo, som tar upp lämpliga element (cirklar) från behållarna och släpper dem i en tredje behållare. Det utvecklade programmet kan jämföras mot vår frågeställning och vi ser att en korrekt lösning har genererats. Poängen med denna analogi är att visa hur evolutionen begränsas av den ram för möjliga operationer som skapas av terminal och functional sets- alltså skapas ett program som ger en relevant lösning tack vare dessa två värdemängder. När man kör en evolutionsprocess med hjälp av genetiska algoritmer i verkligheten förekommer även korsning och mutation, vilket genererar avsevärt många fler program. I detta exempel kan vi för enkelhetens skull anta att två möjliga lösningar genereras efter ett att ha bearbetats i ett antal generationer (figur 5). ' 11' Mikael'Skagenholt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Linköpings'Universitet' [email protected]''''''''''''''''''''''''''''''''''''''''''''Artificiell'Intelligens'II'–'729G11' ' '' Figur 5: Två möjliga lösningar på exempelproblemet ' De två givna lösningarna är inte på något sätt avancerade program. Dock illustrerar de hur två helt olika ansatser till en lösning kan skapas och vara lika syntaktiskt korrekta, genom att använda den prefixnotation som används i LISP och genom att begränsa evolutionens möjligheter till rimliga operatorer och konstanter. ' Vad är det då som bestämmer att en individ är lämplig och får föröka sig? Här spelar konceptet ”fitness” från evolutionsteorin en stor roll. Precis som att organismer i naturen endast kan överleva om de utvecklas lämpligt i förhållande till sin miljö, måste individerna i genetisk programmering utvecklas efter de krav som har ställts av användaren. Figur 6: Functional och terminal sets för GP-music. Bild tagen från Johanson och Poli (1998) Figur 6 illustrerar de olika functional och terminal sets som används i GP-music. Vi kan här se att Johanson och Poli har valt att begränsa sitt spann av toner från C-4 till B-5. Som tillgängliga handlingar finns möjligheten att spela två toner, lägga till pauser, spela samma sak två gånger, gå upp i tonhöjd, gå ner i tonhöjd, spegelvända en sekvens och att först spela en sekvens för att sedan spela upp den spegelvänt. ' 12' Mikael'Skagenholt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Linköpings'Universitet' [email protected]''''''''''''''''''''''''''''''''''''''''''''Artificiell'Intelligens'II'–'729G11' ' '' 2.2'GPGmusic' GP-music presenterades år 1998 av Brad Johanson och Riccardo Poli i rapporten ”GP-Music: An Interactive Genetic Programming System for Music Generation with Automated Fitness Raters”. Fram till dess hade musikrelaterade experiment konventionellt sett utförts med genetiska algoritmer eller andra metoder, men här presenterades en ansats för musikskapande som baserades på genetisk programmering. Enligt författarna själva var föredelen med genetisk programmering att man bland annat kunde integrera musikaliska strukturer direkt i individen, då individerna inte var begränsade i längd som motsvarigheterna i genetiska algoritmer (Johanson och Poli, 1998). Det innebär att man snabbt kan börja generera melodier med väldigt lite förkunskap om musikteori (Johanson och Poli, 1998). Figur 7 illustrerar detta på ett enkelt sätt. ' Figur 7: En överblick över hur individerna kombineras över tre generationer. Individen ”MUSIK” i den tredje generationen innehåller individerna ”TON” och ”PAUS + TON” Skillnaden jämtemot genetiska algoritmer i figuren ovan är att individen i generation 3 är tre gånger så lång som individerna i generation 1, men fortfarande bara en enstaka individ. Detta är inte möjligt med genetiska algoritmer tack vare dess begränsade genotyplängd. Praktiskt sett innebär det att individen ”MUSIK”, som jag har valt att låta bestå av ton-paus-ton, kan kombineras i sin fullständiga form med andra individer och snabbt skapa väldigt avancerade strukturer. Låt oss anta att ' 13' Mikael'Skagenholt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Linköpings'Universitet' [email protected]''''''''''''''''''''''''''''''''''''''''''''Artificiell'Intelligens'II'–'729G11' ' '' individen ”MUSIK” hamnar i samma generation som en individ bestående av delarna paus-ton-paus. Vi kan kalla denna individ ”MUSIK_2”. Båda individerna genomgår då mutation och kombination för att skapa individen ”MUSIK_3”, som består av byggstenarna ton-ton-paus-ton. Vi har därmed i en enda individ lyckats representera fyra diskreta, musikaliska händelser som för en genetisk algoritm skulle kräva fyra separata individer. Den slutsatsen ger en indikation på hur fort man kan skapa något som faktiskt låter musikaliskt godtagbart med hjälp av genetisk programmering. 2.2.1'Genetiska'operatorer' De genetiskt inspirerade operatorerna ligger till grunden för hela det evolutionära konceptet inom såväl genetiska algoritmer som genetisk programmering. I följande del kommer jag att avgränsa mig till att beskriva operatorerna som förekommer i GPmusic. GP-music använder, i Johanson och Polis genomförande, operatorerna ”reproduction”, ”crossover” och ”mutation”. Reproduction I vanlig reproduktion definieras ett probabilistiskt värde som avgör hur stor del av den nuvarande generationen som kan gå vidare till nästa generation (Koza, 1992). I GPmusic användes värdet 0,15 (Johanson och Poli, 1998). Det innebär att 15 % av individerna sannolikt (men inte nödvändigtvis) har en chans att gå vidare till nästa generation. Reproduktionsoperatorn kan alltså ses som en direkt kopiering av individer från en generation till nästa. Figur 8: Reproduktion från en generation till nästa ' 14' Mikael'Skagenholt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Linköpings'Universitet' [email protected]''''''''''''''''''''''''''''''''''''''''''''Artificiell'Intelligens'II'–'729G11' ' '' Crossover Den genetiska operation som ska likna sexuell förökning. Här skapas två nya individer från två föräldraindivider, och består av delar från de båda föräldrarna (Koza, 1992). Se figur 9. Figur 9: Ett exempel på crossover. Två föräldraindivider ger upphov till två avkommor. En crossover sker inte helt slumpmässigt. Ofta tilldelas individerna ett probabilistiskt värde (i GP-music-exemplet används värdet 0,7) som kan avgöra hur individerna kombineras. Visar sig kombinationen uppnå kraven som användaren har fastslagit, går den vidare till nästa generation där den kan fortsätta att förökas. Värdet 0,7 innebär att 70 % av individerna har chansen att gå vidare till nästa generation. Det innebär dock inte att 7/10 individer automatiskt går vidare till nästa generation- likväl kan 9/10 eller 2/10 gå vidare, även om sannolikheten för att det skulle inträffa är relativt liten (Koza, 1992). När en crossover genomförs så väljs först och främst en punkt på föräldraindividerna ut. Denna punkt representerar det kvarvarande ”arvet”, det vill säga den data som blir kvar från föräldern i avkomman (Koza, 1992). I figur 8 har det första värdet i individernas strängar, alltså röd och blå, valts som arv till nästa generation. När crossover-operatorn utför sitt arbete resulterar det därför i att det första värdet är kvar i vardera avkomma, och att position 2 och 3 är de som förändras. Mutation Muteringsoperatorn finns i första hand till för att undvika likformighet bland individerna i en generation. När användaren utvärderar musikstyckena som genereras, är det inte helt orimligt att anta att snarlika exempel kommer att värderas lika högt. Det innebär att evolutionen kommer att gå mot att skapa väldigt lika stycken med lite ' 15' Mikael'Skagenholt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Linköpings'Universitet' [email protected]''''''''''''''''''''''''''''''''''''''''''''Artificiell'Intelligens'II'–'729G11' ' '' utrymme för förändring. Mutationen används därmed främst för att ”återställa förlorad mångfald i en population” (Koza, 1992). Precis som i crossover så blir en slumpmässig punkt på en individ vald (men endast en enstaka individ i taget) för mutation och ersätts slumpartat med annan data. I GP-music är sannolikheten för mutation 0,15, alltså att 15% av individerna sannolikt sett kan muteras. Se figur 10. Figur 10: Mutation från en generation till nästa 2.2.2'Fitness' För att kunna göra ett urval av lämpliga individer måste man ha någon form av standard som avgör huruvida en individ är lämplig för att överleva eller inte. I GPmusic sköts detta manuellt av en människa, som genom ett grafiskt gränssnitt värderar kvaliteten i de genererade styckena (se figur 11). Johanson och Poli utförde därtill experiment med en så kallad auto rater, eller ett tränat artificiellt nät som på egen hand skulle bedöma musiken på ungefär samma grunder som den mänskliga användaren. ' 16' Mikael'Skagenholt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Linköpings'Universitet' [email protected]''''''''''''''''''''''''''''''''''''''''''''Artificiell'Intelligens'II'–'729G11' ' '' Figur 11: Det grafiska utvärderingsgränssnittet i GP-music. Bild tagen från Johanson och Poli (1998) Efter att en initialpopulation slumpmässigt har skapats är det upp till användaren att betygsätta resultaten. Det ger i sin tur upphov till ”the fitness bottleneck”, det vill säga att människan som utvärderar musiken blir en flaskhals i systemet till följd av att denne måste avsätta mycket tid till att överväga varje individ i varje generation. När användaren har sorterat ut olämpliga individer från en generation genomgår resterande individer någon av de tillgängliga genetiska operationerna. Sannolikt sett innebär detta att 70 % av de resterande individerna genomgår en crossover, att 15 % av individerna muteras samt att 15 % av individerna reproduceras. Artificiella neurala nät Johanson och Poli menade att det subjektiva värdet hos musiken inte gick att beräkna med hjälp av en matematisk funktion och valde därför att inte implementera någon sådan (Johanson och Poli, 1998). Istället ville de se om man kunde träna datorn till att se och följa mönster och riktlinjer i människans bedömning av musiken som genereras. Därför implementerade man ett artificiellt neuralt nät. I praktiken är ett artificiellt neuralt nät inspirerat av mänskliga nervsystem (Bermúdez, 2010). Det innebär att information skickas mellan olika noder; från ett perceptuellt stadie där det först uppfattas, till ett slutstadie där informationen omvandlas till någon form av handling. I GP-music använder man ett nät med så kallade ”delade vikter” och en algoritm som kallas ”back propagation”. Därför kommer jag att avgränsa beskrivningen av artificiella neurala nät till dessa relevanta koncept. ' 17' Mikael'Skagenholt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Linköpings'Universitet' [email protected]''''''''''''''''''''''''''''''''''''''''''''Artificiell'Intelligens'II'–'729G11' ' '' Den absolut enklaste modellen av ett artificiellt neuralt nät tar emot indata och skickar det vidare längs en kedja av artificiella neuroner. Man kan med enkelhet inse att det i fallet GP-music inte skulle generera någon form av inlärning och därmed tillåta all genererad musik att obehindrat passera. För att komma runt problemet implementerar man vikter, eller tröskelvärden som begränsar information från att gå vidare. Se figur 12. Att vikterna är delade innebär i sin tur att flera noder delar vikter med varandra, vilket är ett rationellt beslut att ta i och med att varje indata-nod representerar en ton eller paus (Johanson och Poli, 1998). Skulle man därför sätta ett tröskelvärde för varje enskild ton eller paus så skulle man snabbt göra nätverket extremt specifikt och oförmöget att generalisera. Om exempelvis tröskelvärdet för en paus skulle definieras till att vara oönskat i nätverket, skulle pauserna i princip helt och hållet försvinna från de genererade musikstyckena. Genom att ha delade vikter kan man därför värdera hela individer och kombinationer på en gång och därför göra nätverket generellt anpassat till att utvärdera resultatet av den genetiska processen. Figur 12: En del av ett artificiellt neuralt nätverk. Indatan med värde 1 kan inte gå vidare i nätverket eftersom vikten (tröskelvärdet) hos neuronen är >1 Vikterna definierar vad som får och inte får passera vidare i nätverket, men vad definierar vilka vikter som är lämpliga? Johanson och Poli valde att använda sig av algoritmen back propagation, som innebär att all data till en början släpps igenom, men att informationsflödet så småningom stryps beroende på hur användaren värderar musiken. Det innebär att dåliga fitnesspoäng propageras, eller skickas, bakåt i det neurala nätverket; från noderna som hanterar utdatan till noderna som hanterar indatan (Bermúdez, 2010). Tack vare att att användaren värderar utdatan kan back propagation-algoritmen ”träna” nätverket, det vill säga att den definierar korrekta vikter i det neurala nätverket. Se figur 13. ' 18' Mikael'Skagenholt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Linköpings'Universitet' [email protected]''''''''''''''''''''''''''''''''''''''''''''Artificiell'Intelligens'II'–'729G11' ' '' Figur 13: Efter att musiken har värderats av användaren, skickas information om vikternas värde tillbaka till början av nätverket För att träna auto rater-nätverket genomförde först en människa utvärdering på totalt 200 individer, som sedan delades in i två kategorier: ett träningsset och ett kontrollset (Johanson och Poli, 1998). Träningssetet användes sen för ytterligare träning av nätverket. När nätverket testades med kontrollsetet, som det inte hade tränats på tidigare, blev inte felmarginalen speciellt mycket större än för träningssetet (Johanson och Poli, 1998). Slutligen konstaterade Johanson och Poli att genetisk programmering var en lämplig metod för korta melodislingor och att resultatet från datorns utvärdering av musikstyckena visade stor potential. Trots detta är kvaliteten på musikstyckena generellt lägre än när de utvärderas av en människa, och frågan är om datorn någonsin kommer att kunna utveckla ett subjektivt sinne för smak och komposition snarare än att kopiera en människas beslutsprocess. ' 19' Mikael'Skagenholt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Linköpings'Universitet' [email protected]''''''''''''''''''''''''''''''''''''''''''''Artificiell'Intelligens'II'–'729G11' ' '' 3.'Diskussion' Som musiker ställer jag mig, som så många andra, tveksam till att den kreativa process som krävs för att skriva bra musik kan uttryckas algoritmiskt. Genetisk programmering är dock en i allra högsta grad värdig metod för att försöka genomföra detta. Att hitta kreativitetens källa och beskriva hur hela processen går till har gäckat folk sedan urminnes tider. Vad säger att vi inte har hittat en passande analogi i genetiken? Vi vet trots allt inte med säkerhet hur man steg för steg går från ett tomt notblad till en hyllad symfoni- och kanske är det därför tanken på att automatisera stegen däremellan skrämmer oss? Räds vi tanken att vi som lägger tid och energi för att skapa något unikt och uppskattat blir överflödiga? Det känns inte helt orimligt att efter en analys som denna börja försöka se kreativt tänkande som en produkt av flera lämpliga frön, som kombinerats och rekombinerats, påverkats av omvärlden och muterats när ramarna för världsuppfattningen stegvis har brutits ned, för att slutligen bilda en produkt av kreativa idéer. Huruvida ett sådant synsätt på saken är korrekt eller inte är inget jag kan säga, men GP-music har visat att det är en möjlig förklaring av den kreativa processen. I sin nuvarande form är GP-music ett fantastiskt verktyg för inspiration till nya kompositioner. Med det sagt, anser jag att det ännu inte kan ses utgöra ett hot mot mänskliga kompositörer. Detta säger jag av en anledning: subjektiv smak. GP-music kan tack vare sina artificiella neurala nätverk tränas till att värdera musiken snarlikt, om än nästan exakt likandant, som människan vars träning ligger till grund för nätverket. Dagen då datorn går från att säga ”det här skulle människan tycka är bra” till ”det här skulle människan tycka är bra, men jag tycker att…” är den dag då människan på allvar borde börja överväga om vi är redo för att potentiellt väljas bort ur högen på skivbolagschefens skrivbord, till fördel för en grå, rektangulär låda. Sent omsider kommer frågan om intelligens. Är GP-music, och genetisk programmering överlag, intelligent? Det enda som i själva verket sker i den genetiska processen är att en samling individer, lämpliga för syftet och styrda av ett ramverk, utvecklas till en punkt där de består av en tydlig helhet. Precis på samma sätt tar jazzgitarristen en samling lämpliga toner, testar olika kombinationer tills han når fram ' 20' Mikael'Skagenholt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Linköpings'Universitet' [email protected]''''''''''''''''''''''''''''''''''''''''''''Artificiell'Intelligens'II'–'729G11' ' '' till den mest välljudande och handlar utefter sin kunskap om musikteori och sitt instrument. Kan man då verkligen hävda att datorn inte genomför någon intelligent handling? Den kan trots allt skapa något från grunden som är helt unikt och inte hade kunnat skapas av en människa. Datorn genomgår därmed en kreativ process av något slag, och vad säger egentligen att den inte är precis likadan som vår? ”[…]'computers themselves can do things internally which even the human beings who designed them do not understand. Humans do not completely understand consciousness, and probably never will; but now who is to say that humans cannot design a self-evolving mesh of silicon which evolves into a self-conscious organism?” - Atool Varma och Nathan Erhardt (1997). ' ' ' ' 21' Mikael'Skagenholt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Linköpings'Universitet' [email protected]''''''''''''''''''''''''''''''''''''''''''''Artificiell'Intelligens'II'–'729G11' ' '' 4.'Källförteckning' Tryckta källor Bermúdez, J.L. (2010). Cognitive science: an introduction to the science of the mind. Cambridge: Cambridge University Press. Burke, E. K., & Kendall, G. (2005). Search Methodologies: Introductory Tutorials in Optimization and Decision Support Techniques. Använder utdrag ur kapitel 5 av Riccardo Poli och John R. Koza. (E. Burke & G. Kendall, Eds.)Internis (Vol. 47, p. vi, 620 p.). Springer. Johanson, B., & Poli, R. (1998). GP-Music: An Interactive Genetic Programming System for Music Generation with Automated Fitness Raters. (John R Koza, W. Banzhaf, K. Chellapilla, K. Deb, M. Dorigo, D. B. Fogel, M. H. Garzon, et al., Eds.)Genetic Programming 1998 Proceedings of the Third Annual Conference, (CSRP-98-13), 181-186. Morgan Kaufmann. Koza, J R. (1992). Genetic Programming: On the Programming of Computers by Means of Natural Selection. (M. I. T. Press, Ed.)Springer (Vol. 229, p. 819). MIT Press. doi:10.1007/BF00175355 Internetkällor Cole, R., & Schwartz, E. (2007). Virginia Tech Multimedia Music Dictionary. Virginia Polytechnic Institute and State University. Hämtad 9/9/2012 från http://www.music.vt.edu/musicdictionary/ Collins, D. (1996). Genetics Glossary. University of Kansas Medical Center. Hämtad 7/9/2012 från http://www.kumc.edu/gec/glossnew.html#G Daintith, J. (2004). Bit. A Dictionary of Computing. Hämtad 9/9/2012 från http://www.encyclopedia.com/doc/1O11-bit.html ' 22' Mikael'Skagenholt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Linköpings'Universitet' [email protected]''''''''''''''''''''''''''''''''''''''''''''Artificiell'Intelligens'II'–'729G11' ' '' Heitkötter, J., & Beasley, D. (2000). Hitch Hiker’s Guide to Evolutionary Computation, Issue 8.1. The Hitch-Hiker’s Guide to Evolutionary Computation. Hämtad 9/9/2012 från http://www.cse.dmu.ac.uk/~rij/gafaq/Q99_G.htm Huss, F. (1994). The Unofficial XM File Format Specification: FastTracker II, ADPCM and Stripped Module Subformats. Hämtad 13/9/2012 från http://ufmod.sourceforge.net/Unix/en.htm Koza, J.R. (2003). Preparatory Steps of Genetic Programming. Genetic Programming Inc. Hämtad 9/9/2012 från http://www.geneticprogramming.com/gppreparatory.html Varma, A., & Erhardt, N. (1997). Genetic Algorithms. Kenyon College. Hämtad 14/9/2012 från http://biology.kenyon.edu/slonc/bio3/AI/GEN_ALGO/gen_algo.html den Woodward, S.L. (1997). Glossary for Biogeography. Radford University. Hämtad 9/9/2012 från http://www.radford.edu/~swoodwar/CLASSES/GEOG235/glossary.html ' 23'