pontifÍcia universidade catÓlica do paranÁ gabriel …laplima/.../gabriel_guilherme... ·...
TRANSCRIPT
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ
ESCOLA POLITÉCNICA
CURSO DE ENGENHARIA DE COMPUTAÇÃO
4º BIMESTRE
GABRIEL HERMAN BERNARDIM ANDRADE
GUILHERME BRUNOW GOMES
CLASSIFICAÇÃO MUSICAL BASEADA EM ABORDAGENS DE
APRENDIZADO DE MÁQUINA
RELATÓRIO TÉCNICO FINAL
PROF. ORIENTADOR: LEANDRO DOS SANTOS COELHO
CURITIBA
2016
RESUMO
O avanço da Internet e das tecnologias de computação popul arizou a
distribuição de multimídia de forma digital, em espec ial no caso da distribuição
de músicas. Contudo, o sucesso dessa forma de dis tribuição depende de
técnicas robustas e eficientes que determinem relações de similaridade dentro
da biblioteca disponível. Este trabalho de conc lusão de curso propõe, como uma
alternativa para resolução do problema de indexação de conteúdo musical, a
geração de um ou mais classificadores musicais que, a partir de uma biblioteca
musical utilizando técnicas de Aprendizado de Máquina (AM). A solução adotada
será capaz de identif icar s imi lari dades sonoras e realizar o agrupamento destes
dados e baseado no modelo matemático gerado será capaz de classificar novos
dados musi cais. Para tanto será utilizada a abordagem de Comitê de Máquina
(Machine Ensemble) com o objetivo de combi nar os diferentes algoritmos para a
obtenção de um algori tmo de melhor desempenho.
Palavras-chave: Classificação de dados , Agrupamento de dados, Comitê
de Máquinas, Classificação Musical, Extração de Caracterís ticas Sonoras,
Aprendizado de Máquina.
SUMÁRIO
RESUMO ..................................................................................................................... 2
1. INTRODUÇÃO .................................................................................................... 5
2. APANHADO DA LITERATURA....................................................................... 7
3. DETALHAMENTO DO PROJETO .................................................................. 9
3.1. Visão Geral ........................................................................................................9
3.2. Módulo de Treinamento................................................................................... 10
3.3. Recomendação ................................................................................................ 11
3.4. Especificação de Blocos .................................................................................... 11
3.5. Especificações Técnicas .................................................................................... 21
4. EMBASAMENTO TEÓRICO .......................................................................... 23
4.1. Visão Geral ...................................................................................................... 23
4.2. Extração de Características Sonoras .................................................................. 25
4.3. Comitês de Máquina ........................................................................................ 35
5. PROCEDIMENTOS DE TESTE E VALIDAÇÃO DO PROJETO ............. 41
5.1. Testes de Caixa Preta ....................................................................................... 41
5.2. Testes de Caixa Branca ..................................................................................... 44
6. AVALIAÇÃO...................................................................................................... 45
7. RESULTADOS .................................................................................................. 47
8. CONCLUSÃO.................................................................................................... 49
9. REFERÊNCIAS BIBLIOGRÁFICAS ............................................................. 51
ÍNDICE DE FIGURAS
Figura 1 - Diagrama de Blocos do Sistema ............................................................. 10
Figura 2 - Recorte da tabela de características padrões ...................................... 14
Figura 3 - Avaliação do número de grupos utilizando o índice Silhouette .......... 16
Figura 4 - Est rutura de geração dos model os de agrupamento.......................... 18
Figura 5 - Exemplo de Dados .................................................................................... 20
Figura 6 - Exemplo de agrupamento ........................................................................ 20
Figura 7 - Es trutura de coleta de votos .................................................................... 21
Figura 8 - Exemplo de características MFCC extraídas de uma amostra da
faixa Wol fmo ther - Cosmonaut .................................................................................. 26
Figura 9 - Níveis de Representação ......................................................................... 28
Figura 10 - Tipos de Caracter ís ticas ......................................................................... 29
Figura 11 - Visualização do processo de divisão em quadros.............................. 30
Figura 12 - Modelo de banco de filtros representativo da Escala Mel ................ 30
Figura 13 - Diagrama de Blocos da extração de MFCCs...................................... 31
Figura 14 - Fases AD SR ............................................................................................. 32
Figura 15 – Exemplo de características temporais da faixa Groove Armada
– Whatever, Whenever. ............................................................................................... 34
Figura 16 - Razões fundamentais que suportam o uso de comitês de
máquinas ....................................................................................................................... 37
Figura 17 - Exemplo de combinação Bagging ........................................................ 38
Figura 18 - Exemplo de combinação Boosting ....................................................... 39
Figura 19 - Exemplo de combinação Stacking........................................................ 41
Figura 20 - Player de Músicas ................................................................................... 47
Figura 21 - Interface para defi nição dos pesos de cada algoritmo ...................... 48
5
1. INTRODUÇÃO
Os avanços na Internet e nas tecnologias de transmissão, permitiram que
os usuários pudessem apreciar uma maior quantidade de conteúdo multimídia,
por meio do aumento no número e popul arização dos serviços digitais
oferecidos, que afetou, dentre mui tas outras áreas, a indústria musical [1].
Contudo, o sucesso da distribuição eletrônica de músicas depende da existência
de técnicas robustas e eficientes que encontrem relações de s imi laridade entre
as músicas e/ou os conjuntos de músicas [2].
Com o acentuado aumento da quanti dade de músicas disponíveis , cresce
a necessidade de métodos automáticos, para filtrar, processar e organizar tais
dados. Algumas abordagens neste quesito podem ser realizadas por meio de
informações anexas às músicas, os denominados metadados, que fornecem
informações sobre seu conteúdo, tais como nome da música, banda ou artista.
As metodologias capazes de realizar a class ificação de músicas com base na
análise das informações presentes no áudio tornam-se interessantes devi do ao
fato de metadados não es tarem sempre di sponíveis ou não conterem
informações suficientes para a reali zação de determinadas tarefa de
classificação [1], [3].
A necessidade de informações complementares aos metadados fez com
que a recuperação de informação musical (Musical Information Retrieval, MIR)
se tornasse um campo de pesquisa atrativo. O objetivo fundamental desta área
é extrai r i nformações musicalmente significativa a partir de sinais de áudio
digitalizados através de métodos computacionais , permiti ndo a realização de
tarefas, tais como etiquetação de conteúdo, indexação inteligente, segmentação
de faixas , transcrição automáti ca de letras, entre outros [4]–[6].
Recentemente, a distribuição de músicas está direcionada para serviços
de venda digitai s, como o iTunes da Apple [7] e o Google Play da Google [8], ou
serviços de streaming, como o Spotify [9]. Como resultado, probl emas, tais
como a organização de bibliotecas di gi tais, criação automática de playlists e a
recomendação automática de novas músicas, se tornaram relevantes , pois
6
permitem, por exemplo, que ouvintes descubram novos artistas com base em
seus gostos ou que lojas virtuais efetuem marketing direcionado a cada usuário.
Entre as diversas formas de abordar esses desafios, encontram -se os
algoritmos de anál ise e classificação musical. Algumas empresas , contudo,
optam por abordagens diferentes – o Spotify, por exemplo, utiliza um sistema de
classificação que l eva em conta a avaliação do usuário de uma música e a
similaridade de suas avaliações com a de outros usuári os, não ut ilizando os
dados contidos nas músi cas propriamente ditas.
Dentro desse contexto, a classificação de gêneros musi cais se mostra
como um tema interessante e promissor para estudo, já que a primeira grande
etapa para a correta sugestão e/ou organização de conteúdo é a avaliação e
classificação preci sa das bibli otecas musicai s que se tem posse. A classificação
baseada em conteúdo musical é essencialmente uma tarefa de reconhecimento
de padrões, onde existem ao menos duas questões distintas: extração de
características e a cl ass if icação ao agrupamento baseado nes tas caracterís ticas.
Para tanto, uma representação efetiva da música deve ser feita, de forma a
capturar as propriedades mais significativas do sinal de áudio, além de ser geral,
de forma a ser apli cada a diversas classes sonoras. Para a classificação, é
crucial a formulação de uma medi da de similaridade e uma regra class ificatória
[10]. Exis tem diversas abordagens para este problema, entretanto, o
processamento efi ciente das informações extraídas do áudio continua sendo um
fator fundamental, atraindo a atenção de pesquisadores, músicos e
compositores [11].
Naturalmente os gêneros musicais, definidos pelas gravadoras,
produtores ou dis tribuidores, são uma opção comum para divisão de músicas em
grupos. Entretanto, esta classificação é, de certa forma, arbitrária e subjetiva.
Isso faz com que sej a necessário um sistema de classificação complexo e de
natureza determinística para a execução des ta tarefa. Tais fatos justificam a
necessidade de desenvolver uma ou mais técnicas capazes de categorizar e
agrupar músicas a partir dos dados recuperados das próprias músicas, sendo
estes grupos de carac teríst icas determinís ti cas, tais como harmonia, ritmo,
7
presença ou ausência de ins trumentos musicais, timbre, ritmo, característica
espectrais, entre outros [12], [13].
Visando este cenário, o projeto a ser desenvolvi do consi ste na
implementação e avaliação de desempenho de técnicas de aprendi zado de
máquina para categorização e agrupamento em bases mus icais, através da
extração de informações ou características que indiquem similaridade e possam
demonstrar distância entre padrões present es em duas músicas, associados ou
não a metadados . Serão i mplementados e avali ados algoritmos de
agrupamento (clusterização) e/ou classificação e/ou regressão de dados. Como
fase final do projeto, será implementado um comitê de máquinas (ensemble),
realizando a união de técnicas com desempenho satisfatório, e espera-se
desenvolver um algoritmo com desempenho ainda mais elevado.
Este documento encontra-se organizado da seguinte forma. O capítulo 1
traz a introdução, motivação e os objetivos do proj eto; O capítulo 2 mostra um
apanhado da literatura referente ao tema de estudo; O capítulo 3 apresenta o
detalhamento do projeto a ser desenvolvido; O embasamento teórico é
detalhado no capítulo 4; O capítulo 5 explana sobre os procedimentos de tes te
e validação para cada um dos módulos do projeto; O capítulo 6 discorre sobre a
análise de riscos do projeto, juntamente com o impacto da concretização dos
mesmos; O capítulo 7 demostra a metodologia de avaliação; O capítulo 8 mos tra
a análise de risco do projeto O capítulo 9 apresenta o cronograma de trabalho
proposto; O capítulo 10 apresenta as conclusões finais, destacando os principais
aspectos e informações presentes neste documento; O capítul o 11 apresenta as
referências bibliográficas utilizadas.
2. APANHADO DA LITERATURA
Exis tem diversas abordagens diferentes na tentativa de ut ilizar aprendizado
de máquina para a realização de classificação musical. Estas divergem nas
técnicas de aprendizado uti lizadas e no tipo de classificação que se deseja obter,
porém, em sua maioria, desejam realizar a separação de gênero.
8
É váli do citar o trabal ho de Laurens van Dijk [14], que realizou a classificação
e análise de relação entre diversos subgêneros de música eletrônica, seguindo
as classificações do s ite Beatport (beatport.com). Nesse caso, foram utilizados
métodos fornec idos por bibliotecas para o ambiente computacional MATLAB que
permitiam a extração e representação numérica de diversas características
musicais. Para a classificação utilizou-se um conjunto de máquinas de vetores
de suporte (SVM).
Já o sistema criado por Arijit Ghosal [15], do Neotia Institute of Technology
Management and Science, considera gêneros musicais como sendo
caracterizados pela variação de atributos como tom, tempo, amplitude e
periodicidade. Toda a informação obtida é usada como entrada para os três
algoritmos de classificação testados, perceptron multicamada (Multilayer
Perceptron, MLP), Máquina de vetores de suporte (Support Vector Machine,
SVM) e RANSAC (Random Sample Consensus).
Outro trabalho relevante é o de Äaron van den Oord [12] que utilizou redes
neurais convolucionais profundas para predizer características relacionadas a
fatores semânti cos de latentes de uma música, de forma a identificar o nível de
similaridade entre di ferentes músicas, permitindo que sejam reali zadas
recomendações precisas quando levando em cons ideração o gosto musical de
um ouvinte. Foi realizada também a comparação do algoritmo desenvolvido com
uma abordagem mais convenc ional de um “saco de palavras” (bag of words) de
características representativas de cada música.
O trabalho de Paradzinet et al. [13] propôs o desenvolvimento deum sistema
de classificação automática de gênero através da combinação de três algoritmos
de classificação treinados com característica de áudio diferentes entre si. A
análise de características acústicas foi efetuada através do uso de uma rede
neural do tipo perceptron multicamada, as características rítmicas e de timbre
forma consideradas através de classificadores do tipo k-médias. Cada
especialista produz uma probabilidade referente a cada gênero avaliado e estão
são combinadas por uma rede neural art ificial para produzir o resultado final.
Com o uso de tal abordagem, avaliou-se um ganho de 12% de precisão em
comparação ao uso de um único classificador.
9
Aucouturier e Pachet [2] desenvolveram uma metodologia de análise de
similaridade mus ical através de características de timbre somente. Utilizando os
Coefici entes Ceptrai s da Escala Mel (Mel Frequency Cepstral Coefficients ou
MFCCs) para descrever o envelope espectral e obter as características timbrais,
gerou-se um modelo gaussiano para estimar a distância entre diferentes faixas
musicais.
O estudo de Baniya et al. [11] verificam o efeito que diferentes grupos de
características de áudio (características dinâmicas, rítmicas, espectrais e
harmônicas) causam no desempenho de dois t ipos de classificadores distintos
(Extreme Learning Machine e SVM) na tarefa de classificação de gêneros
musicais.
Uma série de outros trabalhos que realizam classificação de gêneros
musicais baseado no conteúdo do si nal de áudio, tais como [3], [10], [16]–[18],
são bastante similares entre si no que diz respeito ao formato básico do si stema.
Apesar do uso de diferentes bases musicais, percebe-se uma pequena variação
no grupo de caracterís ticas que é utilizado para análise, porém estes estudos se
diferenciam na abordagem de Aprendizado de Máquina utilizada.
3. DETALHAMENTO DO PROJETO
Nesta seção o projeto em questão e seus principais componentes são
listados, juntamente com a definição de suas respec tivas funções. Este trabalho
de conclusão de curso propõe o desenvolvimento de um sistema capaz de, a
partir das características sonoras de um conjunto de músicas, com ou sem
auxílio de metadados, (i) analisar estas informações, (ii) de forma autônoma
definir um model o de agrupamento dos dados e (ii i) a partir do modelo gerado,
analisar e classificar corretamente novos dados.
3.1. VISÃO GERAL
A partir dos requisitos previamente mencionados, pode-se afirmar que,
como resultado deste trabalho, foram desenvolvidas duas aplicações ou
10
módulos , conforme mostrado na Figura 1. A primeira aplicação, ou módulo, é
responsável pela análise inicial da base de músicas e agrupamento dos dados,
ou seja, é responsável pela criação do modelo de agrupamento. Já a segunda,
é mais característica de uma aplicação de usuário, terá como responsabilidade
a execução das músicas e, com base nos parâmetros obtidos através da
execução da pri meira etapa, realizar recomendações. Como resposta à música
sobre qual a recomendação foi solicitada será i nformada a classe da mesma e
uma ou mai s músicas pertencentes ao mesmo grupo.
Figura 1 - Diagrama de Blocos do Sistema
3.2. MÓDULO DE TREINAMENTO
O módulo de treinamento, como mostra a Figura 1, tem com entrada a
base de dados, já com as características sonoras extraídas dos arqui vos de
11
áudio. Esta então é passada para o bloco de seleção de características ,
responsável por efetuar processamentos sobre a base de dados e permitir a
escolha das características utilizadas para criar o vetor de características
(detalhes na seção 3.4.3), o qual representa o conjunto de dados no devi do
formato para que o bloco de aprendizado de máquina (detalhes na seção 3.4.4)
possa construir o modelo de classificação que será gravado em disco e
posteriormente servirão de parâmetro para o a avaliação de similaridade entre
músicas. Es te módulo atende aos requisitos de (i) analisar os dados e (ii) definir
um model o de agrupamento dos dados de forma autônoma.
3.3. RECOMENDAÇÃO
O módulo de recomendação, apresentado na Figura 1, representa a parte
da aplicação visível ao usuário. Seus dados de entrada são os parâmetros do
modelo de agrupamento gerados pel o módulo de treinamento e a base mus ical.
Este módulo é representado por uma interface gráfica na forma de um player de
músicas, onde o usuári o será capaz de ouvi r as músicas da base de dados e
requisitar uma recomendação de músicas similares a que esti ver ouvindo.
3.4. ESPECIFICAÇÃO DE BLOCOS
Nesta seção serão especificados os componentes do diagrama de blocos
da Figura 1.
3.4.1. Base de Músicas
Os problemas de Aprendizado de Máquina baseados em análise
estatística – independentemente da aplicação final – requerem de grandes
quantidades de dados . Segundo Bob Mercer [19], “Não existem dados que sejam
dados demais”. Esse problema é agravado quando se trata da MIR,
principalmente pela questão de licenciamento e direitos autorais . Isso di ficulta o
processo de obtenção e livre uso dos dados, restringindo pesquisadores ao uso
12
de pequenas bases de dados com conteúdo limitado ou músicas distribuídas
sobre licenças livres, tal como a Creative Commons [20].
Desta forma, a construção de bases de dados musicais se tornou uma
das tarefas de mai s importância nesta área de estudo. A importância de tais
bases tem s ido reconhecida com o progresso das tecnologias de informação
musical, fazendo com que a partir do ano 2000, bases de larga escala fossem
criadas, tendo um forte impacto sobre a área de pesquisa global [21].
Porém, além da quantidade de dados , a qualidade dos dados utili zados
também é importante. Atualmente, os trabalhos musicais se espalham por uma
grande variedade de gêneros , cada um com suas características pecul iares, tais
como pop, jazz, rock ou el etrônica. No caso de bases mus icais, principalmente
quando aplicadas a probl emas de classificação, devem ser capazes de
representar essa diversidade, permitindo a análise de diferentes estilos musicais,
bem como diferentes es truturas e características sonoras, permitindo a obtenção
de um modelo mais geral e, consequentemente, melhores níveis de
desempenho [21].
A base musical utilizada foi a The MagnaTagATune Dataset [24], composta
de 5405 faixas de diversos estilos, dividas em mais de 25 mil trechos,
apresentando uma quantidade suficiente de faixas musi cais para treinamento e
validação do sistema, bem como sendo diversas o sufic iente para a c ri ação de
um model o de classificação abrangente. Além disso, o uso de uma base de
dados musi cais disponível na literatura permite com que seja possível realizar a
avaliação do sistema proposto frente a outras abordagens propostas em outros
trabalhos.
Esta base fornece os arquivos de áudio em mp3 referentes aos tais
trechos, permitindo a extração de qualquer característica sonora. Além disso,
são fornecidos os metadados, bem como etiquetas classificadoras anotadas por
usuários para cada um dos trechos, coletadas através do jogo TagATune.
Para a ut ilização dos dados fornecidos na base foi necessária a realização
de uma etapa de pré-processamento dos dados. As informações foram passadas
para o bloco de extração de caracterís ti cas , onde foi real izada a análise do sinal
13
de áudio e gera uma série de características temporais e espectrais utilizadas
para representação da música. Os metadados presentes na base foram
normal izados e filtrados pelos blocos correspondentes, de forma a remover
dados não rel evantes à tarefa de agrupamento, bem como realizar a análise de
dados faltantes.
3.4.2. Extração de Caracterís ti cas
Uma das características que tornam o Aprendizado de Máquina
interessante é sua capacidade de extrair as informações relevantes de um
amontoado de dados. No caso de música, contudo, isso não se apl ica e por isso
há a necessidade de pré-processar os arquivos de áudio para realizar a extração
de características sonoras – como timbre, tom e ritmo – dos arqui vos de áudio e
utilizar tais características para alimentar os algoritmos de Aprendizado de
Máquina.
Para o desenvolvimento do projeto, o primeiro passo é referente a
aquisição dos dados sobre os quais o trabalho será realizado. Sobre os arqui vos
em mp3 pertencentes à base mus ical escolhida, utilizou-se o framework
MARSYAS de forma a extrair os conjuntos de características para compor o
banco de dados do proj eto.
Já neste primeiro passo encontrou-se dificuldades na execução do
framework. Devido a diferenças nas versões de algumas das bibliotecas C++
utilizadas, foi necessário real izar a edição do código fonte do MARSYAS de
forma a atualizar a chamada para tais funções. Além disso, foi necessário incluir
a biblioteca PortAudio para incluir o suporte aos arquivos mp3 utilizados (função
que não exis te nati vamente no MARSYAS) e recompilar o código de forma a
gerar o executável para linha de comando.
Para a extração propriamente dita, seguiu-se o tutorial disponível no
website do software. Ut ilizou-se as funções pitchextract, extract e bextract para
realizar a análise de cada um dos clips contidos em cada um dos arqui vos mp3
e exportar os dados resultantes para um arquivo CSV, que foi importado para o
banco de dados MySQL do projeto.
14
3.4.3. Conjunto de Características
Também denominado feature set, é composto por um conjunto de
características que são consideradas rel evantes para a solução de uma tarefa
de aprendizado de máquina.
Foram extraídos 13 conjuntos de características diferentes, que
agrupavam as características relevantes para análise de cada propriedade do
áudio, como cruzando de zero, análise timbral , MFCCs, análise espectral, entre
outros. Todos estes foram importados para uma tabela do banco de dados,
incluindo o conjunto padrão do MARSYAS que contém uma combinação das
características mais comumente usadas.
Como as características foram extraídas para janelas de 1 segundo de
áudio, com sobreposição, os dados de saída gerados são referentes à
propriedades estatísticas do conjunto de dados de cada clip. Por exemplo, gerou-
se a média, média das médias, média do desvi o padrão e média da variânci a de
cada uma das características extraídas, de forma a gerar valores únicos que são
capazes de representar o clip como um todo. Um recorte da tabela de
características padrão pode ser observado na Figura 2.
Figura 2 - Recorte da tabela de características padrões
3.4.4. Aprendizado de Máquina
O bloco de Aprendizado de Máquina é um dos pontos principais
desenvolvidos neste trabalho, neste é reali zada a tarefa de análise de dados e
geração de um modelo de agrupamento.
15
Já em posse dos dados , o primeiro processamento realizado foi a
normal ização dos mesmos, de forma a padronizar a variação dos mesmos para
uma escala comum. Isto permite que alguns algoritmos, principalmente os
baseados na di stância entre os pontos, não sofram como uma das variáveis com
maior variação dominando e minimizando o efeito das demais na definição dos
grupos. O processo de escala utilizado para cada caracterís ti ca foi composto
pela subtração do valor pela média desta característica particular e a divisão pelo
seu desvio padrão, deixando todas as variávei s com valores próximos da ordem
de -1 a +1.
Como os dados não possuem uma “classe verdadeira” a partir da qual
seja possível avaliar a quantidade de grupos diferentes, bem como a qualidade
do agrupamento gerado, buscou-se algoritmos de avaliação de propri edades
intra-cluster e estimativa do número de classes. Esta aval iação foi feita utilizando
os algoritmos CalinskiHarabasz, DaviesBouldin, Silhouette (Funções exis tentes
no MATLAB) e Dunn’s Index (Toolbox externo), aplicados sobre uma matriz
resultante de diversos agrupamentos realizados com o algori tmo K-means, onde
o número de classes k era variado a cada iteração, sob valores de 5 até 300.
Percebeu-se que todos os algoritmos, apesar de avaliarem caracterís ticas
diferentes (o índice Silhouette, por exemplo, avalia, para cada um dos grupos, o
quão coesos são e quão di stantes es tão dos demais grupos) dentro do conjunto
de dados, retornaram um número de cl asses “ideal” similar, entre 8 e 15 classes.
Os resultados do índice Silhouette podem ser observados na Figura 3, na qual
se observa a média das notas dadas a cada uma das cl asses para cada número
de classes k testado, sendo quanto maior for esta média se diz como sendo
melhor o agrupamento.
16
Figura 3 - Avaliação do número de grupos utilizando o índice Silhouette
Na tentati va de avaliar o agrupamento considerado ideal por tais
algoritmos , buscou-se obter métricas para a avali ação do agrupamento mus ical
gerado, porém esta é uma tarefa realmente complexa e subjetiva, que acabou
sendo a maior di ficuldade enfrentada durante o desenvolvimento do projeto.
Para o bai xo número de classes indicado pelos algoritmos de avaliação, o
resultado obtido foi claramente insatisfatório. Foi fácil perceber a presença de
músicas de gêneros total mente diferentes e sem nenhuma caracterís ti ca
marcante em comum presentes em uma mesma classe. Como não foi possível
obter uma resposta definitiva de como realizar este procedimento, por isso optou-
se por ouvir extensivamente as músicas de diversas cl asses procurando por
erros na classificação realizada.
Dessa forma, optou-se por avaliar os agrupamentos gerados com valores
de k maiores . Percebeu-se que a similaridade de carac teríst icas sonoras entre
os grupos se acentuou com o agrupamento na faixa de 80 a 100 classes. Tal fato
17
é suportado ao observar que a base cont inha aproximadamente 90 anotações
diferentes realizadas por usuários para descrever as caracterís ticas de cada
música. Prosseguindo com os testes, percebeu-se que um aumento significativo
no número de grupos não afetava negativamente os algoritmos baseados em
distância dos pontos, como o K-means e o K-medoids, pois muitos dos grupos
excedentes eram descartados, ficando vazios, ou conti nham poucas músicas
com características ligeiramente divergentes do grupo maior que rodeavam.
Foram testados diversos outros al goritmos, tais como Mean-shift
clustering, Self Organized Maps, Agrupamento por Nedes Neurais Artificiais,
Agrupamento hierárquico, Support Vector Clustering, Fuzzy C-Means.
Entretanto, consegui u-se obter resultados relevantes apenas com a utilização
dos dois primei ros métodos. Para os demais, buscou-se técnicas para
normal ização dos dados e redução de sua dimensionalidade, tais como PCA
(Principal Component Analisys), além de realizar modificações nos parâmetros,
mas não foi possível fazer os métodos convergirem para um resultado factível,
gerando agrupamentos com uma música somente em cada classe ou mais de
80% de toda a base em uma única cl asse. A técnica fuzzy testada apresentou
bom funcionamento e apresenta a vantagem do agrupamento fuzzy ser mais
natural ao cérebro humano, porém sua utilização dentro do comitê de máquinas
demandaria a análise e implementação de uma função fuzzy para a obtenção do
voto, o que demandaria um esforço significativo que desviaria do foco principal
deste projeto.
A estrutura utilizada para geração dos modelos de agrupamento é
apresentada na Figura 4. Esta é a parte inicial do comitê de máquinas
implementado, o qual utiliza o conceito de Bagging, onde os classificadores são
treinados independentemente ou, neste caso, os modelos de agrupamento são
gerados por cada algoritmo independentemente e cada um gera uma resposta.
Neste projeto foram gerados 50 modelos diferentes, através da combinação das
técnicas K-means (com o parâmetro k igual a 50 e 250), K-medoids (com o
parâmetro k igual a 50 e 250) e Self Organizing Maps, com dez dos conjuntos de
características extraídos do software MARSYAS, dentre estas o conjunto padrão,
18
somente MFCCs, somente características ti mbrais, somente características de
espectro, somente caracterís ticas de fluxo e somente características de energia.
Figura 4 - Estrutura de geração dos model os de agrupamento
19
Uma tentativa de gerar uma avaliação quantitativa que permitisse
comparar o desempenho dos diversos algoritmos foi realizada através da
geração do modelo de agrupamento utilizando apenas n-1 clipes de cada uma
das mús icas, assim como uma base de treinamento. O clipe restante de cada
uma das músicas foi classificado baseado neste modelo gerado, como uma base
de teste, buscando aval iar quantos destes clipes foram classificados na mesma
classe que o resto da música. Foi poss ível gerar valores numéricos de precisão
e erro, porém estes não são muito significativos, visto que uma mesma música
pode variar muito no seu decorrer, fazendo com que uma faixa não seja
necessariamente pertencente a um grupo somente.
3.4.5. Modelo de Agrupamento e Comitê de Máquinas
Suponha que ao receber um grupo de dados como o da Figura 5, o bloco
de aprendizado identifique o agrupamento mostrado na Figura 6. As estrelas
representam o dado de treinamento e X1, X2 e X3, a centroide dos grupos 1, 2 e
3, respectivamente. Neste caso, o modelo de agrupamento gerado é capaz de
identificar e isolar todos estes diferentes grupos existentes no conjunto de dados
e gerar uma etiqueta para cada uma das instâncias exis tentes dentro do grupo
de forma a permitir a identif icação de qual grupo cada ponto pertence. Cada
modelo de agrupamento gerado identifica características ligeiramente diferentes
dentro do conjunto de dados e realiza separações dentro destas identif icações,
fazendo com que certos pontos sejam classificados diferentemente.
A estrutura utilizada para o comitê de máquinas, apresentada na Figura 7,
se baseia em “votos” realizados por cada um dos model os gerados sobre a
classe do clipe amostrado, todos esses votos são repassados como parâmetros
de entrada a um preditor final, responsável por aplicar pesos definidos pelo
usuário para cada um dos modelos e gerar a resposta final. Para definir se a
amostra deve ou não ser incluída na playlist de recomendação, o preditor f inal
deve receber um número mínimo de votos (também definido pelo usuário), que
representa o quão genérica ou específica a recomendação deve ser.
20
Figura 5 - Exemplo de Dados
Figura 6 - Exemplo de agrupamento
21
Figura 7 - Es trutura de coleta de votos
3.4.6. Player
Este bloco implementa um simples player de músicas gráfico e um
algoritmo de suges tão de músicas, realizando a interface entre o s istema e o
usuário. Permite realizar a reprodução das músicas pertencentes à base de
dados e realizar a requisição da recomendação a parti r da s imilaridade com a
música ou trecho de música selecionado. Após a requisição, o algoritmo de
recomendação será responsável pela compilação de uma nova playlist contendo
apenas mús icas ou trechos da mesma classe desta.
3.5. ESPECIFICAÇÕES TÉCNICAS
Este tópico traz as especi ficações técnicas para os blocos implementados
citados na seção 3.4.
3.5.1. Extração de Caracterís ti cas
Framework: MARSYAS (Music Analysis, Retrieval and Synthesis for
Audio Signals) Versão 0.5;
Entrada: Música ou conj unto de músicas;
Saída: Conjunto de dados numéri cos que representam as características
sonoras.;
22
Detalhes da Implementação: Realiza a análise do sinal de áudio e
realiza a extração de uma matriz de valores numéricos que representam diversas
características sonoras capazes de representar a faixa musical, através do uso
de funções providas pelo software MARSYAS Framework [25].
3.5.2. Aprendizado de Máquina
Linguagem: MATLAB R2015b;
Entrada: Conjunto de vetores de características (ver seção 3.4.3) para
cada uma das mús icas presente no feature set de treinamento;
Saída: Modelo de classificação, parâmetros para recriação do modelo no
classificador;
Detalhes de Implementação: Bloco responsável pela geração dos
modelos de agrupamento utilizados para o processo de votação. As técnicas a
serem testadas i ni cialmente serão K-means, K-medoids e Self Organizing Maps
(SOM).
3.5.3. Comitê de Máquinas
Linguagem: MATLAB R2015b;
Entrada: Modelos de agrupamento
Saída: Músicas que devem ser i nseridas na playlist
Detalhes da Implementação: Este bloco implementa um comitê de
máquinas do tipo Bagging, onde cada um dos modelos de agrupamento gerados
separadamente através de al goritmos diferentes dão um “voto” para a definição
da classe da música. Estes “votos” são ponderados de acordo com o peso
definido para cada um dos al goritmos e geram uma nota que serve para defi nir
a qual classe uma música mais se assemelha.
3.5.4. Player
Linguagem: MATLAB R2015b;
23
Entrada: Votos do comitê de máquinas. Base de músicas;
Saída: Reprodução das mús icas da base de dados e recomendação de
acordo com a requisição recebida. A recomendação será dada no formato de
uma playlist;
Detalhes da Implementação: Este bloco implementa um player de
músicas que inicialmente reproduz uma playlist aleatória como todas as músicas
da base de dados. A partir de uma música que es teja em reprodução é possível
solicitar a recomendação de músi cas parecidas ao pressionar um botão. O
algoritmo de recomendação então será responsável por buscar músicas que
estejam enquadradas na mesma classe de agrupamento desta e montar uma
playlist que será retornada ao usuário.
4. EMBASAMENTO TEÓRICO
Nesta seção são apresentados conceitos teóricos necessári os para o
entendimento mais aprofundado do projeto em questão.
4.1. VISÃO GERAL
A vasta maioria dos sistemas de classificação mus ical ou de análise de
similaridade mus ical es tudados na atualidade seguem a mesma estrutura
básica, dividida em quatro blocos fundamentais, conforme apresentado na
Figura 1.
Cada faixa mus ical, uma função do tempo pel a amplitude (ou uma tupla
de amplitudes, para o caso de múlti plos canais), é representada digitalmente
como uma sequênci a finita de amostras discretas à uma taxa de amostragem
fixa, sendo que as taxas mais comuns variam entre 11 a 44,1 kHz, fazendo com
que cada canal possa ser composto por milhões de valores diferentes.
Geralmente esses valores são normali zados e podem ser convertidos para um
único canal [27].
24
Ao invés de lidar com uma faixa musical por completo de uma vez, utiliza-
se um módulo de extração de característica locais. Tal módulo realiza a divisão
de uma mús ica em pequenos segmentos, geralmente com tamanho fixo na
ordem de mili ssegundos, com possíveis trechos sobrepos tos, chamados de
quadros (frames). Estes sofrem transformações matemáti cas separadamente ou
em um grupo de elementos próximos, de forma a obter uma sequência de
características (features) locais. A segmentação do áudio em diversos quadros,
apesar de não ser necessário para a extração de todas as características
(aspectos como a energia do envelope e descritores globai s do áudio não
necessitam de segmentação), permite que a variabil idade dos valores de entrada
seja reduzida, bem como reduz o poder computacional necessário para a
realização das transformações. Porém, além disso, outra justificat iva para
realizar a extração de características locais do áudio vem do fato de que a
percepção humana de uma música também acontece em pequenos pedaços,
não uma música inteira de uma só vez [27].
O próximo passo trata da criação de um modelo global para a mús ica.
Apesar de uma faixa poder ser representada somente pel as característ icas
locais, esta não é uma abordagem viável , pois cada uma das caracterís ti cas,
extraídas a uma frequência de aproximadamente 50 Hz, constituem um conjunto
de valores de uma magnitude próxima a dos dados ori gi nai s. Além disso, como
muita informação dentro destas características é redundante (existem muitos
fragmentos de uma música que são similares ou iguais entre si) ou não é
relevante (períodos de silêncio, por exemplo). A criação de um modelo global da
faixa musi cal deve capturar aspectos relevantes do conjunto de caracterís ticas
e descartar detalhes desnecessários. Para tal, modelos estatísticos complexos
podem ser uti lizados, porém um exemplo simples seri a realizar a média de cada
um dos valores locais de cada característica [27].
Com o modelo representativo da mús ica gerado, a classificação da faixa
dentro de um dos gêneros musicais se dá através da estimativa e comparação
da sua similaridade com o modelo representativo de cada gênero. Dependendo
do tipo do modelo, diferentes medidas de distância podem ser aplicadas, sendo
necessária a análise de acordo com as característ icas locais em que o modelo
25
se baseia. A dis tância calculada entre dois modelos geralmente não pode ser
interpretada por s i só, mas deve ser comparada com outras distâncias de forma
a obter relações indicando que uma música é mais próxima a um gênero X do
que a um gênero Y, por exemplo. Também é possível uti lizar tais valores para
produzir uma visualização de uma coleção de músicas, apresentando sua
classificação [27].
4.2. EXTRAÇÃO DE CARACTERÍSTICAS SONORAS
Diferente de outros tipos de dados utilizados em Aprendizado de Máquina,
o áudio consiste em séries temporais geralmente mui to grandes. A parti r de uma
taxa de aqui si ção de 44,1kHz, comumente util izada para músicas digitais, uma
faixa de apenas três minutos produz um vetor de dados com aproximadamente
8 milhões de valores diferentes. Essa quant idade dados, além de muito grande,
também possui i nformações ruidosas e redundantes para análise. Além disso,
como o comprimento de uma música varia dentro de uma faixa temporal muito
ampla, a quantidade de dados extraídos diretamente do sinal de áudio de cada
faixa varia muito, sendo que as técnicas de classificação utilizadas atualmente
dependem de uma escala, de certa forma, fixa [3], [22].
Dessa forma, a tarefa mais importante para o processamento automático
de áudio é a extração de um conjunto de fixo de características das formas de
onda do sinal sonoro, criando um espaço de varáveis menor e simplificando a
análise [3], [13], [22]. Esse conjunto de características tem como objetivo
representar diferentes aspectos sonoros e musicais de uma forma concisa,
contendo informação relevante para a identificação e reconhecimento de
padrões, sendo que, analogamente a quantidade de dados de treinamento
utilizado para qualquer técnica de Aprendizado de Máquina, quanto mais
características distintas forem extraídas de cada i tem, melhor deve ser o
desempenho obtido na tarefa de classificação. Entretanto, o objeti vo da extração
de características é obter o conjunto de informações que mel hor representa o
áudio, utilizando o menor número de aspectos possível, já que a extração e uso
de uma quant idade i mensa de dados leva novamente ao problema de que dados
26
com grande dimensionalidade causam um processo de aprendizado mais
demorado, i ndependentemente do algori tmo uti lizado [28].
Figura 8 - Exemplo de características MFCC extraídas de uma amostra da fai xa
Wolfmother - Cosmonaut
O processo de escolha de quais características devem ser utili zadas é
fortemente dependente da tarefa que se deseja realizar. Para um processo de
classificação musical, existem diferentes pontos de vista di ferentes pelos quais
as faixas podem ser agrupadas. Por exempl o, para agrupar músicas de acordo
com o vocalista ser homem ou mulher, um grupo de características que
representem aspectos vocais, assim como os utilizados para processos de
reconhecimento de voz, são mais importantes que características de ritmo ou
instrumentos. Porém, mesmo para uma tarefa definida, diferentes grupos de
características podem apresentar níveis de desempenho distintos, sendo
necessário que os métodos de Aprendizado de Máquina sejam flexíveis o
suficiente para lidar com diferentes grupos de caracterís ti cas e permitir a
avaliação de seu comportamento [22].
Diferentes tipos de características são necessários para possibilitar o
discernimento entre di ferentes gêneros mus icais. A utilização de apenas
características acústicas que representam o timbre, tais como os MFCC (Mel-
Scale Frequency Cepstral Coeficient) (Figura 8), ut ilizada em muitas abordagens
de classificação musical, não apresentam informações suf icientes para
identificação do gênero musical. Isso se deve ao fato das propriedades musicais
divergirem muito de um gênero para outro, fazendo com que certos es ti los sejam
27
melhor descri tos por padrões de batida, como muitas das vertentes da música
eletrônica, ou pela combinação de frequências de diferentes instrumentos, tais
como mús ica clássica ou rock, por exempl o [13].
4.2.1. Tipos de características
As características que podem ser extraídas diretamente de um sinal de
áudio podem ser util izadas para criar diferentes níveis de representação para
uma música (Fi gura 9) [29].
São consideradas características de baixo nível as que se rel acionam
diretamente com o sinal, tais como o nível de energia eficaz (RMS), centroide
espectral, taxa de cruzamento de zero (zero crossing rate, ZCR), frequênci a de
desvi o central , razão de energia de banda, envelope espectral e cepstrum. Essas
características são fortemente associadas as propriedades e ao formato
assumido pel o sinal de áudio.
As características de médio nível são as que, através de transformações
ou modelamentos matemáticos, buscam se aproximar de uma forma de
representar a percepção humana do sinal de áudio, extraído características mais
abstratas, como batidas , ADSR (Attack, Decay, Sustain, Release), tonalidade e
MFCC.
Já as características de alto nível, são características totalmente abstratas
e, em alguns casos subjetivas. Englobam conceitos como o humor musical e
estilos, não sendo importantes para o tipo de cl ass if icação que se pretende por
este estudo.
28
Figura 9 - Níveis de Representação
As diversas características do áudio podem ser dividas como temporais,
quando analisadas diretamente a partir do sinal em função do tempo, ou
espectrais, quando extraídas do espectrograma resultante do sinal que sofreu
uma transformada de Fourier, por exemplo. Além disso, as características
extraídas podem ser globais, quando são extraídas utilizando informações do
sinal como um todo, ou instantâneas, quando analisadas a partir de pequenos
fragmentos isol ados do sinal. Como apresentado na Figura 10, as características
de um sinal de áudio podem representar aspectos temporais, de energia, com
relação ao formato do sinal (em relação ao tempo) ou espectrograma (em função
da frequência) e modelamentos harmôni cos ou perceptuais (cal culados através
de um modelo do ouvido humano) [1] , [27], [29], [30].
29
Figura 10 - Tipos de Caracterís ticas
Apesar de algumas características poderem ser extraídas do sinal de
áudio como um todo, como é o caso do envelope energético e dos descritores
temporai s globai s, a maioria dos dados utilizados para MIR são descritores
instantâneos. Sua extração, apresentada na Figura 11 se dá através da divisão
de uma faixa em diversos blocos de tamanho na ordem de milissegundos. O
tamanho exato para cada bloco varia de acordo com a abordagem, mas em geral
tenta-se balancear o tamanho de forma que o quadro seja pequeno o suficiente
para continuar sendo considerado instantâneo, mas que não seja pequeno
demais e sofra com grande variação entre um ins tante e outro. Também é
comum utilizar quadros que se sobreponham, de forma a aumentar
artificialmente a resolução de tempo [1], [27], [29], [30].
30
Figura 11 - Visualização do processo de divisão em quadros
4.2.2. Coefici entes Cepstrais da Escala Mel (MFCC)
As bandas Mel, apresentadas na Figura 12 são uma das tentativas de
modelar o comportamento do sistema auditivo humano através de um grupo de
filtros passa-faixa. São baseadas na escala Mel, a qual é linear para baixas
frequências (abaixo de 1000 Hz) e logarítmica para frequências mais altas [30],
[31].
Figura 12 - Modelo de banco de filtros representativo da Escala Mel
31
Os coeficientes cepstrais da escala Mel são uma variação do cepstrum
linear, calculados a partir do cepstrum de escala Mel. Originalmente
desenvolvidos para analisar dados de series temporai s para eco, foram
reconhecidas como características úteis para sistemas de reconhecimento de
voz, devido a sua habilidade de representar o espectro auditivo de forma
compacta. Além disso, são capazes de fornecer informações importantes para o
reconhecimento de padrões. No campo da MIR, os MFCCs apresentam uma das
formas de descrever o timbre ins tantâneo característ ico de uma música [30].
O diagrame de blocos para o cálculo dos MFCCs é apresentado na Figura
13. Primeiramente o áudio é decompos to em uma sequência de quadros
sucessivos, os quais são convertidos para o domínio da frequência, através de
uma transformada de Fourier e, em seguida, são convertidos para o espectro da
escala Mel, através da aplicação dos diversos fi ltros. Geralmente uti liza uma
aproximação com 40 bandas de frequência. O envelope des te espectro na
escala Mel é descrito pelos coef icientes, que são obtidos com a apl icação de
uma transformada discreta de cosseno sobre o logaritmo do espectro. Esse
processo gera um grande número de coefi cientes, sendo que para aplicações
práticas uma aproximação através dos primeiros 13 coeficientes se mostra
suficiente [27], [30] .
Figura 13 - Diagrama de Blocos da extração de MFCCs
32
4.2.3. Modelamento ADSR
ADSR é o acrônimo para Attack, Decay, Sustein, Release (Ataque,
Decaimento, Sustentação e Repouso). Se trata de uma das técnicas mais
comumente utilizadas para detectar e modelar o envelope energético de um sinal
sonoro em relação ao tempo. Esta técnica permite a identificação de períodos
de quatro fases dis tintas de um som (ou uma nota musi cal) , como pode ser
observado na Figura 14, onde as variações na velocidade em que cada fase
acontece permitem avaliar sinais com sonoridade similar [30], [32].
Figura 14 - Fases ADSR
A fase de ataque simboliza o início de um som, ou seja o tempo que a
intensidade sonora l eva do silêncio até sua amplitude máxi ma. O formato de um
33
ataque permite com que algumas características sobre o som seja inferidas ,
como o instrumento que o produziu, por exemplos. No caso de instrumentos de
sopro o ataque se dá de forma mais suave, já no caso de um tambor, o ataque
é mais curto e mais intenso [30], [32].
O decaimento acontece logo após ao ataque, caracterizando a queda na
intensidade antes de se estabilizar. É resultade do excesso de energia colocado
para iniciar a produção sonora, que não é necessária para manter o som sendo
produzido. Normalmente é um fenômeno muito rápido e, em certos casos, onde
o ataque é suave, não chega a acontecer [30], [32].
A sustentação corresponde ao tempo de duração de uma nota musical,
onde a intensidade energética do som é mantida em um nível contante ou
próximo disto. Existem ins trumentos que permitem a execução de um período
de sustentação, tais como instumentos de sopro ou corda. Porém uma
percussão, por exemplo, tem um período muito curto, quando não inexistente
[30], [32].
A fase de Repouso ou Relaxamento simboliza o final da nota, período
onde a intensidade sonora se reduz até o silêncio novamente. Novamente, seu
período de ocorrênci a varia de acordo com o instrumento que produz a nota,
podendo ser rápido e brusco, como quando um ins trumentista de sopro tapa o
fluxo de ar de seu i nstrumento, ou ser gradual e longo, como em um piano com
o pedal de sustentação acionado, por exemplo [30], [32].
4.2.4. Outras características
Exis tem outras propriedades do sinal de áudio que também podem ser
extraídas e exploradas de forma a contribuir com o desempenho do processo de
classificação.
Dentre as características temporais (Figura 15), a análise da energia
eficaz do sinal permi te que se determine o envelope energético do sinal de áudio,
a partir de onde pode-se obter características como locali zação dos ataques e
centroide temporal , além de permitir a análise da intensidade geral da faixa [30].
34
O uso do ZCR mostra a análise de quantas vezes o sinal de áudio mudou
de positivo para negativo, permitindo verificar a variação presente no ins tante de
avaliação. É um coef iciente útil para verifi car a presença ou não de silencio no
quadro de áudio sendo analisado. Sendo um quadro em silêncio, por não possuir
informações rel evantes, o mesmo pode ser descartado [30].
A razão de baixa energia realiza uma análise da quantidade de quadros
no interval o capturado que estão abaixo da média RMS. Consequentemente, é
possível ident ificar momentos de menor intensidade dentro de uma faixa [30].
Figura 15 – Exemplo de características temporais da faixa Groove Armada –
Whatever, Whenever.
Após a trans formada de Fourier, algumas características interessantes
também podem ser extraídas a partir do espectro de frequência obtido. Dentre
estas, a entropia espectral calcula o desarranjo do sinal de áudi o, medindo a
quantidade de variação existente na distribuição de frequências do mesmo. A
medida do fluxo espectral é calculada quadro a quadro, realizando a subtração
do bloco atual pelo anterior, permitindo que se obtenha indicativos de quão
rápido ocorre a variação do sinal [30].
O centróide espectral representa o bari centro do espectro, sendo
calculada considerando o espectro como uma distribuição onde os valores são
35
as frequências do espectro e as probabilidades são dadas pela sua ampli tude.
Tem relação com a energia relativa entra a maior e menor frequência e permite
realizar inferências quanto ao brilho do sinal [33]. Além disso, a assimetria
espectral e o achatamento da onda permitem realizar i nferências quanto a
características timbrais do áudio [30].
4.3. COMITÊS DE MÁQUINA
Em problema padrão de classificação por Aprendizado de Máquina, dado
um conjunto de dados de trei namento, o algoritmo de aprendizado tem a tarefa
de gerar um classificador de saída, o qual é uma hipótese sobre a real função
matemática que mapeia as caracterís ti cas de entrada a sua respectiva classe.
Gerando-se vários preditores diferentes , sel ec iona-se o que fornece a maior
precisão (ou menor erro) para a apli cação. Porém, em alguns casos, a precisão
pode ser aumentada utilizando a combinação da saída de diversos
classificadores [34].
Um comitê de máquinas é um grupo de preditores que têm suas decisões
combinadas de alguma forma (tipicamente através de votação ponderada ou
não) para class ificar um novo exempl o. Uma das áreas mais ativas na pesquisa
de Aprendizado de Máquina tem sido na busca de metodologias de construção
de melhores comitês de máquinas. Geralmente o uso de tal técnica torna o
algoritmo mui to mais poderoso e preciso quando comparado a classificadores
individuais . A combinação de preditores tem sido recomendada principalmente
para probl emas que não são resolvidos satisfatoriamente por um único
classificador [34], [35].
A condição necessária e suficiente para que um comitê de máquinas seja
mais preciso do que seus membros individualmente é que os mesmos sejam
precisos por si só e diversificados. Um classificador preciso é aquele que possui
uma taxa de erro menor do que s implesmente suposições aleatórias para um
novo exemplo. Dois classificadores são diversos se el es comentem erros
diferentes em novos dados. Essas duas características permitem que os dados
36
sejam analisados de forma diferente por cada um dos preditores e a maioria
decida corretamente pela etiqueta a ser defi ni da [34], [35].
Exis tem três razões que suportam o uso de comitês de máquinas. A
primeira del as é es tatística. Pelo fato dos algori tmos de aprendizados realizarem,
essencialmente, uma busca, em um espaço de hipóteses, pela hipótese que
mais se adequa aos dados, quando não se possui um conjunto de dados grande
o suficiente, o algoritmo pode acabar chegando a diversos pontos que são
“igualmente ideais” para seu conjunto de treinamento. A construção de um
comitê de máquinas permite que todas essas hipóteses sejam consi deradas em
uma “hipótese média”. Essa situação é representada no canto superior esquerdo
da Figura 16 [34].
A segunda razão é computacional. Como muitos algoritmos de
aprendizado funcionam realizando uma busca local, estes podem ficar presos a
pontos ótimos locais. Além disso, quando exis te dados com dimensionalidade
muito grande, torna-se difícil e computacionalmente caro obter a melhor hipótese
possível. Nestes casos, um comitê de máquinas permite que a busca local seja
realizada a partir de diversos pontos de início, podendo fornecer uma
aproximação melhor para a função real desconhecida. Esta situação é
apresentada no canto superior direito da Figura 16 [34].
A terceira razão é de representação. Em muitas aplicações de
Aprendizado de Máquina, a função matemática que realmente representa os
dados não pode ser representada dentro do plano de busca de hipóteses do
algoritmo. Dessa forma, pela reali zação de somas ponderadas das hipóteses de
diversos classif icadores, é possível obter espaços de busca mais compl exos e
aproximações melhores à função real. Essa situação é representada no canto
inferior da Figura 16 [34].
37
Figura 16 - Razões fundamentais que suportam o uso de comitês de máquinas
O comitê é defini do pela seleção de k preditores e pela função que reali za
a combinação dos mesmos. Para tal existem di ferentes abordagens diferentes
que podem ser seguidas. Os c lassificadores podem ser extraídos do treinamento
de u mesmo conjunto de treinamento ou de vári as sub-amostras do conjunto de
dados. Além disso, pode-se gerar os classificadores utilizando um mesmo
algoritmo de Aprendizado de Máquina, denominados preditores homogêneos, ou
utilizando algori tmos diferentes, conhecidos como preditores heterogêneos.
Dentre as técnicas mais frequentemente utilizadas para a combinação de
preditores homogêneos se encontram os métodos de bagging e boosting. Já
para predi tores heterogêneos, o mais utilizado é o método stacking [35].
4.3.1. Bagging
O método descrito por Breiman et al. [36] recebeu o nome de bootstrap
aggregating, de onde surgiu a nomencl atura bagging, comumente utilizada. É a
38
técnica mais direta utilizada para agregar classificadores gerados pelo mesmo
algoritmo de Aprendizado de Máquina utilizando a manipulação dos dados de
treinamento. Es te método propõe a criação de várias amostras de um conjunto
de treinamento, denominadas bootstrap. Tais amostras são formadas tomando-
se aleatoriamente el ementos do conjunto de treinamento com repet ição, até que
seja obtida uma amostra do mesmo tamanho do conjunto original, onde alguns
elementos aparecem mais de uma vez e outros não aparecem. [34], [35]
Esses bootstraps são utilizados como novos conjuntos de treinamento
para a geração de novos classificadores, que representam hipóteses
ligeiramente diferentes. A visualização deste processo acontece na Figura 17. A
fim de gerar o preditor fi nal, todos os class ificadores gerados são combinados
por meio de uma votação não ponderada, para problemas de classificação.
Geralmente, o uso desta técnica permite que algoritmos i ns táveis tenham
aumentos de desempenho consideráveis. Porém, ao mesmo tempo em que se
ganha precisão, perde-se a estrutura simples e interpretável do classificador.
Figura 17 - Exemplo de combinação Bagging
39
4.3.2. Boosting
O método Boosting proposto por Freund e Shapire [37] é outra técnica
que permi te combi nar classif icadores homogêneos. Na teoria, pode ser utilizado
para reduzir o erro de um al goritmo “fraco”, o qual tem um desempenho
ligeiramente mel hor do que classificações aleatóri as [35].
A técnica de Boosting se baseia na utilização de um mesmo algoritmo
treinado com distribuições diferentes de um conjunto de treinamento, sendo que
a distribuição é alterada de acordo com os erros cometidos pelo preditor anterior
[35].
Um dos algoritmos de Boosting utilizados é o AdaBoost [38]. Este
algoritmo mantém uma série de pesos sobre os exempl os de treinamento e, a
cada interação, o algoritmo de aprendizado busca minimizar o erro ponderado
deste conjunto de treinamento e retorna uma hipótese. O erro então é
computado e utilizado para atualizar os pesos associados a cada um dos
exemplos de treinamento, de forma que os exemplos classificados
incorretamente causem maior penalidade para o próximo classificador a ser
treinado. Esse processo pode ser observado na Figura 18. O classificador final
é construído a partir da soma ponderada de cada um dos votos de cada
classificador.
Figura 18 - Exemplo de combinação Boosting
40
4.3.3. Stacking
O método Stacking, também chamado de Stacked Generalization,
proposto por Wolpert [39] visa combinar diferentes preditores gerados por
algoritmos de Aprendizado de Máquina distintos, utilizando o mesmo conjunto de
dados de treinamento original.
Este método uti liza uma arquitetura em camadas. Os classificadores da
primeira camada recebem como entrada o conjunto de dados original e, a partir
destes, geram sua hipótese representativa dos dados. Uma ou mais camadas
sucessivas recebem como entrada as predi ções das camadas anteriores, bem
como o conjunto de dados original, e fornecem uma saída da mesma forma para
a próxima camada. Um único algoritmo de aprendizado no último nível fornece
a predição final [35].
O Stacking é uma tentativa de mini mizar o erro de generalização,
utilizando preditores em camadas mais altas de forma a aprender os erros
cometidos pelos predi tores imediatamente abaixo. Esse modelo utiliza a
estratégia “ganhador ganha tudo”, onde apenas o c lassificador com menor erro
é selecionado. O papel dos classificadores é, então, aprender como os anteri ores
erram e em quais exempl os el es discordam e usar esse conhecimento para fazer
melhores predições [40]. A ideia geral por trás desta metodologia é a
possibilidade de existi r uma maneira mais inteligente de utilizar um conjunto de
classificadores. A Figura 19 ilustra esta arquitetura com um exemplo de duas
camadas [35].
41
Figura 19 - Exemplo de combinação Stacking
5. PROCEDIMENTOS DE TESTE E VALIDAÇÃO DO PROJETO
Este tópico discutirá os testes necessário para a validação funcional do projeto em questão.
5.1. TESTES DE CAIXA PRETA
Aqui serão listados os testes de caixa preta que validam o sistema, estes
são testes do ponto de vista do usuário.
5.1.1. Reprodução de Música
O objetivo deste teste é validar a capacidade do módulo player de
reproduzir as músicas para o usuário. A música deve ser reproduzida ao se
seguir os segui ntes passos:
1. O usuário inicia o aplicativo;
2. A interface é carregada com uma playlist aleatória criada sobre toda
a base de músi cas;
42
3. O usuário clica no botão Play;
4. A música é reproduzida.
Caso o usuário seja capaz de ouvir a música sendo reproduzida este
módulo é validado.
5.1.2. Controles do Player
O objetivo deste teste é validar a capacidade do módulo de aplicat ivo em
realizar as funções do player de música. Para tanto, caso algum dos botões da
interface gráfica seja pressionado pelo usuário, a funcional idade correspondente
deve ser executada.
1. Caso o botão de avanço de música sej a pressionado, a próxi ma
música da playlist atual deve ser i niciada;
2. Caso o botão de avanço de trecho de música seja pressionado, o
próximo trecho da música atual deve ser iniciado, caso não hajam
mais trechos disponíveis a próxima música da playlist atual deve
ser iniciada;
3. Caso o botão de retrocesso de mús ica sej a pressionado, a música
anterior da playlist atual deve ser i niciada;
4. Caso o botão de retrocesso de trecho de música sej a pressionado,
o trecho anterior da mús ica atual deve ser iniciado, caso o trecho
atual seja o primeiro a música anterior da playlist atual deve ser
iniciada;
5. Caso o botão Pause seja pressionado, a música deve ser pausada
no tempo atual e retomada no mesmo momento assim que o botão
play for pressionado;
6. Caso o botão Stop seja pressionado, a música atual deve ser
interrompi da e uma nova playlist aleatória sobre toda a base de
músicas deve ser gerada;
5.1.3. Obtenção de Recomendação sobre Música
O objetivo deste teste é validar a capacidade do s istema de interpretar a
requisição do usuári o de recomendar conteúdo com base em uma música, e
43
retornar uma playlist com base no model o de agrupamento. Para tanto deve-se
seguir os segui ntes passos:
1. Iniciar a execução da playlist aleatória inicial;
2. Durante a execução de uma música requisitar a recomendação de
conteúdo, clicando sobre o botão “+”;
3. O sistema verifica o modelo de agrupamento e busca músicas com
mesma classificação que qualquer trecho da música atual;
4. O sistema retorna uma playlist de recomendações, de acordo com a
solicitação do usuário.
Caso o usuário receba a classificação e seja capaz de executar a playlist
retornada, o módulo de recomendação por música é cons iderado validado.
5.1.4. Obtenção de Recomendação sobre Trecho
O objetivo deste teste é validar a capacidade do s istema de interpretar a
requisição do usuári o de recomendar uma música baseada no trecho atual,
buscar trechos de músicas com mesma classificação no modelo de agrupamento
treinado e retornar uma playlist com os trechos semelhantes. Para tanto deve-
se seguir os segui ntes passos
1. Iniciar a execução da playlist aleatória inicial;
2. Durante a execução de uma música requisitar a recomendação de
conteúdo, clicando sobre o botão “++”;
3. O sistema verifica o modelo de agrupamento e busca músicas com
mesma classificação que trecho da música reproduzido no momento;
4. O sistema retorna uma playlist de recomendações, de acordo c om a
solicitação do usuário.
Caso o usuário receba a classificação e seja capaz de executar a playlist
retornada, o módulo de recomendação por música é cons iderado validado.
5.1.5. Obtenção de Recomendação sobre Classe
O objetivo deste teste é validar a capacidade do s istema de interpretar a
requisição do usuári o de recomendar uma música com base em uma classe e
retornar uma playlist. Para tanto deve-se seguir os segui ntes passos:
44
1. Informar a classe desej a no campo de texto;
2. Clicar no botão play;
3. O sistema verifica o modelo de agrupamento e busca músicas com um
ou mais trechos pertencentes à classe informada;
4. O sistema retorna uma playlist de recomendações, de acordo com a
solicitação do usuário.
Caso o usuário receba a classificação e seja capaz de executar a playlist
retornada, o módulo de recomendação por classe é considerado validado.
5.2. TESTES DE CAIXA BRANCA
Nesta seção serão discutidos os testes que certificam o funcionamento
interno do sistema.
5.2.1. Consistência de Dados
O primeiro teste de caixa branca tem como objetivo verificar a presença
dos arquivos necessários para a execução do programa e capacidade de extrair
informações dos mesmos. Será executada a verificação de formato, consistência
e completude dos arqui vos.
Esta verificação será realizada pela execução do teste uni tário
relacionado aos arquivos de configuração. Caso nenhum erro seja retornado os
dados de configuração serão considerados consistente, bem como o módul o que
realiza sua l ei tura.
5.2.2. Disponibilidade de Dados
Este teste tem como objetivo certif icar a disponibi lidade dos dados
necessário para a execução do programa. Ao executar o programa, este
veri ficará a existência dos arquivos necessários para sua execução, ou seja,
base de músi cas e o modelo de agrupamento, no caso do módulo de aplicativo.
Caso algum dos arqui vos não existam será exibida uma mensagem de erro e o
teste falhará. Caso contrário o teste passará.
45
Este teste será realizado executando o teste uni tári o relacionado ao banco
de dados, que verificará a capacidade de comunicação. Casos nenhum erro seja
retornado es te teste será validado.
5.2.3. Convergência de Algoritmos
Neste teste será veri ficada a propriedade de convergênc ia dos algoritmos
de Aprendizado de Máquina. Ao executar o módulo de treinamento o bloco de
Aprendizado de Máquina deve ser capaz de encontrar uma resposta e, a partir
de um critério de parada, encerrar a execução do processo de treinamento. Caso
este critério seja atendido, o bloco de aprendizado de máquina será cons iderado
como val idado.
Este requi si to será atendido através da execução e observação do
processo de treinamento, bem como da execução do teste unitário rel acionado
ao módulo de treinamento. Caso o al goritmo encontra uma a resposta e os testes
não retornem erros o módulo de trei namento será considerado validado.
5.2.4. Recomendação
A partir deste teste pretende-se confirmar a capacidade de realizar
recomendações de músicas. Ao receber a requisição de recomendação sobre
uma música, o sistema deve ser capaz de ident ificar sua classe, acessá-la,
recuperar suas músicas e retorná-las em forma de playlist ao usuário. Caso isto
ocorra este bloco estará validado.
6. AVALIAÇÃO
O uso de uma aval iação objetiva para um problema de s imilaridade
musical é um tanto problemáti co, pois como a noção de “si milaridade” em uma
música é um conceito altamente subjetivo, a tarefa que medir quantitativamente
a efetividade de um sistema nesse quesito é uma tarefa compl icada [41].
Realizar avaliações do modelo de similaridade baseadas na comparação através
46
do uso de metadados pode não ser relevante, pois duas músicas de um mesmo
artista, por exemplo, podem não soar pareci das entre si [2].
Desta forma, o procedimento que se mostra mais adequado é a condução
de uma avaliação subjetiva. A metodologia proposta por Aucouturier e Pachet [2],
faz o uso de um usuário para o qual é apresentada uma música objetivo S e duas
músicas de teste A e B, tendo este que decidir, entre A e B, qual a mais similar a
S. Assim pode-se comparar o resultado obtido com as distâncias entre A/B até
S. Outra forma de conduzir um processo de avaliação subjetivo seria no estilo
de uma pesquisa, onde o usuário avalia o resul tado obti do através de uma nota.
Esta também pode ser levando em conta como uma peso de penalização para
aprimorar o desempenho do sistema em dados classificados incorretamente.
Entretanto, de forma a se obter uma form a de comparação com outras
abordagens na li teratura, é possível realizar uma análise grosseira do
classificador do sistema através da classificação em gêneros musicais
propriamente ditos. Pode-se utilizar a divisão em gêneros musicai s de forma a
realizar um treinamento supervisionado no algoritmo classificador, verificando,
assim, seu nível de precisão e acurácia. Além disso, o efeito causado pelo uso
de diferentes características do áudio também pode ser avaliado
quantitativamente. Apesar dos benefícios, o uso de tal abordagem não é capaz
de analisar a subjetividade do concei to de simil aridade, que é o estudo do
sistema, podendo gerar resultados que não representam a total capacidade do
sistema [41], [42].
47
7. RESULTADOS
O resultado gerado com o desenvolvimento do projeto é aplicat ivo de
player de músicas vol tado ao usuário final, bem como suas funcionalidades de
operação sobre os dados fornecidos pelos modelos de agrupamento gerados e
a base musical.
A interface desenvolvida, apresentada na Figura 20, é similar a de um
player de músicas comum, possuindo as funci onali dades de Play/Pause/Stop a
avanço e retrocesso de música. Porém, como as músicas presentes na base de
dados utilizadas es tão separadas em clipes, exis te também a possibilidade
avanço e retrocesso dos cli pes de uma mesma música (<|<| e |>|>).
Figura 20 - Player de Músicas
A principal funcionalidade e diferencial des ta interface são os botões “+” e
“++”, os quais reali zam a compilação de uma nova playlist baseada nas
recomendações efetuadas sobre o clipe ou música atual, respectivamente. Es tas
recomendações são realizadas baseando-se em votos recebidos pela
48
classificação realizada do clipe ou música por cada um dos 50 modelos gerados,
ponderados pelos pesos definidos no preditor final.
O player ainda possui a interface para configuração dos parâmetros
referentes aos pesos dados a cada modelo de agrupamento gerado (Figura 21),
possibilitando que a recomendação seja customizada para dar preferência a
certo tipo de característica sonora ou pelo agrupamento gerado por certo
algoritmo. Além disso, é possível realizar a alteração do número de votos
necessários para que a recomendação seja realizada, permitindo o controle de
quão parecidos os resultados recomendados devam ser.
Figura 21 - Interface para defi nição dos pesos de cada algoritmo
49
8. CONCLUSÃO
A evolução das tecnologias computacionais permitiu o desenvolvimento e
popularização da internet e seus serviços digitais. Essa mudança de paradigma
fez com que a classificação musical se tornasse um problema relevante – visto
que com a expansão de servi ços online de venda ou streaming de música, a
recomendação automática de novas músicas passou a ser um componente
indispensável para o sucesso de tais servi ços . Uma das possíveis abordagens
para enfrentar tal problema é vista na classificação e agrupamento mus ical
através de características simi lares, que podem ser mai s relevantes que o
gênero musical para este caso especif icamente.
Os resultados obtidos mostram que é possível realizar a recomendação
de músicas através da abordagem baseada em pseudo-gêneros musicais,
definidos de acordo com a similaridade sonora entre mús icas. Mesmo algoritmos
simples como K-means ou K-medoids se mostraram capazes de produzir um
agrupamento relevante.
Pela natureza subjetiva do problema estudado, há a dificuldade em definir
uma métri ca para avaliação da qualidade do agrupamento gerado, de forma que
permita a comparação de desempenho dentre os diferentes algoritmos.
Uma possibilidade para trabal hos futuros é o estudo de novos algoritmos
para complementar do comitê de máquinas desenvolvido, principalmente de
métodos baseados em lógica fuzzy ou em redes neurais, por melhor
representarem as divisões em grupos realizadas pelo cérebro humano e, como
desde o início a abordagem deste projeto foi buscar uma forma de
recomendação musical mais natural e relevante que a s imples divisão em
gêneros musicai s. Outro grande ponto de estudo é o desenvolvimento de uma
métrica para avaliação e comparação do desempenho entre os diferentes
algoritmos . Pode também ser desenvolvido um si stema que utili ze algoritmos
que analisem rel ações mais fracas entre as músicas, permitindo a
recomendação de conteúdo relativamente diferente do que o usuário já conhece.
50
O projeto como um todo foi uma grande oportunidade de aprendizagem
de diversos concei tos, desde as caracterís ti cas que podem ser utilizadas para
representar uma música, até os diversos algoritmos de agrupamento e seu
funcionamento. Assuntos como tratamento e preparação de dados, avaliação do
agrupamento e o estudo realizado sobre a área de recuperação de informação
musical também foram realmente interessantes para o aprendizado. Ao concluir
o projeto e verifi car que seu funcionamento atendeu as expectativas, foi
gratificante observar a superação das adversidades encontradas inicialmente.
51
9. REFERÊNCIAS BIBLIOGRÁFICAS
[1] M. M. F. Mckinney and J. Breebaart, “Features for Audio and Music Classification,” Proc ISMIR, vol. 4, pp. 151–158, 2003.
[2] J. Aucouturier and F. Pachet, “Music Similarity Measures : What ’ s the Use ?,” Ismir, p. 7, 2002.
[3] S. Li and G. Guo, “Content-based audio classification and retrieval using SVM learning,” First IEEE Pacific-Rim Conf. Multimedia, …, no. i, 2000.
[4] A. Smola and S. V. N. Vishwanathan, “Introduction to machine learning,” Methods Mol. Biol., vol. 1107, pp. 105–128, 2014.
[5] T. Esparza, “Computational Rhythm Similarity Development and
Verification Through Deep Networks and Musically Motivated Analys is by,” no. January, 2014.
[6] Z. Fu, G. Lu, K. M. Ting, and D. Zhang, “A survey of audio-based music classification and annotation,” IEEE Trans. Multimed., vol. 13, no. 2, pp.
303–319, 2011.
[7] Apple Inc., “iTunes.” [Online]. Available: www.apple.com/itunes .
[8] Google Inc., “Google Play Music.” [Online]. Available: https://play.google.com/music.
[9] “Spot ify.” [Online]. Available: www.spotify.com.
[10] S. Z. Li, “Content-based audio classification and retrieval using the nearest feature line method,” IEEE Trans. Speech Audio Process., vol. 8, no. 5, pp.
619–625, 2000.
[11] B. K. Baniya, D. Ghimire, and J. Lee, “Evaluation of different audio features
for musical genre classification,” pp. 260–265, 2013.
[12] A. van den Oord, S. Dieleman, and B. Schrauwen, “Deep content-based
music recommendation,” Electron. Inf. Syst. Dep., p. 9, 2013.
[13] A. Paradzinets, H. Harb, and L. Chen, “Multiexpert System for Automatic Music Genre,” no. June, 2009.
[14] L. Van Dijk and T. Heskes, “Finding musical genre similarity using machine learning techniques,” pp. 1–25, 2014.
[15] A. Ghosal, R. Chakraborty, B. Chandra Dhara, and S. Kumar Saha, “Genre-Based Classification of Song Using Perceptual Features ,” Adv. Intell. Syst.
Comput., vol. 243, pp. 267–276, 2013.
[16] Y. Costa, L. Oliveira, A. Koerich, and F. Gouyon, “Mus ic Genre Recognition
Based on Vi sual Features with Dynamic Ensemble of Classifiers Selection,” pp. 55–58, 2013.
[17] P. R. Lisboa de Almeida, A. de Souza Britto, E. J. da Silva Junior, L. E. Soares de Oliveira, T. Montes Celinski, and a. L. Koerich, “Music genre
classification usi ng dynamic selection of ensemble of classifiers,” Syst.
52
Man, Cybern. (SMC), 2012 IEEE Int. Conf., pp. 2700–2705, 2012.
[18] C. Nascimento, C. A. A. Kaestner, and A. L. Koerich, “Automatic Genre Classification of Latin Music Usi ng Ensemble of Classifiers,” IEEE Int. Conf.
Syst. Man Cybern., pp. 1687–1692, 2006.
[19] F. Jelinek, “Some of my Best Friends are Linguists Applying Information
Theoretic Methods : Evaluation of Grammar Quality,” 2004. [Online]. Available: http://www.lrec-conf.org/lrec2004/doc/jelinek.pdf.
[20] T. Bertin-Mahieux, D. P. W. Ell is, B. Whitman, and P. Lamere, “The million song dataset,” Proc. 21st Int. Conf. companion World Wide Web - WWW
’12 Companion, no. Ismir, p. 909, 2012.
[21] M. Hashi da, T. Matsui, and H. Katayose, “A New Music Database Describing Deviation Information of Performance Expressions,” Int. Conf. Music Inf. Retr., pp. 489–494, 2008.
[22] H. Homburg, I. Mierswa, B. Moeller, K. Morik, and M. Wurst, “A Benchmark Dataset for Audio Classification and Clustering,” Proc ISMIR, pp. 528–531,
2005.
[23] Apple Inc., “GarageBand.” [Online]. Available: http://www.apple.com/br/ios/garageband/.
[24] K. West, I. Uiuc, M. Mandel, M. Bay, J. S. Downie, and I. Uiuc, “Evaluation of algorithms using games: The case of music tagging,” no. Ismir, pp. 387–392, 2009.
[25] G. Tzanetakis and P. Cook, “MARSYAS : A framework for audio analysis,”
Organised Sound, vol. 4, no. 3, pp. 169–175, 1999.
[26] J. R. Jang, “Audio Signal Processing and Recognition,” 2011. [Online].
Available: http://www.cs.nthu.edu.tw/~jang.
[27] J. Schlüter, “Unsupervised audio feature extraction for music similarity
estimation,” Tech. Univ. Muchen Master Thesis, 2011.
[28] F. Camastra and A. Vinciarelli, “Machine Learning for Audio, Image and Video Analysis,” pp. 1–508, 2007.
[29] J. P. Bello, “Low-level features and timbre,” Lect. Notes, pp. 1–31, 2013.
[30] G. Peeters, “A large set of audio features for sound description (similarity
and classification) in the CUIDADO project,” Cuid. IST Proj. Rep., vol. 54, no. 0, pp. 1–25, 2004.
[31] J. Ren, M. Wu, and J. R. Jang, “Automatic Music Mood Cl ass ification Based on Ti mbre and Modulation,” vol. 6, no. 3, pp. 236–246, 2015.
[32] C. Dodge and T. A. Jerse, “Computer Music,” 1997.
[33] J. M. Grey, “Perceptual effects of spectral modifications on musical timbres,” J. Acoust. Soc. Am., vol. 63, no. 5, p. 1493, 1978.
[34] T. G. Dietterich, “Ensemble Methods in Machine Learning,” Mult. Classif. Syst., vol. 1857, pp. 1–15, 2000.
53
[35] Jaqueline Brigladori Pugliesi, R. A. Sinoara, and S. O. Rezende,
“Combinação de Regressores Homogêneos e Heterogêneos: Preci são e Compreensibilidade,” 2003.
[36] L. Breiman, “Bagging Predictors,” Mach. Learn., vol. 24, no. 421, pp. 123–140, 1996.
[37] Y. Freund and R. Schapire, “A decision-theoretic generalization of on-line learning and an appl ication to boosting,” Comput. Learn. theory, vol. 55,
pp. 119–139, 1995.
[38] J. Bergstra, N. Casagrande, D. Erhan, D. Eck, and B. Kégl, “Aggregat e
features and ADABOOST for music classification,” Mach. Learn., vol. 65, no. 2–3, pp. 473–484, 2006.
[39] D. H. WOLPERT, “STACKED GENERALIZATION,” Neural Networks, vol. 5, no. 2, pp. 241–259, 1992.
[40] K. M. Ting and I. H. Witten, “Stacked generali zation: When does it work?,” in IJCAI International Joint Conference on Artificial Intelligence, 1997, vol.
2, pp. 866–871.
[41] M. Welsh, N. Borishov, J. Hi ll, R. von Behren, and A. Woo, “Querying large collecti ons of music for si milarity,” UC Berkeley Tech. Rep., no. UCB/CSD-00–1096, 1999.
[42] K. West and S. Cox, “Features and Classifiers for the Automatic Classification of Musical Audio Signals,” Proc. Int. Soc. Music Inf. Retr.
Conf., pp. 1–6, 2004.