universidade federal fluminense ronnald rezende … · sobre teoria musical e também introduzir...

47
UNIVERSIDADE FEDERAL FLUMINENSE RONNALD REZENDE MACHADO UM ESTUDO SOBRE A UTILIZAÇÃO DE REDES NEURAIS RECORRENTES PARA COMPOSIÇÃO MUSICAL Niterói 2018

Upload: others

Post on 01-Nov-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

UNIVERSIDADE FEDERAL FLUMINENSERONNALD REZENDE MACHADO

UM ESTUDO SOBRE A UTILIZAÇÃO DE REDES NEURAISRECORRENTES PARA COMPOSIÇÃO MUSICAL

Niterói2018

RONNALD REZENDE MACHADO

UM ESTUDO SOBRE A UTILIZAÇÃO DE REDES NEURAISRECORRENTES PARA COMPOSIÇÃO MUSICAL

Trabalho de Conclusão de Cursosubmetido ao Curso de Tecnologia emSistemas de Computação daUniversidade Federal Fluminense comorequisito parcial para obtenção do títulode Tecnólogo em Sistemas deComputação.

Orientadora:Aline Paes

NITERÓI2018

RONNALD REZENDE MACHADO

UM ESTUDO SOBRE A UTILIZAÇÃO DE REDES NEURAISRECORRENTES PARA COMPOSIÇÃO MUSICAL

Trabalho de Conclusão de Cursosubmetido ao Curso de Tecnologia emSistemas de Computação daUniversidade Federal Fluminense comorequisito parcial para obtenção do títulode Tecnólogo em Sistemas deComputação.

Niterói, 27 de Junho de 2018.

Dedico este trabalho aos meus pais, a minhafilha e a minha esposa.

AGRADECIMENTOS

Aos meus pais por terem me proporcionado amelhor educação possível dentro de suaspossibilidades.

A minha filha e a minha esposa, não só peloafeto, mas também por me ensinarem coisasque eu não seria capaz de aprender sozinhoem mil vidas.

A Roberto e a Roseli pelo tratamento quesempre me deram.

Aos meus colegas de trabalho pela troca deexperiências e boas influências.

A Professora Aline Paes por ter me aceitadocomo seu orientando.

Aos grandes filósofos, escritores ecompositores que me fizeram companhia aolongo dos últimos anos.

A todos os homens e mulheres que ao longoda história da humanidade contribuíram demaneira direta ou indireta para a construçãodo maravilhoso corpo de conhecimento aoqual tive contato durante a graduação.

“Cogito, ergo sum” René Descartes

RESUMO

O uso de computadores para a composição musical desperta interesse desde adécada de 50 quando pesquisadores da Universidade de Illinois desenvolveram umalgoritmo capaz de gerar uma nova composição. Com o passar das décadas e oavanço na computação, outras técnicas para composição musical através docomputador foram exploradas, sobretudo fazendo uso de Redes Neurais Artificiais.O presente trabalho apresenta um estudo sobre o tema que culmina na criação deum software capaz de gerar uma nova composição baseado em uma das Sonataspara piano de Ludwig van Beethoven.

Palavras-chaves: Redes Neurais Artificiais, música e LSTM.

ABSTRACT

The use of computers for musical composition has aroused interest since the 1950swhen researchers at the University of Illinois have developed an algorithm capable ofgenerating a new composition. With the passing of the decades and the advance inthe computation, other techniques for musical composition through the computerwere explored, mainly making use of Artificial Neural Networks. The present workpresents a study on the theme that culminates in the creation of software capable ofgenerating a new composition based on one of Ludwig van Beethoven 's PianoSonatas.

Key words: Artificial Neural Networks, music and LSTM.

LISTA DE ILUSTRAÇÕES

Figura 1: Ruído X Som.........................................................................................................................17Figura 2 : Exemplos de propriedades do som .....................................................................................18Figura 3 : Exemplo de partitura ............................................................................................................21Figura 4 : Clave de sol e clave de fá ....................................................................................................21Figura 5 : Compassos .......................................................................................................................... 21Figura 6 : Tempos musicais .................................................................................................................22Figura 7 : Batidas por Minuto ...............................................................................................................22Figura 8 : MIDI X Nota .........................................................................................................................23Figura 9 : Neurônio Artificial por McCulloch e Pitts .............................................................................24Figura 10 : Função Heaveside .............................................................................................................24Figura 11 : Funções de ativação ..........................................................................................................25Figura 12 : Redes com propagação para frente ..................................................................................26Figura 13 : Rede Neural Recorrente ....................................................................................................26Figura 14 : Rede LSTM .......................................................................................................................28Figura 15 : Portão de esquecimento.....................................................................................................28Figura 16 : Portão de entrada – Etapas 1 e 2 ......................................................................................28Figura 17 : Portão de entrada – Etapas 3 ............................................................................................29Figura 18 : Portão de saída .................................................................................................................29Figura 19 : Cadeia de Markov ..............................................................................................................30Figura 20 : Camada de Saída ..............................................................................................................36Figura 21 : Função Softmax ................................................................................................................37Figura 22 : Arquitetura proposta para a geração de composições musicais ........................................38Figura 23 : Normalização ..................................................................................................................... 39Figura 24 : Função de mapeamento ....................................................................................................42Figura 25 : Elementos e compasso .....................................................................................................44Figura 26 : Atualização das entradas ...................................................................................................44Figura 27 : Exemplo de composição ....................................................................................................45

LISTA DE TABELAS

Tabela 1: Notas..................................................................................................................................... 19Tabela 2: Frequências.......................................................................................................................... 20Tabela 3 : Representação dos dados...................................................................................................40

LISTA DE GRÁFICOS

Gráfico 1 : Decaimento do erro.........................................................................................................41

LISTA DE ABREVIATURAS E SIGLAS

RNA – Rede Neural ArtificialRNR – Rede Neural RecorrenteBPTT – Back Propagation Through Time LSTM – Long Short-Term MemoryMIDI – Musical Instrument Digital Interface

SUMÁRIO – etapa final

RESUMO ............................................................................................................................................... 8 ABSTRACT ............................................................................................................................................ 9 LISTA DE ILUSTRAÇÕES ................................................................................................................... 10 LISTA DE TABELAS ............................................................................................................................ 11 LISTA DE GRÁFICOS ......................................................................................................................... 12 LISTA DE ABREVIATURAS E SIGLAS ................................................................................................ 131 INTRODUÇÃO ................................................................................................................................... 152 FUNDAMENTAÇÃO TEÓRICA ......................................................................................................... 173 TRABALHOS RELACIONADOS ........................................................................................................ 304 PROCESSO DE COMPOSIÇÃO ARTIFICIAL ................................................................................... 335 CONCLUSÃO .................................................................................................................................... 46

1 INTRODUÇÃO

No processo de composição um músico busca encontrar coerência entreos elementos musicais. Ciente da grande gama de alturas, timbres, intensidades edurações disponíveis o músico tende a fazer uso do conhecimento adquirido porestudo, experiência ou uma combinação de ambos para que a sua inspiração ouintenção tome forma através das vibrações sonoras. Mesmo não sendo um processoexato algumas convenções musicais foram estabelecidas, não só para que oconhecimento musical pudesse ser transmitido através do tempo mas também comoforma de diminuir o nível de abstração, tornando possível um melhor entendimentodo fenômeno musical.

Inspiradas no funcionamento do cérebro humano as Redes NeuraisArtificiais são sistemas capazes de reconhecer padrões a partir de exemplos. Por tertal propriedade as RNAs vem sendo usadas com sucesso em problemas queenvolvem identificação de padrões, como no reconhecimento de imagens ou noreconhecimento de voz[1].

Estudos envolvendo RNAs e composição musical já foram realizadostendo diferentes perspectivas sobre a representação dos sons e arquiteturas deRNAs. O trabalho em questão tem por objetivo verificar se a solução proposta écapaz de compor músicas com coerência tendo como base a Sonata para piano n.º14, Op. 27 n.º 2 de autoria de Ludwig van Beethoven. Cada componente dasmúsicas de treinamento é tratado como uma cadeia de caracteres contendo umadimensão, ou seja, apenas a dimensão da altura é considerada durante a fase detreinamento da RNA.

No capítulo 2 serão introduzidas definições teóricas sobre o fenômenomusical bem como sobre as RNAs. No capítulo 3 serão apresentados algunstrabalhos relacionados ao tema, onde é possível observar que soluções que fazemuso de Redes Neurais Recorrentes do tipo LSTM conseguem obter bons resultadosna composição, sobretudo em dependências de longo prazo como pontuado por Ecke Schmidhuber[15].

A Arquitetura da RNA proposta no trabalho possui três camadas, sendoduas camadas do tipo LSTM e uma camada final do tipo completamente conectada.Ao longo das interações na fase de treinamento a RNA apresentou um bomdecaimento de erro. Detalhes da arquitetura, treinamento, desenvolvimento,

execução e manipulação dos dados obtidos e exemplos gerados(visual e auditivo)são encontrados no capítulo 4. No capítulo 5 serão apresentadas a conclusão epropostas para trabalhos futuros.

16

2 FUNDAMENTAÇÃO TEÓRICA

O objetivo deste capítulo é apresentar alguns conceitos e definiçõessobre Teoria Musical e também introduzir conceitos básicos sobre Redes NeuraisArtificiais.

Por fazer parte do campo da arte, a música é associada diretamente comcriatividade e inspiração. Poucos se atentam ao fato de que a harmonia musical éestruturada e que as composições musicais seguem uma determinada lógica.Segundo Bohumil Med [2] música é “a arte de combinar os sons simultânea esucessivamente, com ordem, equilíbrio e proporção do tempo” e Maura Penna[3]define a música como “uma forma de arte que tem como material básico o som” . Osom é a vibração das partículas de ar, que viajam para os ouvidos a partir davibração do objeto que o produz. Essas vibrações de som no ar são conhecidascomo ondas sonoras. O que faz um som diferente do outro é a forma de sua onda. Afigura 1 compara a forma de onda de um ruído com o de uma nota musical epodemos ver que notas musicais possuem forte regularidade em sua forma de ondaenquanto sons não musicais possuem grandes variações[2].

Figura 1: Ruído X Som

17

2.1 PROPRIEDADES DO SOM MUSICAL

Todo som musical possui simultaneamente as seguintes propriedades:

• Duração - É a prolongação do som, ou seja, é o que se propaga no ar atravésdas ondas sonoras.

• Intensidade - É a propriedade do som ser forte ou fraco, dependendo daforça empregada na sua repercussão.

• Altura - É medida em Hertz e é a propriedade do som de ser grave, médio ou agudo como observado na figura 2.

• Timbre - É a característica do som de cada instrumento. É o timbre que nos permite reconhecer a origem do som, de que instrumento esse som partiu.[2]

Figura 2 : Exemplos de propriedades do som

2.2 NOTAÇÃO MUSICAL

Com o intuito de representar a música através da escrita foram adotadasalgumas convenções, que serão descritas a seguir.

2.2.1 NOTAS

A nota é a representação escrita da altura. Até o século XI a nota era a

única característica que possuía representação escrita[2]. O conceito de nota é

18

representado pelas letras do alfabeto e os acidentes1 são representados por

#(sustenido) e ♭(bemol).

Tabela 1: Notas

A Lá

A# - B♭ Lá Sustenido -Si bemol

B Si

C Dó

C#-D♭ Dó sustenido - Ré bemol

D Ré

D# - E♭ Ré sustenido - Mi bemol

E Mi

F Fá

F# - G♭ Fá Sustenido - Sol bemol

G Sol

G# - A♭ Sol sustenido - Lá bemol

A representação das notas referenciadas na tabela 1 é incompleta pois amesma não é capaz de representar todas as frequências diferentes que uma mesmanota pode ter.

Por exemplo a nota Lá pode ser encontrada nas seguintes frequências:55.0Hz, 110.0Hz, 220.0Hz, 440.0Hz, 880.0Hz, 1760.0Hz e 3520.0Hz, ou seja,quando uma determinada frequência encontra a proporção 2:1 temos a mesma notaem questão, porém com altura diferente.

1

É o menor intervalo existente entre dois sons que o ouvido humano ocidentalpode perceber e classificar.

19

Tabela 2: Frequências

2.2.2 ESCALA NATURAL E ACORDE

Por definição a escala natural é uma sequência de sete notas diferentesentre si e uma oitava nota que é a repetição da primeira e são majoritariamenteseparadas por uma ou duas notas[2]. A escala natural do elemento ré se dá por: (D-E-F#-G-A-B-C#-D).

A primeira nota se chama tônica pois, é ela quem dá o nome à escala, aterceira nota se chama mediante e está localizada entre as notas mais importantesque são a quinta e a primeira. Encerrando o conjunto das notas mais importantes naescala natural temos a quinta nota que é chamada de dominante.

O acorde é um conjunto de duas ou mais notas tocadas de uma só vez. Oconjunto de notas (D-F#-A) representam o acorde ré maior e o conjunto de notas (D-F-A) formam o acorde ré menor. Muitos tipos de acordes podem ser formulados a partir da escala natural.

Uma representação musical escrita mais complexa pode ser encontrada

através das partituras.

Nota1 Frequência(Hz) Nota2 Frequência Nota3 Frequência Nota4 Frequência Nota5 Frequência Nota6 Frequência Nota7 FrequênciaA 55 A 110 A 220 A 440 A 880 A 1760 A 3520

A /B♯ ♭ 58.27 A /B♯ ♭ 116.54 A /B♯ ♭ 233.08 A /B♯ ♭ 466.16 A /B♯ ♭ 466.16 A /B♯ ♭ 932.32 A /B♯ ♭ 1864.64B/C♭ 61.74 B/C♭ 123.48 B/C♭ 246.96 B/C♭ 493.92 B/C♭ 493.92 B/C♭ 987.84 B/C♭ 1975.68B /C♯ 65.41 B /C♯ 130.82 B /C♯ 261.64 B /C♯ 523.28 B /C♯ 523.28 B /C♯ 1046.56 B /C♯ 2093.12C /D♯ ♭ 69.3 C /D♯ ♭ 138.6 C /D♯ ♭ 277.2 C /D♯ ♭ 554.4 C /D♯ ♭ 554.4 C /D♯ ♭ 1108.8 C /D♯ ♭ 2217.6

D 73.42 D 146.84 D 293.68 D 587.36 D 587.36 D 1174.72 D 2349.44D /E♯ ♭ 77.78 D /E♯ ♭ 155.56 D /E♯ ♭ 311.12 D /E♯ ♭ 622.24 D /E♯ ♭ 622.24 D /E♯ ♭ 1244.48 D /E♯ ♭ 2488.96E/F♭ 82.41 E/F♭ 164.82 E/F♭ 329.64 E/F♭ 659.28 E/F♭ 659.28 E/F♭ 1318.56 E/F♭ 2637.12E /F♯ 87.31 E /F♯ 174.62 E /F♯ 349.24 E /F♯ 698.48 E /F♯ 698.48 E /F♯ 1396.96 E /F♯ 2793.92F /G♯ ♭ 92.5 F /G♯ ♭ 185 F /G♯ ♭ 370 F /G♯ ♭ 740 F /G♯ ♭ 740 F /G♯ ♭ 1480 F /G♯ ♭ 2960

G 98 G 196 G 392 G 784 G 784 G 1568 G 3136G /A♯ ♭ 103.83 G /A♯ ♭ 207.66 G /A♯ ♭ 415.32 G /A♯ ♭ 830.64 G /A♯ ♭ 830.64 G /A♯ ♭ 1661.28 G /A♯ ♭ 3322.56

20

2.2.3 PARTITURAS

A partitura é estruturada por cinco linhas horizontais paralelas e a maioriadas notas e seus respectivos tempos são alocados sobre essas linhas ou entre elas.Linhas extras podem ser adicionadas para representar notas mais altas ou notasmais baixas como pode ser observado na figura 3. Uma clave é colocada no iníciopara dar nome as notas.

Figura 3 : Exemplo de partitura

Para facilitar a leitura podem ser usadas outras claves como demonstradona figura 4. Elas podem ser de três tipos: Sol(mais comum), Fá e Dó.

Figura 4 : Clave de sol e clave de fá

Linhas verticais dividem a partitura em pequenas seções chamadas decompassos. O valor do compasso é representado por uma fração após a clave comoexemplificado na figura 5.

Figura 5 : Compassos

21

Os valores que representam a duração dos sons musicais no compassosão chamados de figuras e estão representados na figura 6.

Figura 6 : Tempos musicais

Para determinar com absoluta certeza a duração exata do tempo, oscompositores e executantes usam um aparelho denominado Metrônomo criado porMazel em 1810. As oscilações geradas pelo METRÔNOMO são contadas por minuto(BPM) e determinam o andamento da música. Nas partituras essa informaçãoaparece no topo opcionalmente iniciada pelas iniciais M.M, a figura musical base eum valor numérico como observado na figura 7.

Figura 7 : Batidas por Minuto

2.2.4 REPRESENTAÇÃO DIGITAL

Existem diversas formas digitais para a representação dos elementosmusicais, como encontrado nos padrões MIDI, MUSICXML e ABCnotation. Otrabalho em questão faz uso do padrão MIDI(interface digital para instrumentosmusicais) pois, é o padrão mais popular. No padrão MIDI cada nota é representadapor um valor numérico (Numero MIDI) acompanhada de outros valores como aduração das notas como demonstrado na figura 8.

22

Figura 8 : MIDI X Nota

2.3 REDES NEURAIS ARTIFICIAIS – RNAS

Inspiradas no funcionamento do cérebro humano as Redes NeuraisArtificiais oferecem uma alternativa à computação algorítmica, pois são sistemas deprocessamento paralelo e distribuído formadas por unidades de processamento maissimples, chamados neurônios artificiais, que por sua vez calculam determinadasfunções matemáticas. Esses neurônios situam-se em camadas, sendo interligadaspor conexões, as quais são associadas a pesos. Estes pesos armazenam oconhecimento representado na rede, servindo posteriormente como parâmetros. ARNA possui a capacidade de aprender por meio de exemplos que são conhecidospor dados de treinamento. Mediante a fase de treinamento, a rede armazena umpadrão de aprendizado capaz de generalizar um determinado problema[4].

2.3.1 NEURÔNICO ARTIFICIAL

Proposto por McCulloch e Pitts em 1943[5] o neurônio artificial tentasimular uma célula do sistema nervoso através de funções matemáticas. Os dados

23

de treinamento tem contato com o neurônio por n entradas. O processamentodesses dados consiste em uma combinação linear das entradas onde cada entradaestá associada a um peso w que reflete a importância da entrada x como observadona figura 9.

Figura 9 : Neurônio Artificial por McCulloch e Pitts

O resultado dessa combinação linear é o valor b = x1w1+x2w2+…+xnwn .A ativação do neurônio se dá pela função de ativação que depende do valorresultante da soma ponderada das entradas. A função usada no modelo deMcCulloch e Pitts, figura 10, foi a função Heaveside (função de escada) queconsiste em y =1 se b ≥ 0 e y=0, caso contrário.

Figura 10 : Função Heaveside

A função escada não é a única maneira de se produzir saída em umperceptron. Na Figura 11 estão alguns outros tipos de ativações populares.

24

Figura 11 : Funções de ativação

2.3.2 ARQUITETURA DAS REDES NEURAIS ARTIFICIAIS

O potencial e flexibilidade do cálculo baseado em redes neurais vêm dacriação de conjuntos de neurônios que estão interligados entre si. Esse paralelismode elementos com processamento local cria a “inteligência” global da rede. Umelemento da rede recebe um estímulo nas suas entradas, processa esse sinal eemite um novo sinal de saída que por sua vez, é recebido pelos outros elementos[6].

As redes neurais artificiais se diferenciam pela sua arquitetura e pelaforma como os pesos associados às conexões são ajustados durante o processo deaprendizado. A arquitetura de uma rede neural restringe o tipo de problema no qual arede poderá ser utilizada e é definida pelo número de camadas (camada única oumúltiplas camadas), pelo número de nós em cada camada, pelo tipo de conexãoentre os nós (redes com propagação para frente e redes recorrentes ) e por suatopologia[7] .

2.3.3 REDES COM PROPAGAÇÃO PARA FRENTE

No caso das redes de propagação para frente o fluxo de informação éunidirecional. Neurônios que recebem a informação simultaneamente agrupam-seem camadas. Camadas que não estão ligadas às entradas e nem às saídas da redechamam-se camadas ocultas ou escondidas.

25

Figura 12 : Redes com propagação para frente

Na figura 12 é possível observar uma rede de propagação para frentecapaz de realizar uma classificação binária para dados de entrada com trêsparâmetros. Os dados de treinamento são apresentados a camada de entrada quedistribui para a camada oculta. As camadas ocultas e a camada de saída sãoresponsáveis por calcular os pesos da rede, tornando a classificação possível.

2.3.4 REDES NEURAIS RECORRENTES – RNRs

Redes Neurais Recorrentes têm ligações entre os neurônios semrestrições, ou seja, são redes em que camadas anteriores podem se alimentar dasaída das camadas posteriores a elas como observado na figura 13. Ao contráriodas redes sem realimentação, o comportamento dinâmico desempenha o papelfundamental nesse modelo. Em alguns casos os valores de ativação da redepassam por um processo de relaxação até chegarem a um estado estável.

Figura 13 : Rede Neural Recorrente

26

2.3.5 BACKPROPAGATION THROUGH TIME - BPTT

Backpropagation Through Time, ou BPTT é um algoritmo de treinamentousado para atualizar os pesos das RNRs.

Uma rede neural recorrente é exposta a uma entrada a cada passo eprevê uma saída. Conceitualmente, o BPTT trabalha passando por todos os passosde entrada. Cada passo tem uma entrada, uma cópia da rede e uma saída. Os errossão calculados e acumulados para cada passo. Após esse processo, a rede érecuperada e os pesos são atualizados.

Espacialmente, cada passo da RNR pode ser visto como uma camadaadicional dada a dependência da ordem do problema e o estado interno do passoanterior é tomado como entrada no passo seguinte. O BPTT pode sercomputacionalmente caro à medida que o número de passos aumenta. Caso assequências de entrada sejam compostas por milhares de passos, então este será onúmero de derivadas necessárias para uma única atualização de peso. Isso podefazer com que os pesos desapareçam ou explodam (gradiente que desaparece)tornando a aprendizagem lenta e a habilidade do modelo pouco precisa.

2.3.6 LONG SHORT-TERM MEMORY – LSTM

Redes do tipo LSTM tem como principal motivação resolver o problemado gradiente que desaparece encontrado nas redes BPTT. O fluxo de erro constanteimplementado através das célula LSTM são fundamentais para que o decaimento doerro ao longo do tempo não aconteça. Isso permite que a rede aprenda uma grandequantidade de padrões sem degradação no decorrer do tempo[8].

O fluxo de erro constante nas LSTMs é possível por meio de estruturaschamadas portões como mostrado na figura 14[9]. Uma célula LSTM possui trêsportões compostos por ao menos uma camada sigmoid e uma operação demultiplicação.

27

Figura 14 : Rede LSTM

A primeira camada sigmoid intitulada “portão de esquecimento” faz usoda nova entrada em conjunto com a saída da célula anterior para determinar qualinformação vai ser mantida e qual informação será descartada. O processo éilustrado na figura 15[9].

Figura 15 : Portão de esquecimento

A segunda camada sigmoid chamada de “portão de entrada” trabalha emconjunto com a camada tanh com o objetivo de definir qual informação seráguardada na célula e esse processo ocorre em três etapas. A primeira etapa envolveuma operação com a camada sigmoid onde é definido qual valor será atualizado. Nasegunda etapa um vetor com os novos valores é criado. O processo pode serobservado na figura 16[9].

Figura 16 : Portão de entrada – Etapas 1 e 2

A terceira etapa envolvendo o portão de entrada consiste na atualização

do estado da célula. O estado anterior da célua é multiplicado por ft sendo possível

deletar os dados escolhidos nos passos anteriores. Em adição os resultados

28

gerados pelas etapas 1 e 2 do portão de entrada são múltiplicados. Esse processo

pode ser observado na figura 17[9].

Figura 17 : Portão de entrada – Etapas 3

A terceira camada sigmoid chamada de “portão de saída” tambémtrabalha em conjunto com uma camada tanh porém com o objetivo de definir qualserá a saída da célula LSTM[9]. Os valores resultantes são definidos pela saída dacamada sigmoid multiplicada pela saída da camada tahn como observado na figura18[9].

Figura 18 : Portão de saída

3 TRABALHOS RELACIONADOS

A composição de músicas fazendo uso do computador teve início comHiller e Issacson em 1959. Para alcançar esse feito, eles desenvolveram um

29

software baseado nas Cadeias de Markov[10] como pode ser observado na figura15.

As cadeias de Markov consistem em uma máquina de estados, onde opróximo estado depende de um ou mais estados anteriores. O número de eventosanteriores que são considerados em cada estágio é conhecido como a ordem dacadeia, ou seja, uma cadeia de ordem 1 é aquela que leva em consideração oprimeiro estado anterior, a de ordem 2 leva os dois estados anteriores emconsideração e assim sucessivamente.

Figura 19 : Cadeia de Markov

Com o avanço do hardware, outras técnicas para composição autônoma

foram utilizadas posteriormente, sobretudo técnicas que fazem uso de Redes

Neurais Artificiais.

3.1 COMPOSIÇÕES USANDO REDES NEURAIS ARTIFICIAIS

Em 1991 Todd[11] fez uso de uma rede neural recorrente (do tipo Back

Propagation Through Time - BPTT) para construir um compositor. Usando essa

capacidade, o autor explora a nota em função do tempo, ou seja, a música é gerada

sequencialmente onde a nota N+1 depende da nota N também em relação ao

espaço que ocupa na composição. A rede foi construída de modo que a camada de

30

entrada possui neurônios adicionais, denomidados de neurônios de planejamento

que são responsáveis por definir qual sequência a rede irá aprender dentro das

possibilidades disponíveis.

Mozer[12] - 1994, fez uso das Redes Neurais Recorrentes como basepara um sistema denominado CONCERT. Além da rede proposta por Mozer fazeruso do algoritmo BPTT a camada de saída é tratada como uma probabilidade danota em questão ser ativada ou não. Nesse trabalho, os componentes musicais sãorepresentados por informações psicológicas elaboradas por Shepard [13]. Visandocompensar a deficiências das redes com BPTT com as dependências de longoprazo, Mozer também usou um esquema simplificado de codificação pararepresentar a duração da nota com base em três escalas de fração.

Com base na RNA proposta por Todd em 1991, Franklin[14] - 2001,desenvolveu uma segunda fase de treinamento baseada no reforço deaprendizagem. Nessa fase, um valor escalar foi calculado baseado em regrasmusicais para determinar a qualidade da saída. Caso exista algum erro explícito ainformação é substituída.

Em 2012 Eck e Schmidhuber [15] observaram em seu trabalho que redesneurais recorrentes utilizadas anteriormente para a geração de músicas têmproblemas com dependências de longo termo, devido ao gradiente que desaparece,e por consequência, as composições tendem a apresentar uma falta de coerênciaem longas sequências.

Sendo assim, Eck e Schmidhuber propuseram o uso de redes do tipoLSTMs que minimizam o decaimento de erro ao longo do tempo econsequentemente habilitam o gerenciamento das dependências de longo prazopermitindo assim, sequências maiores e com maior similaridade com o dado detreinamento. Duas redes do tipo LSTM foram usadas, uma para aprender a melodiae outra para aprender os acordes. Os dados de treinamento foram músicas no estiloblues.

Franklin[16] - 2006, usou uma rede LSTM para que a mesma aprendessemúsicas no estilo Jazz. Ele usou uma representação de acordes baseado no modeloproposto por Mozer.

Corrêa[17] - 2008, implementou dois tipos de redes neurais recorrentespara a composição (BPTT e LSTM) e comparou a velocidade do treinamento bem

31

como suas composições e chegou a conclusão de que as redes LSTM apresentaramum melhor resultado final.

Em 2013 Coca, Corrêa e Zhao[18] propuseram uma rede LSTM paracomposição musical que recebe como inspiração uma melodia adicionalindependente. Além disso, é usado um medidor de qualidade da melodia quepermite que o sistema rode enquanto os parâmetros de qualidade na medição foremsatisfeitos.

A abordagem dada por Liu e Ramakrishman[19] - 2014, consiste em umarcabouço que usa LSTM em conjunto com a heurística chamada de resilientbackpropagation (Rprop). Nesse artigo, fica evidenciada a capacidade da RedeLSTM em aprender a estrutura e as características das músicas corretamente. Oexperimento demonstrou que a rede é capaz de criar novas composições apósdezenas de interações com os dados de treinamento.

Em 2016 Colombo, Muscinelli, Seeholzer, Brea e Wulfram Gerstner[20]implementaram uma versão simplificada da rede LSTM que se chama GatedRecurrent Unit – GRU. Para treinamento da rede foi usada uma grande quantidadede músicas irlandesas e o objetivo foi treinar o algoritmo para duas tarefas, aprimeira consistiu em completar uma composição monofônica e a segunda paragerar uma composição monofônica completamente nova.

32

4 PROCESSO DE COMPOSIÇÃO ARTIFICIAL

4.1 CONSIDERAÇÕES INICIAIS

Esse capítulo expõe o processo de desenvolvimento do software para ageração de composições musicais. O trabalho em questão transforma os elementosmusicais2 em uma lista de palavras e é inspirado na arquitetura de RNR proposta porAndrej Karpathy[21] desenvolvida fazendo uso do framework Torch[22] e no trabalhode Lars Eidnes[23] que tinha por objetivo a geração de texto fazendo uso de RNRsdo tipo LSTM; A RNR proposta tem como foco a geração de músicas com coerênciaestrutural baseada nas três músicas que compõem os dados de treinamento. Aquantidade de notas e acordes presentes nos dados de treinamento é de 5715 e aquantidade de notas e acordes singulares é de 753.

A arquitetura desenvolvida possui aproximadamente 15 milhões deparâmetros e a rede é treinada de modo que a cada duzentos elementos musicaisos valores dos parâmetros sejam atualizados. Objetivando uma otimização nageneralização e no tempo de treinamento, foram omitidas as informações deduração dos elementos musicais para a rede.

2

Notas e acordes.

33

4.2 DESCRIÇÃO GERAL DO SOFTWARE

O software foi desenvolvido em Python3 com o auxílio das seguintes bibliotecas:

• Keras[24] em combinação com o TensorFlow para a geração dasRedes Neurais.

• Music21 para a leitura dos arquivos de entrada em formato MIDI

bem como para a escrita das composições geradas.

• Numpy para as manipulações algébricas.

• Pickle para o armazenamento em disco das músicas que foram

lidas através do Music21 e posteriormente convertidas em umaestrutura de dados do tipo lista.

• Glob para uma navegação facilitada entre as pastas.

• HDF5 para o armazenamento dos pesos da RNA na fase de

treinamento que posteriormente são usados na fase da geração dacomposição.

4.3 REPRESENTAÇÃO DOS ELEMENTOS MUSICAIS

Fazendo uso da biblioteca Music21 cada nota e acorde foi lido etransformado em uma string. A nota é representada pela sua sigla na notação escritae concatenada com a sua altura, por exemplo, a nota dó sustenido na quarta casatem a forma de“C#4” .Os acordes são representados pelo conjunto dos número MIDIde cada nota concatenado com a palavra “|chord”. O recurso da concatenação foiusado para flexibilizar a manipulação no momento da escrita do arquivo MIDI e pornão afetar a rede neural de modo algum.

Visando a diminuição dos dados de treinamento, a duração de cadaelemento musical foi omitida. Na fase de geração da composição, a duraçãodenominada colcheia é atribuída a cada elemento musical. Essa decisão nãoinfluencia na coerência musical.

34

4.4 ARQUITETURA DA REDE NEURAL ARTIFICIAL

A RNA proposta possui dois tipos de camadas distintas e entre elas ummétodo de regularização. O primeiro tipo de camada é composto pelo modelo deRNR do tipo LSTM. A camada de saída é do tipo completamente conectada e possuia mesma dimensão dos elementos musicais únicos , ou seja, 1X753. A camada emquestão é responsável por determinar qual saída corresponde a sequência deentradas apresentadas.

4.4.1 CAMADA LSTM

As camadas em pauta consistem em duas camadas LSTMs com 512 nóscada. A diferença fundamental entre essas duas camadas LSTMs está nos tipos desaída. A primeira camada tem como saída uma sequência no mesmo formato dosdados de entrada. Essa sequência alimenta a segunda LSTM que por sua vez temcomo saída uma matriz que se conecta a camada completamente conectada(dense).Como não existe um regra formal para a definição do número de nós e o número decamadas, a RNA proposta buscou inspiração no modelo de Andrej Karpathy notrabalho The Unreasonable Effectiveness of Recurrent Neural Networks [21].

4.4.2 REGULARIZAÇÃO COM DROPOUT

Objetivando uma melhor performance da RNA, um método de dropout éassociado as LSTMS. O dropout é a técnica que consiste na retirada aleatória dealguns nós em conjunto com suas conexões durante o treinamento. A técnica de

35

dropout é capaz de melhorar a generalização da RNA[25]. O dropout foi definido auma taxa de 0.5, ou seja, 50%.

4.4.3 CAMADA DE SAÍDA

É composta pela camada completamente conectada(dense). A referidacamada possui uma dimensão de 1x753 nós e cada nó está conectado com cadauma das 753 saídas possíveis.

Figura 20 : Camada de Saída

36

4.4.4 FUNÇÃO DE ATIVAÇÃO

A composição musical é um problema de classificação tendo em vista quedado uma sequência de elementos musicais se faz necessário escolher um entre os753 elementos musicais possíveis, portanto a função de ativação usada é a softmaxpor ser a técnica padrão para problemas de classificação [26]. A técnica softmaxnormaliza suas entradas para produzir saídas Y de modo que a soma dos valores desaída seja 1. Essa função é usada para produzir saídas que podem ser interpretadascomo distribuições de probabilidade.

Figura 21 : Função Softmax

4.4.5 PARÂMETROS

Com a arquitetura proposta a RNA possui um total de aproximadamente15 milhões de parâmetros . A quantidade de parâmetros se baseia na seguintefórmula: ((Número de nós na rede LSTM x quantidade de entradas) x total de redeslstm) x (quantidade de saídas)) ou seja, ((512x200) x 2) x (753)).

37

Figura 22 : Arquitetura proposta para a geração de composições musicais

4.5 TREINAMENTO

O treinamento de uma RNA consiste em atualizar os pesos de cadaneurônio a medida que a iteração com os dados de treinamento acontece. Nestetrabalho um mini-batch size de tamanho duzentos é usado, ou seja, a cada duzentoselementos musicais apresentados (X) um determinado resultado é fornecido arede(Y). Como o treinamento é computacionalmente muito custoso dado o númerode nós, foi usado um computador com processador Intel(R) Xeon(R) CPU E5-2650v2 @ 2.60GHz e placa de vídeo GK104GL [GRID K520] através da Amazon WebServices durante essa fase. No computador citado, a fase de treinamento duroucerca de 18 horas.

38

4.5.1 DADOS DE TREINAMENTO

Os dados de treinamento são compostos pela Sonata para piano n.º 14,Op. 27 n.º 2 de autoria de Ludwig van Beethoven e possui três peças separadas. Asonata n.º 14 foi escolhida por possuir uma grande combinação de elementosmusicais. O número total de entradas (notas e acordes) é de 5715 e o número deentradas singulares, ou seja, notas e acordes únicos é de 753.

4.5.2 TRATAMENTO DOS DADOS

Após as músicas terem sido tratadas inicialmente pela biblioteca Music21e transformadas em uma lista de strings com todos os elementos , uma função demapeamento é criada com o objetivo de transformar a lista inicial em uma listanumérica. Como exemplo a lista de strings com os valores [“C1”,”D4”,”C1”,”E2”,“31,33,35|chord”] é mapeada como [1,2,1,3,4] .

Em posse da lista numérica os dados são normalizados, ou seja, os

dados são convertidos em uma escala entre 0 e 1 através da seguinte fórmula:

Figura 23 : Normalização

onde z corresponde ao valor do dado normalizado. Isso é feito pois os dados

normalizados ajudam a RNA a ter melhor desempenho[27].

Para a camada de saída(Y), o dado é transformado fazendo uso da

técnica one-hot-enconding que consiste em representar os dados dos elementos

musicais em uma matriz binária. Esta matriz binária é necessária para que a camada

de saída que faz uso da função softmax funcione da forma correta.

39

Tabela 3 : Representação dos dados

Lista original [“C1”,”D4”,”C1”,”E2”, “31,33,35|chord”]

Lista numérica [1,2,1,3,4]

Lista normalizada [0.25,0.50,0.25,0.75,1.0]

One-hot-Encoding

{[1,0,0,0],[0,1,0,0],[1,0,0,0],[0,0,1,0],[0,0,0,1]}

4.5.3 FUNÇÃO DE PERDA

A função de perda é uma medida da quantidade de erro que a RNAproduz em relação aos dados de treinamento. A técnica usada é a de entropiacruzada . A entropia cruzada é escolhida por trabalhar de forma satisfatória comproblemas que abordam múltiplas saídas[28].

4.5.4 HIPERPARÂMETROS

Os dados tratados anteriormente servem de input para que a RNA sejatreinada. Nessa fase o número de passagem pelos dados de treinamento(época)bem como o número de dados necessários para que os pesos da redes sejamatualizados (mini-batch size) são definidos. Assim como o número de camadasocultas, não existe consenso sobre o número ideal que os hiperparâmetros devemreceber, portanto na RNA proposta o número de épocas e o mini-batch size foramdefinidos como duzentos para cada hiperparâmetro inspirados no trabalho realizadopor Andrej Karpathy [21] e Lars Eidnes [23].

40

Gráfico 1 : Decaimento do erro

Como mencionado na seção 4.5.3 a função de perda é uma medida daquantidade de erro que a RNA produz em relação aos dados de treinamento. NoGráfico 1 é possível verificar que o erro diminui com o passar das rodadas, e issodeixa claro que a arquitetura proposta para a RNA funcionou de forma satisfatória.Após duzentas duzentas passagens completas pelos dados de treinamentos omenor erro encontrado foi na rodada cento e noventa e nove com o valor de 0.4666.

Na fase de treinamento todos os dados de entrada disponíveis sãousados para que a rede aprenda qual é a probabilidade de cada elemento musicalser escolhido dado uma determinada sequência, sendo assim, não existe nenhumconjunto de teste ou treinamento.

4.6 GERAÇÃO DAS COMPOSIÇÕES

Nessa etapa uma RNA idêntica a RNA de treinamento é criada e os pesosdos neurônios são preenchidos com o arquivo binário gerado na fase detreinamento. Em seguida, uma estrutura de repetição é inicializada e uma sequênciade duzentos elementos musicais é apresentada a RNA que gera um elementomusical a cada passo dado. Um valor de duração único (colcheia) é atribuído a cadaelemento musical gerado e ao final da repetição um arquivo MIDI é gerado e oprograma chega ao fim.

41

4.6.1 TRATAMENTO DA SAÍDA DA REDE

Levando em conta o custo computacional e o tempo para a conclusão doprocesso de treinamento da RNA o script de geração foi escrito separadamente.Uma vez em posse dos pesos corretos a RNA proposta gera novas composições deforma rápida.

No novo script a RNA construída é idêntica a RNA treinada e os pesos

são carregados através do arquivo binário que foi salvo ao fim da fase de

treinamento. Com o conjunto de treinamento normalizado a estrutura de repetição é

inicializada e uma sequência de duzentas unidades é escolhida ao acaso para que

seja exposta a RNA em sua camada de entrada. A saída da RNA é um conjunto de

valores correspondente a camada de saída da RNA, uma matriz de 1x753 contendo

a probabilidade de cada elemento musical ser a saída, dado a sequência de entrada.

Uma vez que a matriz de probabilidades é conhecida e o maior valor de

probabilidade é capturado, uma função de mapeamento responsável por transformar

o dado numérico em string com o elemento musical é executada.

Figura 24 : Função de mapeamento

42

4.6.2 NOTAS X ACORDES

Com a string de saída em mãos uma verificação condicional é usada como objetivo de verificar se o elemento musical em questão é uma nota ou um acorde.A condicional verifica se a string em questão possui a palavra “|chord” em seuconteúdo.

Caso o resultado seja verdadeiro, uma função é chamada para que a

palavra “|chord” seja retirada da string, outra função é executada e uma lista

contendo os valores MIDI é criada. Com a lista de valores MIDI preenchida, um

objeto acorde da biblioteca Music21 é criado para que em sequência a estrutura de

repetição responsável por preencher o objeto acorde com os valores encontrados na

lista seja executado . Após isso, o valor de tempo musical denominado colcheia é

atribuído ao objeto acorde através da biblioteca Music21 e o objeto em questão é

inserido na lista de saída. Por exemplo, a string “31,33,35|chord” passa pelos

seguintes passos:

1. a string “31,33,35|chord” contém a palavra |chord?;

1. se sim então a string recebe o valor “31,33,35”;

2. a lista recebe os valores 31,33 e 35;

3. Enquanto existirem elemento na lista, atribuir o valor ao objeto acorde;

4. O objeto acorde recebe o valor de tempo musical denominado colcheia;

Caso o resultado seja falso, um objeto nota criado com a biblioteca

Music21 é gerado e recebe o valor contido na string em conjunto com o valor de

tempo musical chamado de colcheia.

No fim da avaliação condicional da string um tempo musical é atribuído ao

andamento. Já que a música é composta sequencialmente.

43

Figura 25 : Elementos e compasso

Esse passo é necessário para delimitar onde o elemento musical seencontra na composição, delimitando assim os compassos.

4.6.3 ATUALIZAÇÃO DOS VALORES DE ENTRADA

Os passos descritos em 4.6.1 e 4.6.2 ocorrem até que a estrutura derepetição que controla tais passos receba o valor de trezentas rodadas. Ao final decada rodada a lista contendo os duzentos valores de entrada é atualizada de modoque o valor gerado na rodada corrente seja adicionado ao final da lista e o primeirovalor da mesma seja removido como ilustrado na figura 22.

Figura 26 : Atualização das entradas

44

4.7 GERAÇÃO DO ARQUIVO MIDI

Após os passos descritos em 4.6.1, 4.6.2 e 4.6.3 o valor de batidas porminuto é definido em cento e sessenta e um arquivo MIDI é gerado tendo comoparâmetro de entrada a lista com os objetos criados através da biblioteca Music21.Um trecho da composição gerada ao fim do processo pode ser observada na figura23 e uma versão audiofônica do arquivo gerado se encontra disponível na internet3.

Figura 27 : Exemplo de composição

3

https://soundcloud.com/fxpxqx/lstm_sunrise

45

5 CONCLUSÃO

Composições musicais envolvem um grande número de combinaçõesentre seus elementos, tornando a tarefa do compositor complexa e altamenteabstrata. Fazendo uso de Redes Neurais Recorrentes com duas camadas LSTM emsua arquitetura, um software para composição musical desenvolvido em python foiproposto tendo como dados de treinamento a Sonata para piano n.º 14, Op. 27 n.º 2de autoria de Ludwig van Beethoven.

Ao longo do desenvolvimento desse trabalho pude ampliar meusconhecimentos sobre os algoritmos de treinamento das RNAs bem como sobre suaspossíveis arquiteturas. Um outro ponto relevante reside no desafio de representaçãode dados multidimensionais em uma RNA. Essa experiência ratificou o meu desejoem dar prosseguimento nos estudos formais na área de inteligencia artificial.

Ao final do processo de treinamento e geração da saída é possívelobservar que a rede proposta é capaz de gerar novas composições com coerênciamusical e guardando semelhança com os dados de treinamento mesmo tendo emvista os 753 elementos musicais possíveis.

Do ponto de vista computacional, a tarefa de composição enfrenta umabarreira relevante já que o treinamento da rede LSTM é muito custoso. Baseado naLei de Moore é possível especular que dentro de alguns anos será possível executaro treinamento de RNAs semelhantes a proposta nesse trabalho em computadoresde menor custo, tornando assim o uso de tal tecnologia uma opção popular na tarefade composição musical.

Algumas sugestões para a continuidade desse trabalho incluiriam umasegunda RNA na fase de treinamento nos mesmos moldes da proposta aqui, porémessa segunda RNA seria responsável apenas pela duração dos elementos musicais.Também seria interessante que os dados de treinamento fossem rotulados com suascaracterísticas emocionais, sendo possível na parte da composição selecionar oquão alegre ou triste a música composta deveria ser.

46

Bibliografia1: Google Cloud API, https://cloud.google.com/products/machine-learning/, 2: Bohumil Med, Teoria da Música, 19963: Maura Penna, Música(s) e seu ensino, 20084: Simon S. Haykin, Redes Neurais, 1999 5: Warren S. Mcculloch, Walter Pitts, A Logical Calculus Of The Ideas Immanent In Nervous Activity 6: Thomas Walter Rauber, Redes Neurais Artificiais, 20067: Haykin S., Redes Neurais, Princípios E Prática, 20018: F.Gers, Long Short-Term Memory In Recurrent Neural Networks, Ph.D Tesis, Ecole PolytechniqueFédérale De Lausanne Epfl, 20019: Christopher Olah, Understanding Lstm Networks, 2015, 10: Karlin, Samuel, A First Course In Stochastic Processes , 201411: Peter M Todd, A Connectionist Approach To Algorithmic Composition, 198912: Michael C. Mozer, Neural Network Music Composition By Prediction: Exploring The Benefits OfPsychoacoustic Constraints And Multi-Scale Processing, 199413: Shepard, Roger N., Geometrical Approximations To The Structure Of Musical Pitc, 198914: Franklin, J. A., Multi-Phase Learning For Jazz Improvisationand Interaction., 200015: Eck, D. And J. Schmidhuber, Learning The Long-Termstructure Of The Blues, 200216: Franklin, J. A, Predicting Reinforcement Of Pitch Sequences Via Lstm And Td, 201617: Débora Cristina Corrêa, Sistema Baseado Em Redes Neurais Para Composição Musical AssistidaPor Computador, 200818: Andres E. Coca ; Debora C. Correa ; Liang Zhao, Computer-Aided Music Composition With LstmNeural Network And Chaotic Inspiration, 201319: I-Ting Liu, Bhiksha Ramakrishnan, Bach In 2014: Music Composition With Recurrent NeuralNetwork, 201420: Colombo, Muscinelli, Seeholzer, Brea E Wulfram Gerstner, Algorithmic Composition Of MelodiesWith Deep Recurrent Neural Networks, 201621: Andrej Karpathy, The Unreasonable Effectiveness Of Recurrent Neural Networks, 2015, 22: Pytorch, https://pytorch.org/23: Lars Eidnes, Auto-Generating Clickbait With Recurrent Neural Networks, 2015, 24: Keras, https://keras.Io/,25: N. Srivastava, G. E. Hinton, A. Krizhevsky, I. Sutskever, And R. Salakhutdinov, Dropout: A SimpleWay To Prevent Neural Networks From Overfitting, 201426: Yichuan Tang, Deep Learning Using Linear Support Vector Machines , 201427: Sergey Ioffe, Christian Szegedy, Batch Normalization: Accelerating Deep Network TrainingByreducing Internal Covariate Shift, 201528: P.-T. De Boer, D.P. Kroese, S. Mannor, And R.Y. Rubinstein, A Tutorial On The Cross-Entropymethod, 2005

47