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'