目前的音乐检索系统用流派、风格、情感等类别标签检索音乐。其中,如果人工标注 音乐这些类别标签,则存在主动性强、费时费力、速度慢的问题,而如果采用传统的自动 标注方式,则存在准确率低的问题。后者准确率低的原因是,其标注时使用的模型不能 很好识别音乐。随着 Hinton 提出深度学习模型后,因其在图像和语音识别领域均取得很 好的成果,在识别领域成为了研究热点。因此,本文旨在研究如何使用深度学习中的卷 积神经网络(Convolutional Neural Networks,CNN)模型,设计出一个准确度高、速度快 的自动音乐分类系统,用作标注音乐的类别标签。本文的结构第一章,主要是阐明卷积神经网络理论。先介绍神经网络的原理和概念,其很多知识有关,再介绍深度学习原理和特点,可对属于深度学习的有初步认识。最后详细介绍的结构、算法第二章,主要介绍声谱图。本文的创新之处主要是使用了声谱图作为音乐的输入。详细介绍了音乐的声谱图理论,及其可得到的信息。第三章,主要介绍木篇论文如何实现基于卷积神经网络的声音数据的识别分类。先介绍所用框架平台及其搭建。然后从数据输入、数据训练、结果输出三个方面具体说明如何用该平台实现声音数据的分类。第四章,主要介绍本论文所做实验需要用到的两个数据库和自己制作的数据库。先介绍数据库及其所含音乐类别特色,再详细介绍白己白做的数据库,说明其数据来源,及数据分布。第五章,主要是对基于的音乐分类识系统进行多种测试和分析,从而得出较好的参数和证明可行性。在数据输入层面进行声谱图测试、样本数测试;在训练层面进行两种模型的对比测试、结构的节点测试、微调测试以及学习率测试;在输出层面进行结果综合判断测试。第六章,主要是总结和展望。总结了基于的音乐分类识别系统的一般步骤及其最终参数并展示了其最终的识别结果。然后介绍了本识别系统的优点和创新点,最后通过一个例子展示木识别系统录摘要木文的结构卷积神经网络的介绍神纤网终神经网络基本原理神经网络的本概念介绍1.2深度学习卷积神经网络卷积神绎网络的结构卷积神经网络的训练算法本章小结声谱图声谱图的简介声谱图中可得到的信息本章小结实现基于卷积神经网络的音乐分类系统平台简介平台的搭建数据输入平台的一般数据输入形式平台的音乐数据输入形式平台的音乐输入数据后续处理训练数据平台搭建网络的方法木论文需要使用的两种卷积神经网络使用平台搭建本论文需要使用的两种卷积神经网终在平台训练两种卷积神经网络结果输出本章小结实验用的数据库及自己制作的数据库数据库的流派简介自己制作的数据库数据库简介网站介绍数据库的数据及其结构本章小结实验结果数据输入层面的测试与分析声谱图实验声谱图实验声谱图实验声谱图实验声谱图实验声谱图实验声谱图实验声谱图实验声谱图实验结论样本数实验和结论训练层面的测试与分析结构实验和结论结构实验和结论微调实验和结论学习率实验和结论输出层面的测试与分析本章小结总结与展望总结本文的音乐分类识别系统一般方法归纳本文最终的音乐分类识别系统的参数与结果本文提出的音乐分类识别系统的优点及创新性展望例子展小参考文献附录附录歌出剪切程序附录声谱图生成程序附录声谱图切割程序程序附录输出层面结果处理程序附录输出层亩结果处理程序附录例子展示程序卷积神经网络的介绍1.1神经网络卷积神纤网络是深度学习的一种模型,其基本模型和神绎网终很相似,神绎网络通常只有三层,而卷积神纤网络可以看成是多层的神纤网终,其引用了一些神绎网终基本概念。主要包括神经元、激励函数单元、误差函数、梯度下降法、神经网终的连接、反向传播(,)算法。在理解了这些神经网络的原理和概念后,我们对的层次结构及训练算法更容易理解。神经网络基本原理神经网络()是早期的机器学习模型,模拟人脑学习过程。该模型由一系列的简单人工神经元相互密集连接形成,其每个神经元由部分:输入、神经细胞休和输出组成。神经元由多个实值输入,同吋输岀一个实值。其神经细胞体对实值输入进行整合与阀值处理。输入薮据经过与输入连接的权值相乘,整合进入神经细胞体,其数值超过某阀值,则神经元被“激活”输出,否则为。如大脑可不停调节神经元之间的连接从而不断学习新知识,也可以通过调整输入迕接权值来让神纤元激活或不激江。在实际训练中,训练样本向量是的输入端,训练样本的日标输出(如分类问趣中为类别信息)则为网络的输岀端。初始情况下,网终杈值为随机值,当某个训练样本输入网终后,由此产生的实际输出与训练样本的标输出的差异为训练误差。之后,不断根据训练误差调整权值,使训练误差减少,最终实际输出与目标输出越来越相似。神经网络的基本概念介绍()神经元神经元是神经网络的基木单位。以实值向量组(x1,x2,x3,…xi为输入,然后每个输入分量对应一个权值w(w1,w2,w3,…,w),再加上偏置w,将之作为阀值。然后将这些输入进行线性组合,若其值大于就输出,否则为,其可以用式表示。若该神经元位于输出层,则将来与训练样本的目标输岀对比产生误差值,若不是,则与其他神经元作为下一层的神绎元的输入。其单元结构如图所小net=o(x)=sgm(W·x)其中,sgn(y)1 if y>01 otherwise∑)图神经元模型图激励函数单元()激励函数单元为了使神网终非线性,如图,需要在单个神绎元之后,加一个函数单元使神绎元的最终输出是其输入的非线性输出,其称为激励函数单元同时,为了在训练过程中使用后面介绍的随机梯度下降算法,这个激励函数单元须是个可微函数。常以函数作为激励函数,如图,其可用式表示。f(net)=a+texp(c.net)+片河照国回一国品%o c)Het一一一一一=函数图误差曲面()误差函数为了能在训练的过程中获得最优的权值向量w,需要规定一个度量E(w)来衡量当前权值向量ν下神经网络的输出相对于训练样本的训练误差。常用的度量标准是平方误差函数,其数学表达式为式E(w)=∑aED(其中,ta为训练样木在神经系统的实际输出,Oa为的目标输出,在整个训练样木的集合中,由于Oa固定,t由w决定,所以E是关于w的函数,其表示在空间为误差曲面,如图所示,E(的全局最小值所对应的w则为我们所求的目标值。()梯度下降法(在上面的误差曲囿中,为了能快速达到其谷底,应该选择沿着最陡峭的方向下降数值。为了找到这个最陡峭的下降方向,可采用计算梯度的方法。即求出E(W)相对于话的每个分量的偏导数,其导数最大则为其方向。偏导公式为VE(w)=n,n…,3于是权值更新的梯度下降法为W←W+△w其中,△W=-VE(w)μ是常数,称为学习率,规定了梯度下降时权值变化的步长。()神经网络的连接就像人脑中神经细胞是相互连接的,单个神经元也按照这样的方式组织在一起形成神经网络。如图是其一种广泛的连接方式。每一层神经元的输出都反馈到他们的下层,最终获得整个网络的输出。神经网络至少有三层,输入和输岀层至少各一层,隐藏层至少一层以上。相邻层之问全连接,上一层的每个神经元均连接到下一层的某一个神经元中d法X?nYn输入层隐含层输出层图6三层BP神绎网络拓扑图()反向传播()算法BP算法是神经网络最主要的算法,其所用的主要原理方法是前面所提到的梯度下降法,分为前向传递和反向传递两个阶段。前向传递时,为输入层-隐藏层-输出层,后一层节点只受前一层节点的影响。若输出层得到结果与期望值有差别则进行反向传递,根据其误差更改权重及阀值,重复若T次,直到误差函数到达全局最小值(刘鲭洁,等,)前向传递阶段:我们假设共有N个训练样本,对于单个样本n,元(x1,x2,x3,…xi)为输入,t(t1,t2,t3,…,tk)为其对应目标输出。以图6的图说明步骤1:网络初始化。依据输入与目标输岀向量个数,设定网终输入层节点数M与输出层节点数G,并根据具体需要设置隐臧层节点数H,输入层为,隐臧层为j,输出层为k,对于单个样本n,初始化输入层、隐藏层和输出层神经元之间的连接权重a1,a张k,初始化隐臧层和输出层的阀值,即偏置b〃,b,设置学习速率及选择神经元激励函数(刘鲭清,等,)。证明,连接权重的初始化应该用数值小的随机值。步骤2:隐藏层输岀计算。对于单个训练样本n,根据输入向量x,输入层与隐藏层层间连接权重ω及隐藏层阀值b,得出隐含层输出h。公式为:h=f(Σ1形x-b)j=1,2,…,H式中,f为隐含层激励函数,2.1.2(3)中说明本网络采用函数,公式为式。步骤:输出层输出计算。对于单个训练样本,根据隐藏层输出h,隐藏层与输出层层间连接网络权重ω及输出层阀值b。得出输出层实际输出yk。公式为:y=2=1hoh-bk=1,2反向传递阶段:步骤:误差计算。我们使用本论文)中的平方误差代价函数来计算误差。对于单个样本,其目标输出为(t1,t2,t3,…,tk),用t表示。根据前向传递阶段单个样本得出的实际输出y,对于全部样本,总公式为:ENm=1 2k-1(tk yk由于对于全部样本,其误差只是将每个训练样本的误差叠加,因此我们仍继续用单个训练样本进行计算,即公式为1∑k=1(tk-yh1It-y ll2步骤:偏置更新。根据梯度下降法,我们需要求出相对于每个权重分量的偏导数,以找出下降方向使误差尽快到达最小值。由于隐藏层和输岀层有一定的区别,我们将步骤、步骤的输出公式换一种更普遍的表达式。用表示当前层,则L为上一层,例如,对应于隐藏层,L就是其输入层,其输入为输入向量x。普遍的公式如下:x2=f()其中u=Wx-1+b4其中,函数/为激活函数,W表示该层权重矩阵,由于单层偏置项往往是同一个常量,因此用常数表示该层偏置项。x4和x4-1分别表示木层输出和输入。这里加入一个概念,偏置项的灵敏度,用它表示反向传播回来的误差,它是误差对偏置项的变化率,公式如下:EaBou=8ab au ab由于如=1,所以=E=8,囚此,可得出对于单个偏置项灵敏度,其等于误差对它所有输入的u的导数一。经过对一的推导,具体推导方式参考大学的教授的中关于g的教程。隐癜层的灵敏度,关系式为L+1L+1u其中,“。”这个运算符号代表每个元素相层,l代表第l层隐癜层对于输出层的灵敏度,可用以下公式描述6=f"(2)其中L代表输出层。式2.12和式2.13可以分别计算出隐藏层和输出层的灵敏度δ,6,而再结合本文2.1.2(4)中梯度下降法的更新公式原理,用如下公式,在单个样本n中,则可更新隐减层和输出层的偏置b,bk,其中p为学习率。aEb=b1-182j=1,2,…,H(2.14bk= bkOEbn-μk=1,2,…,C(2.15)ab步骤6:权值更新。根据梯度下降法,以及 UFLDL中的推论,可以用δ的规则对权值进行缩放更新,其公式为:aEawl(6)(2.16deWL= W步骤7:判断网络顸测误差E是否小于一定值,若小于则误差函数到达全局最小值,这时的权重和阀值都是最优的,这时的神经网终模型就已经具有优秀的学习特征能力了。若不小于则需要重新从步骤2循环,直到误差小于一定值。