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