Artificiell Intelligens 729G11 Fördjupninguppgift HT 2012 Jonas Åkered 900505-2130 jonak682 GenJam – En musikalisk genetisk algoritm? Jonas Åkered Kognitionsvetenskapliga programmet HT 2012 Artificiell Intelligens 729G11 Fördjupninguppgift HT 2012 Jonas Åkered 900505-2130 jonak682 Artificiell Intelligens 729G11 Fördjupninguppgift HT 2012 Jonas Åkered 900505-2130 jonak682 Abstract GenJam är en modell av en jazzmusiker som lär sig att improvisera. Det är en interaktiv genetisk algoritm som interagerar med en mänsklig mentor för att lära sig improvisera samt att den jammar och genererar solon som bygger på vad en mänsklig medimprovisatör just spelat. Som genetisk algoritm är den rätt intressant då den använder sig av två populationer samt inte bara satsar på att få så bra avkomma som möjligt utan även en musikalisk variation. Som vanliga genetiska algoritmer använder sig GenJam av fitnessvärden för att värdera individerna i en generation, men utöver detta kan den generera solon utan en mentor som bedömer dess solon. Artificiell Intelligens 729G11 Fördjupninguppgift HT 2012 Jonas Åkered 900505-2130 jonak682 Innehåll 1. Inledning............................................................................................................................. 1 2. Beskrivning ........................................................................................................................ 2 3. GenJams Uppbyggnad ........................................................................................................ 3 4. GenJams Operatorer ........................................................................................................... 4 4.1 Genetiska operatorer .................................................................................................... 4 4.2 Mutationsoperatorer ..................................................................................................... 6 5. Inlärning och Demo/Performance ...................................................................................... 8 5.1 Interaktion med GenJam .............................................................................................. 9 6. Diskussion ........................................................................................................................ 11 7. Referenser......................................................................................................................... 12 7.1 Artikelkällor ............................................................................................................... 12 7.2 Webbkällor ................................................................................................................. 12 Artificiell Intelligens 729G11 Fördjupninguppgift HT 2012 Jonas Åkered 900505-2130 jonak682 1. Inledning Är maskiner kapabla till att skapa musik som är tilltalande för det mänskliga örat? John A. Biles, professor på Rochester Institue of Technology, började 1993, skapa en modell interaktiv genetisk algoritm som lär sig att improvisera jazzmusik. Denna döpte han till GenJam som kortform för ’The GENetic JAMmer’. GenJam kan nu 300 låtar som den spelar tillsammans med John Biles i en virtuell kvintett. 1 Artificiell Intelligens 729G11 Fördjupninguppgift HT 2012 Jonas Åkered 900505-2130 jonak682 2. Beskrivning En genetisk algoritm (GA) är baserad på Darwins naturligt urvalsteori, där individer i bättre form/fitness, klarar sig bättre och och överlever till nästa generation. En genetisk algoritm ser lösningar på problem som en gen I en population. En generell genetisk algoritm använder sig av enkla handlingar för att simulera evolution. Fitnessvärdet för varje individ räknas ut efter den första generationen är slumpmässigt skapad. (Kim, 2006) GenJam bygger på den genetiska algoritmens principer, men är något modifierad. GenJam använder sig av två populatoner, en population med taktindivider och en med frasindivider. GenJam har tre lägen, ett inlärningsläge, ett genereringsläge och Figur 1. Schema över GenJams struktur som visar utbytet med mentorn och kopplingen till populationerna. ett demoläge. En annan skillnad från vanliga genetiska algoritmer är att GenJam är en så kallad IGA, en interaktiv genetisk algoritm. GenJam lär sig genom att ta emot input från en mänsklig mentor, samt att den kan generera egna jazzsolon efter att lyssnat på ett solo, där GenJams solo bygger på det tidigare spelade solots toner. Vid Inlärningsläget bedömer en mänsklig mentor hur bra GenJam gör genom att skicka in ’g’ för good eller ’b’ för bad. Inlärningsläget bygger upp fitnessvärden och använder sig inte av några operatorer. Fraser väljs ut slumpmässigt utan att ta hänsyn till fitnessvärde. Demoläget är för presentation av vad den lärt sig hitills, där GenJam har genererat solon åt redan inlärda låtar. (Biles, 1994) 2 Artificiell Intelligens 729G11 Fördjupninguppgift HT 2012 Jonas Åkered 900505-2130 jonak682 3. GenJams Uppbyggnad GenJam består av två olika kromosompopulationer, en taktpopulation och en fraspopulation. GenJams taktindivider består av nothändelser som agerar i direkt respons till en MIDIhändelse (Musical Instrument Digital Interface) , det vill säga, individerna representerar en ton som spelas upp av MIDImodulen. Varje taktindivid har åtta nothändelser, som var och en representerar en åttondel i en takt. Här nedan är ett exempel på en taktindivid: Denna sekvens representerar takt 57, med fitnessvärdet 22. Siffrorna i själva individen representerar toner i ackordet som GenJam har fått inmatat. Taktinidviderna är alltså inte en fast ton utan en skalton i ett ackord, vilket varierar med ackordet. Om vi ser på taktindivid 57 som förekommer två gånger i frasindivid 23. Vid en ackord följd på C7 F7 C7 C7 kommer taktindivid 57 på både ackordet C7 och F7 men GenJam kommer spela olika sekvenser. På C7-ackordet blir tonföljden E C A C, medan under F7-ackordet blir tonföljden Eb C G C fast med samma rytm. GenJam har 14 nothändelser, som dessutom kompanjeras av händelserna 0 och 15, där 0 representerar en paus och 15 förlänger föregående ton. Detta för att GenJam ska kunna spela rytmer och inte bara raka åttondelar. GenJams fraser bygger på en följd av taktindivider. Fraser och takter har olika separata fitnessvärden, då taktindividens fitness bedömer hur bra själv takten är medan frasindividens fitness bedömer hur bra kombinationen av takter är. En fras med fyra taktinvider likt den till höger kallas för GenJam Normal Form, eller GJNF. (Biles, 2002) I figur 2 med ett fitnessvärde på -12. De nästkommande siffrorna representerar takterna som står nedanför. Frasen består av takt 57, Figur 2. Ett exempel på hur en fras är uppbyggd samt de takter den innefattar följt av takt 57, som sedan följs av takt 11 och 38. 3 Artificiell Intelligens 729G11 Fördjupninguppgift HT 2012 Jonas Åkered 900505-2130 jonak682 GenJam har bara 48 frasindivider och 64 taktindivider att jobba med. För att få en så effektiv frasrepresentation Figur 3. Exempel på en fras med sina takter på bit-nivå. som möjligt måste taktpopulationen vara upphöjningsbart med 2. Vilket kan ses till höger i figur 2. (Biles, 1994) 4. GenJams Operatorer GenJam använder sig av två typer av operatorer i under genereringsläget. 4.1 Genetiska operatorer 4.1.1 Initialisering Vid initieringen av GenJam skapas takt- och fraspopulationerna på slumpmässigt vis. Fitnessvärdena för takt- och fraspopulationerna börjar samtliga på 0. Notvärderna slumpas fram bland de 16 olika värdena 1-14, som representerar toner samt 0 och 15 som står för paus respektive förlängning av föregående värde. Sannolikheten för värde 0 och 15 ska väljas är 5/24 samt 14/24 för värdena 1-14. Det finns totalt åtta värden i en takt. 4.1.2 Fitness Eftersom GenJam är en IGA, en interaktiv genetisk algoritm. Detta medför att GenJam behöver en mänsklig mentor som berättar för den vad som är vilka fraser och takter som är bra eller dåliga. GenJam tränas genom att den får improvisera solon till låtar som ackompanjeras av en synthesizerkompgrupp samtidigt som mentorn bedömer hur bra solon den genererar. Som nämnts tidigare bedömer mentorn hur bra solon som genereras genom att ge GenJam input i form av bokstäverna ’g’ och ’b’, ’g’ för good och ’b’ för bad. Ett ’g’ ökar fitness med ett och ett ’b’ sänker fitness med ett. Fitnessvärdena har ett tak och ett golv på 30 respektive 30. (Biles, 1994) 4 Artificiell Intelligens 729G11 Fördjupninguppgift HT 2012 Jonas Åkered 900505-2130 jonak682 4.1.3 Urval GenJams urvalsprocess kallas för ‘modified tournament selection process’, vilket innebär att fyra individer väljs ut slumpmässigt och helt utan hänsyn till fitnessvärdet. Dessa fyra bildar en ‘familj’, där de individer med högst fitnessvärde blir ‘föräldrar’. De två individerna med lägst fitnessvärde ersätts av två individer som blir avkomman av ‘föräldrarna’. På detta sätt byts halva populationen ut varje generation. Den nya avkomman kan inte delta I senare familjer samma generation som de skapades. För att de 32 nya taktindividerna (GenJam hanterar 64 taktindivider per generation) ska höras av Figur 4. Illustration av algoritmen för GenJams “modified tournament selection process” mentorn placeras de nya individerna i de åtta första nya fraserna som spelas upp. Dessa åtta ’moder’-fraser ersätter förlorarna i en fyrfras-’turnering’ som är baserad på frasernas fitnessvärde. De resterande 16 fraserna delas upp i familjer som beskrivet tidigare enligt ’modified tournament selection process’. (Biles, 1994) 5 Artificiell Intelligens 729G11 Fördjupninguppgift HT 2012 Jonas Åkered 900505-2130 jonak682 4.2 Mutationsoperatorer 4.2.1Taktindivd För att förnya populationerna så att de inte fastnar i ett lokalt maximum används mutationsoperatorer för att snabba på inlärningsprocessen. I tabellen till höger listas de mutationsoperatorer som nyttjas vid generering av bättre generationer samt hur de olika mutationsoperatorerna påverkar Tabell 1. Exempel på hur mutationsoperatorerna påverkar en taktindivid som genomgått mutation. taktindividerna. Den omvända mutationen vänder bara på taktindividens notvärden. Rotationsmutationen roterar notvärdena tre steg åt höger. Notvärdena i slutet av individen hamnar först i ordningen. Inverteringsmutationen tar 15 minus det aktuella notvärdet. För de vanliga notvärdena ändras de till sina ungefärliga toner runt tonen C4 . Pauser (0) blir förlängningar (15) och förlängningar blir pauser. Operatorerna ”sortera tonerna stigande” samt ”fallande”, sorterar tonerna i stigande respektive fallande ordning men förlängningar och pauser håller sin vanliga plats. Vid transponeringmutationen ändras tonerna med ett slumpvalt värde (1-4) åt det håll som har störst utrymme. Om ett värde skulle gå utanför de tillåtna värdena går man tillbaka till så många steg som går över det högsta tillåtna värdet, till exempel 12 ska upp 3 steg blir 13, (12-13, 13-14. 14-13). (Biles, 1994) 6 Artificiell Intelligens 729G11 Fördjupninguppgift HT 2012 Jonas Åkered 900505-2130 jonak682 4.2.2 Frasindivid Liksom taktindividerna användas mutationsoperatorer även på frasindivider. Några operatorer är identiska med de som tillämpas på taktindividerna. Tyngdpunkten i den här delen kommer ligga på de frasunika mutationerna. Vid genetisk reparation byts den fras med lägst fitnessvärde (här, 38) ut mot en slumpvald fas (29). Den andra frasunika mutationsoperatorn är är att ta fram en ’superfras’. En superfras, är individer som valts för att de har vunnit ett ’tournament’, som går ut på att ha så högt fitnessvärde Tabell 2. Exempel på hur mutationsoperatorer ändrar en frasindivid. som möjligt. Superfrasen är ett exempel på extrem mutation då den inte har några likheter med sina föräldrar. I tabellen ser vi att fras 57 har vunnit ett ’tournament’ för att få stanna kvar i frasen. (1994) Då GenJam skiljer sig från vanliga genetiska algoritmer genom att den inte bara vill hitta den mest optimala lösningen utan den mest estetiskt tilltalande lösningen, har GenJam två operatorer som är speciella för att förhindra skapandet av en ’superindivid’ som kommer populera alla fraser (Biles, 1994). Det första av specialmutationerna är ’frasuttunnare’mutationen, vilken ersätter en slumpmässigt vald takt för den takt i den fras som är vanligast i hela fraspopulationen med en taktindivid som är mindre vanligt förekommande. (Corne, 2001) Den andra specialmutationen är ”föräldralös fras” som skapar en ny fras genom att välja vinnare ur fyra självständiga ’tournaments’ där vinnarna är de minst vanligt förekommande takterna i fraspopulationen. Detta löser problemet med att få en superinvidid som dominerar alla fraser, vilket skulle dämpa den musikaliska variationen. (Biles, 1994) 7 Artificiell Intelligens 729G11 Fördjupninguppgift HT 2012 Jonas Åkered 900505-2130 jonak682 5. Inlärning och Demo/Performance För att GenJam ska kunna skapa solon måste en mänsklig mentor träna den. Detta sker genom att GenJam får tillgång till tempo, ackord, samt kan spela sina solon med hjälp av en MIDImodul, figuren till vilket visas höger. i I ’Chorusboxen’ till höger får GenJam information om hur låten ska spelas, när den ska improvisera, eller spela så kallade ”trading fours” med sin medimprovisatör, fyra takter var, kan även vara åtta takter. Boxen säger även när GenJam ska vara tyst eller spela ett redan skrivet tema som ofta spelas i början och slutet av Figur 5. Mer detaljerat schema over GenJams struktur, med faktiskt input och output låten. I ”Ackordföljdsboxen” får GenJam information om vilket instrument den ska ”spela” på den aktuella låten, vilket representeras av 4an vi ser i boxen. 160 visar att låten går i 160 bmp (slag per minut), S står för att det är swingkänsla och inte raka åttondelar, samt så visas ackordföljden.(Biles, 2002) Inlärningsläget är bara till för att bygga upp fitness och använder på så vis inga operatorer. Fraser väljs ut slumpvist oberoende av fitness och får sedan respons i form av ’g’ eller ’b’. Genom att öka fitnessvärdet För att GenJam ska kunna improvisera solon måste den känna till hur många Chorus lång låten är, vilka ackord som kompgruppen spelar samt om det är rakt eller swing. Figur 6. Schema over hur GenJam star I förhållande till mentorn med direktkontakt till takt och fraspopulation där ett ständigt utbyte sker . 8 Artificiell Intelligens 729G11 Fördjupninguppgift HT 2012 Jonas Åkered 900505-2130 jonak682 Under själv inlärningen interagerar GenJam med mentorn samt med de två populationerna på det sätt som visas till höger. Mentorn ger som beskrivet tidigare respons på solon genom att mata in ’g’ eller ’b’. För att förstärka sin bedömning kan mentorn trycka fler gånger på den tangeten som speglar sin åsikt. För att mentorn ska ha tid på sig att bedöma GenJams solon så sker bedömningen med två slags förskjutning. Så respons som ges under första eller andra slaget i en takt påverkar föregående takt, medan slag tre och fyra återkopplar till den aktuella takten. Demo-/Performanceläget är ett framträdande som väljer ut fraser genom GenJams ’modified tournament selection process’ som tar hänsyn till både frasernas fitness samt de tillhörande takternas fitness. (Biles, 1994) 5.1 Interaktion med GenJam Genetiska algoritmer har alltid problem med den flaskhals som är fitnessvärden. GenJam har en lösning på detta. GenJam har tagit steg från EC (evolutionary computation) och har blivit en självständig agent. Det betyder att när flaskhalsen tas bort helt och hållet. När GenJam och dess mänskliga improvisatör spelar sina ”trading four” så används inga fitnessvärden alls. Då GenJam endast har 1/32 att generera ett svar genom GJNF som bygger på den mänskliga improvisatörerns improviserade slinga, krävs det att GenJam alltid genererar bra svar. Intelligensen ligger då i GenJams mutationer (Biles, 2002). Figur 7. Schema over hur GenJam är uppbyggt under ett “trading fours”-chorus 9 Artificiell Intelligens 729G11 Fördjupninguppgift HT 2012 Jonas Åkered 900505-2130 jonak682 ”Lick”-databasen består av minst sexton i GJNF. ”Licksen” kan komma från vem som helst och implementerade till GenJams databaser. När en låt spelas kollar GenJam upp vilka ”licks” som är valda till den låten bygger takt- och fraspopulationer på följande sätt som även är illustrerat i Figur 8: A. Välj ut sexton fyrtakters-licks slumpvist ur databasen B. Bygg takt-populationen från de 64 taktern i licksen C. Bygg 16 frasindivider för att representera de ursprungliga 16 licksen D. Bygg 32 fler frasindivider genom att använda intelligent överkorsning av de första 16 fraserna Den intelligenta överkorsningsoperatorn som som nämns på punkt D, används under inlärning från databas väljer överkorsningspunkter så att de resulterande takter bevarar föräldrarnas horisontella intervall (melodiös karaktär) (Biles, 2005). Barnet som bevarar dess föräldrars ”horisontella intervall”. Denna intelligenta överkorsning skapar en avkomma som blandar databasens licks och som låter bra utan behovet av fitness. (Biles, 2002) Figur 8. Illustration för algoritmen för GenJams inlärning från databas. (biles, 2002) 10 Artificiell Intelligens 729G11 Fördjupninguppgift HT 2012 Jonas Åkered 900505-2130 jonak682 6. Diskussion Efter att ha läst om GenJam och om genetiska algoritmer förstår man att det är komplexa system. Genom att skapa musik genom genetiska algoritmer har man fler problem än än vanlig genetisk algoritm. Man vill hitta en så bra generation som möjligt samtidigt som man inte är intresserad av en superindivid, som dominerar populationerna och dämpar den musikaliska variationen. Det är intressant hur en mänsklig mentor kan avgöra hur tilltalande ett solo är för det mänskliga örat Detta är dock en lång process och många solon som måste lyssnas genom. Man kan även tänka att systemet inte är helt intelligent eftersom det måste ha en människa som fitnessindikator. Detta har åtgärdats på senare tid i och med att GenJam kan använda sig av databaser och generera solon under chorus då GenJam byter takter (trading fours) med sin medimprovisatör, vilket fungerar helt utan fitnessflaskhals, vilket är GenJams Normalforms (GJNF) största svaghet. 11 Artificiell Intelligens 729G11 Fördjupninguppgift HT 2012 Jonas Åkered 900505-2130 jonak682 7. Referenser 7.1 Artikelkällor Biles, J (1994). GenJam: A Genetic Algorithm for Generating Jazz Solos. Proceedings of the 1994 International Computer Music Conference. Aarhus, Denmark: International Computer Music Assiociation Corne, D W, Bentley P J. (2001) Creative Evolutionary Systems, London Kim, D (2006) A Genetic Algorithm with Modified Tournament Selection and Efficient Deterministic Mutation for Evolving Neural Network: Lecture Notes in Computer Science [0302-9743] vol: 3971 7.2 Webbkällor Biles, J (2002). GenJam: Evolutionary Computation Gets a Gig http://igm.rit.edu/~jabics/CITC3/GenJamPaper.pdf (Hämtat 2012-09-12) Biles, J (2005). Evolutionary Music Tutorial Slides. GECCO http://igm.rit.edu/~jabics/EvoMusic/BilesEvoMusicSlides.pdf (Hämtat 2012-09-15) 12