91学术服务平台

您好,欢迎来到91学术官网!站长邮箱:91xszz@sina.com

发布论文

论文咨询

基于音乐数据集GTZAN多种机器学习模型对比分析

  2020-12-14    2440  上传者:管理员

摘要:基于音乐数据集GTZAN,对决策树、逻辑回归、随机森林、支持向量机、BP神经网络以及基于Keras框架的全连接神经网络进行实验比对.首先将音频数据转换为谱图,然后从谱图中利用Python工具包Librosa提取音频特征,把这些特征数据作为输入数据提交给各分类模型,进而对输出结果进行比较分析.实验结果表明,在音乐特征数据上,采用10折交叉验证法的分类准确率从高到低依次是BP神经网络、支持向量机、逻辑回归、随机森林、决策树,基于Keras框架的神经网络的训练效果次于支持向量机。

  • 关键词:
  • 决策树
  • 支持向量机
  • 逻辑回归
  • 随机森林
  • 音乐流派
  • 加入收藏

音乐流派(Musicgenre)是由音乐作品中独特的节拍、音色、曲调等要素形成的各种音乐风格,比如流行乐、古典乐和爵士乐等.目前大多数音乐网站所应用的分类检索条目之一是音乐流派,同时音乐流派在管理和存储数字音乐数据库中也是重要的分类属性,因此,音乐流派自动分类具有重要的研究意义与实际价值.音乐流派分类识别[1]作为音乐信息检索(MusicInformationRetrieval,MIR)领域里的一项重要分支被深入研究,是多媒体应用中非常重要的一部分内容,主要包括音乐的检索、欣赏、创作、教学以及数字娱乐[2].

音乐流派的自动分类技术研究已成为近年的研究热点.Tsunoo等[3]对10种不同风格的音乐流派提取音色、节奏、低音线3个特征集,取得63.1%的识别率;杨翠丽等[4]建立了神经网络投票机制结合高层音乐节奏特征的流派分类模型,对7个音乐流派分类识别总精度可达68.9%;Tan等[5]提取小军鼓和低音鼓的节拍并合成循环节拍来分析音乐节奏,该方法主要对含有节奏型R&B和Hip-Hop等流派进行仿真验证,具有一定的限制性.因此,本文首先对决策树(DecisionTree,DT)、逻辑回归(LogisticRegression,LR)、随机森林(RandomForest,RF)、支持向量机(SupportVectorMachine,SVM)、反向传播神经网络(Back-ProPagationNetwork,BP)以及全连接网络模型(FullConnectedNet,FCN)这六种分类模型进行训练,然后把公开的音频数据集GTZAN中的音频文件转换为频谱图(spectrogram),从中提取特征,将这些特征数据集进行预处理后作为各模型的输入,构建各个模型,输入数据,最后对各模型的结果进行比较,以期找出最优分类方法.


1、算法介绍


1.1CART决策树

CART决策树(ClassificationAndRegressionTree)算法是由Breiman等在1984年提出的一种经典的决策树算法[6],主要思想是把训练数据集进行循环分析,形成一种二叉树形式的分类模型.通过选择数据集中基尼指数(gini)最小的属性,将数据集进行划分.

数据集的基尼指数的计算如(1)式所示:

其中pk是类别k的概率或比例.

数据集中特征的基尼指数的计算如下:

其中Dv是分支的节点.

CART决策树达到以下任何一个条件时会停止建树:(1)所有叶节点中的样本属于同一类;(2)树的高度达到所设置的阈值.

基本步骤如下:

(1)输入数据集;

(2)若数据集中样本个数少于阈值或者特征为空时,则返回决策子树,当前节点停止递归;

(3)计算数据集的基尼指数,若基尼指数小于阈值,则返回决策子树,当前节点停止递归;

(4)计算所有特征的属性值对数据集的基尼指数.选择基尼指数最小的特征及其切分点作为最优特征与最优切分点,根据样本点是否为切分点将训练数据集划分成两部分,即建立当前节点的左节点和右节点;

(5)对左右两个子节点递归地调用步骤(2)-(4),直至满足条件;

(6)生成CART决策树,输出结果.

在CART决策树的分类模型训练过程中,从scikit-learn库中调用cart函数,将各参数为默认值,对音乐流派进行分类.

1.2随机森林(RF)

随机森林是在构建Bagging集成的基础上,进一步训练决策树,并且引入了随机属性的选择,它的随机性主要表现在两个方面:随机选取数据样本与随机选取待选特征,从待选取的特征中再进一步选取最优的特征[7].

随机森林是以决策树(一般为CART决策树)为基学习器,从某节点的每个属性集合中随机地选择一个子集(包含k个属性),再从其中选择最优的一个属性进行划分.

基本步骤如下:

(1)输入数据集;

(2)有放回地随机抽取样本;

(3)随机抽取部分特征作为待选特征;

(4)用gini指数在待选特征中确定测试特征;

(5)确定产生节点;

(6)判断是否可以成为叶节点,若可以为叶节点,判断决策树是否停止生长,若停止生长则保存树,进行下一步,若不停止则进行分支,返回第三步;若不是叶节点,则进行分支,返回第三步;

(7)保存为树后,决策树数目如果达到要求则生成随机森林,否则返回第二步.

在随机森林模型构建过程中,不断地训练分类模型,将森林的深度设为20,衡量标准设为gini,迭代次数设为500,其他参数设为默认值,以此为基础在数据集上进行多次实验.

1.3逻辑回归模型(LR)

LR是一种类似于线性回归的模型,用于目标变量是分类变量的二元分类(最常用)以及多元分类问题.通过拟合一个逻辑函数来预测一个事件发生的概率,一般将sigmoid函数用作预测函数[8],即:

其中z=w0x0+w1x1+⋯+wnxn.输出的值被规划到(0,1)区间,中间值是0.5,若f(z)≤0.5,则将数据预测为A类,若f(z)>0.5,则将数据预测为B类.

通常设置一个惩罚项L2,以避免模型参数过大而导致模型的过拟合现象,加入L2惩罚项后,对高维数据有收敛更快的特性,惩罚项的系数C为惩罚因子,作用是调节惩罚项与目标函数之间的关系,C越大越能体现模型特征,C越小参数向量越稀疏.对于优化问题,通过二元类L2惩罚逻辑回归来最小化代价函数,如(4)式所示:

其中w是权重向量.

在逻辑回归模型训练中,采用L2正则惩罚项,经过多次训练,将惩罚参数设为6,其他参数设为默认设置,对音乐流派进行分类.

1.4支持向量机(SVM)

SVM的基本原理[9]是通过建立一个最优的决策超平面wΤx+b=0,把两种类别的样本分开,使得离超平面最近的两类样本之间的距离最大,以提高分类模型的泛化能力.在N维特征空间中,SVM的基本型如(5)式所示:

对于训练样本线性不可分时的线性支持向量机模型[10]如(6)式所示:

其中:c是惩罚参数,εi是松弛变量.

对于非线性的问题可以使用非线性支持向量机,通过利用核函数,把原始特征映射到高维空间,再将映射后的数据进行划分.引入核函数后的分类决策函数如(7)式所示:

其中核函数k(xi,xj)=(φ(xi),φ(xj)).实验中选取的核函数为高斯核函数,如(8)式所示:

其中:σ2是高斯函数的方差,σ代表了函数的径向范围,σ过小容易出现“过拟合”,过大易出现“欠拟合”.

基本步骤如下:

(1)将原始问题进行变形,变换为凸优化问题;

(2)求解凸优化问题:

(1)原始问题对偶化.先构建拉格朗日函数,再对偶化并选择核函数(主要有线性核函数、高斯核函数、sigmoid核函数、多项式核函数以及拉普拉斯核函数);

(2)利用KKT条件求解.先求出拉格朗日乘子α(常用序列最小优化算法求解),然后求出偏置b,从而求出分类决策函数;

(3)由决策函数构成的分类超平面进行数据集的分类;

(4)输出结果.

实验中根据非线性支持向量机算法训练模型,将SVM的核函数选为高斯函数,经过此次训练,惩罚因子设为6,其他参数为默认参数,在此基础上对音乐数据集进行实验.

1.5BP神经网络

BP神经网络是一种多层前馈神经网络,主要特点是前向传播信号,反向传播误差[11],激活函数常选sigmoid函数.神经元的输出如式(9)所示:

其中:,表示输出层第j个神经元的输入,whj表示第h个神经元与第j个神经元的连接权,bh为隐层的第h个神经元的输出,θj表示第j个神经元的阈值[12].

在训练样本上,均方误差的计算为:

基本步骤如下:

(1)初始化权值和阈值,并输入训练数据;

(2)根据式(9)计算样本输出,每一层都把信号向前传播,直到输出结果;

(3)根据式(10)计算输出层误差;

(4)将误差反向传播给隐层,根据式(11)计算其梯度项:

(5)根据式(12)更新权值和阈值,循环此过程:

式中η为学习率,实验中设为默认值.

(6)达到停止条件时训练结束.

在训练过程中,将BP神经网络模型的隐藏层设为两层,经过多次训练,将第一层隐藏层神经元个数设为700,第二层隐藏层神经元个数设为600,迭代次数设为50,其他参数为默认值,以此对音乐数据集进行实验.

1.6全连接网络(FullConnectedNet,FCN)

全连接神经网络各层之间的节点都是互相连接的.实验中采用基于Keras深度学习框架[13]的全连接神经网络,使用Keras中的模型Sequential(),通过设置各层的参数来构建模型.

Keras是一个高层神经网络API,它的两种模型类型:序贯模型(Sequential)与函数式模型(Model),Model应用范围更广,Sequential是Model特殊形式.其中,序贯模型是单输入单输出,每层之间相邻,不但操作简单,而且编译速度也比较快,而函数式模型是多输入多输出,每层之间都是任意互相连接的,虽然这种模型编译速度会比较慢,但是可以设计拓扑结构非常复杂的神经网络,相比Sequential,Model能够灵活地构造网络结构,设定各层级的关系.

基本步骤如下:

(1)选择模型.在实验中选择的是序贯模型;

(2)构建网络层.第一层为输入层,输入提取的一维特征数据集,运用激活函数,输出高维的数据流,第二层隐藏层选取激活函数,输出数据流,第三层选择激活函数,输出数据流,最后一层选择激活函数,输出数据流;

(3)编译.损失函数选为交叉熵,性能评估可用准确率(accuracy)来评价;

(4)训练.把数据集进行划分,80%进行训练,20%进行测试评估,选择最佳的batch_size与迭代次数;

(5)预测结果.

基于Keras的神经网络模型的训练,经过实验,搭建了4个网络层,将前三层的激活函数选为relu函数,最后一层选softmax作为激活函数,为了避免过拟合,每一层采用50%的dropout.优化函数选用Adam函数,损失函数选用交叉熵,性能评估使用测试集上的准确率(accuracy),经过多次训练,batch_size选定为128,迭代次数设为20,以此为基础在音乐数据集上进行实验.


2、音乐流派分类的数据准备


2.1数据集

研究用的数据集是开源音乐数据集GTZAN,在IEEETransactionsonAudioandSpeechProcessing2002中,Tzanetakis和Cook将此数据集用于“音频信号的音乐类型分类”.GTZAN数据集中包含了10种音乐流派,分别是Blues、Classical、Country、Disco、Hiphop、Jazz、Metal、Pop、Reggae、Rock,每种流派有100个30s的音频,实验中,把这1000个音频转换为如图1所示的频谱图(spectrogram),然后从频谱图中提取各音频信号特征.

图1频谱图

2.2特征的选取

每一个音频信号都包含很多特征,运用Python的Librosa工具提取特征,选取的特征有chroma_stft、chroma_cqt、rmse、spectral_centroid、spectral_bandwidth、rolloff、zero_crossing_rate、tonnetz、tempogram、contrast、poly_features、chroma_cens以及20组梅尔频率倒谱系数(MelFrequencyCepstrumCoefficient,MFCC)[14],共33000个特征数据,然后将数据集保存到.csv文件中,作为分类算法的输入,表1是特征数据集的一部分数据.

其中主要的几种特征是:

(1)过零率(zero_crossing_rate):是指信号符号的变化比率,即每帧语音信号从正变为负或从负变为正的次数,在音乐检索和语音识别中被大量应用.

(2)频谱质心(spectral_centroid):指的是声音的“质心”所在位置,它按照声音的频率的加权平均值进行计算,通过调用音频工具包librosa.feature.spectral_centroid来计算每帧信号的频谱质心.

表1部分特征数据

(3)谱滚降(spectral_rolloff):表示的是谱能量在特定百分比时的频率,它是对数据信号形状的测量.

(4)梅尔频率倒谱系数(MelFrequencyCepstrumCoefficients,MFCC):是由10到20个特征构成的集合,简单地描述了频谱的总体形状,模拟了人声的特征.实验中MFCC用了20组特征集对语音特征进行建模,并将汉明窗n_fft的大小设为2048,邻窗hop_length的距离设为512.

(5)色度频率(chroma_stft):是在音频中非常有趣的一种表示,它的整个频谱会被投影到12个区间,代表着音乐八度音的12个不同的色度.


3、实验分析及结果对比


3.1各机器学习分类模型的构建

前五种分类模型,实验中采用了10折交叉验证法对各模型进行训练,构建过程如下:

(1)CART决策树模型的构建用scikit-learn库调用函数cart=DecisionTreeClassifier(),将衡量分类的标准criterion设为信息增益entropy,其他参数设为默认值.按照CART决策树算法训练模型,模型分类的平均准确率为50%.

(2)LR分类模型采用L2正则惩罚项,当惩罚参数选为6时,分类模型的结果最好,其准确率为69.8%.

(3)RF分类模型实验中将森林的深度设为20,衡量标准criterion设为gini,迭代次数设为500,按照随机森林算法训练模型,模型分类的平均准确率为68.3%,和决策树模型的准确率相比,提高幅度较大.

(4)对于SVM分类模型,由于数据的分布线性不可分,因此通过核函数以及惩罚项的选择来构造约束优化问题[15],实验中,核函数选择高斯核函数,惩罚因子设为6,按照非线性支持向量机算法训练模型,模型分类的平均准确率为73.7%.

(5)BP神经网络模型搭建过程中,通过多次实验进行最优选择,将隐藏层设为两层,第一层隐藏层神经元个数设为700,第二层隐藏层神经元个数设为600,迭代次数设为50,其他参数为默认值,按照BP神经网络算法训练模型,模型分类的平均准确率为75.3%.

(6)基于Keras的神经网络模型,经过多次实验,搭建4个网络层的效果最好.第一层为输入层,接收所提取的一维特征数据集的输入(随机划分80%用于训练,20%用于测试评估),激活函数采用relu函数,输出256维的数据流;第二层(隐层)也选择relu作为激活函数,输出128维的数据流;第三层(隐层)仍然把relu作为激活函数,输出64维的数据流;最后一层用softmax选作激活函数,输出10维数据流(由于输出结果是10种输出类型).为了避免过拟合,每一层采用50%的dropout.优化函数选用Adam函数,损失函数选用交叉熵,性能评估使用测试集上的准确率(accuracy),batch_size选为128,迭代次数设为20,按照该算法训练模型,模型分类的平均准确率为72%.

3.2实验结果对比

经过多次实验,前五种分类模型采用了10折交叉验证法,模型的准确率与标准差取10次交叉验证所得准确率与标准差的平均值.实验的前五种算法均从sklearn库中直接调用,部分参数是默认值,部分参数经过多次实验择优选择,最后一种算法基于Keras的全连接神经网络设置了四层网络层.经过多次实验,各模型的运行结果如表2所示.

表2各模型实验结果对比

从表2可以看出:针对本文的实验数据集,BP神经网络的分类结果最好,平均准确率达到75.3%,其次是SVM,平均准确率是73.7%,LR模型、RF模型、DT模型的平均准确率分别是69.8%、68.3%、50%.采用基于Keras的神经网络模型对特征数据集进行分类时,在没有设置Dropout的情况下,数据集在训练集上的准确率为89.5%,在测试集上的准确率为68.5%,由于准确率在训练集与测试集上的差异以及数据量不够大的原因,出现过拟合现象,多次实验表明,在隐层设置Dropout为0.5时,结果最好,训练集上的平均准确率为73.3%,测试集上的平均准确率为72%,虽然分类效果没有SVM与BP神经网络好,但是可以看出过拟合现象得到改善.


4、结语


目前一些音乐流派的分类研究提取了很多不同类型的声学特征,研究表明,不同的声学特征对分类结果有着显著的影响.本文研究了音频特征数据集基于传统的多种机器学习算法与深度学习中基于Keras的深度神经网络的分类效果,并对实验结果进行比较,探讨了十大音乐流派音频数据集的各特征向量的提取以及分类模型的选择问题.

本研究仍有不足之处.首先,实验中使用的前五种算法是传统的机器学习分类算法,其分类结果会受到各分类器自身局限的影响,基于Keras框架的神经网络的分类方法,其结果也会受到各参数以及数据集大小的影响;其次,在提取的33种音频特征中,一些特征的贡献率不大,但考虑到相对深度学习而言,数据集较小这个因素,并没有进行特征数据的降维处理.因此,在之后的研究中,会选取数据量更大的音频数据集并对分类算法继续优化,进行进一步的实验对比和分析.


参考文献:

[1]甄超,郑涛,许洁萍.音乐流派分类中特征选择算法研究[C].西安:第五届和谐人机环境联合学术会议,2009.

[4]杨翠丽,郭昭辉,武港山.基于改进投票机制的音乐流派分类方法研究[J].计算机工程,2008,34(9):213-215.

[8]孙振宇.多元回归分析与Logistic回归分析的应用研究[D].南京:南京信息工程大学,2008.

[12]周志华.机器学习[M].北京:清华大学出版社,2016.

[13]谢梁,鲁颖,劳虹岚.Keras快速上手:基于Python的深度学习实战[M].北京:电子工业出版社,2017.

[14]庄严,于凤芹.结合节拍语义和MFCC声学特征的音乐流派分类[J].计算机工程与应用,2015,51(3):197-201.

[15]林香亮,袁瑞,孙玉秋,王超,陈长胜.支持向量机的基本理论和研究进展[J].长江大学学报(自然科学版),2018,15(17):48-53.


李欣,米红娟,吴雪君.音乐流派的多种机器学习模型分类比较[J].宜宾学院学报,2020,20(12):42-47.

分享:

91学术论文范文

相关论文

推荐期刊

网友评论

加载更多

我要评论

中国音乐

期刊名称:中国音乐

期刊人气:2835

期刊详情

主管单位:北京市教育委员会

主办单位:中国音乐学院

出版地方:北京

专业分类:艺术

国际刊号:1002-9923

国内刊号:11-1379/J

邮发代号:2-263

创刊时间:1981年

发行周期:双月刊

期刊开本:大16开

见刊时间:一年半以上

论文导航

查看更多

相关期刊

热门论文

【91学术】(www.91xueshu.com)属于综合性学术交流平台,信息来自源互联网共享,如有版权协议请告知删除,ICP备案:冀ICP备19018493号

微信咨询

返回顶部

发布论文

上传文件

发布论文

上传文件

发布论文

您的论文已提交,我们会尽快联系您,请耐心等待!

知 道 了

登录

点击换一张
点击换一张
已经有账号?立即登录
已经有账号?立即登录

找回密码

找回密码

你的密码已发送到您的邮箱,请查看!

确 定