基于深度學(xué)習(xí)LSTM模型的音樂(lè)分類(lèi)方法設(shè)計(jì)_第1頁(yè)
基于深度學(xué)習(xí)LSTM模型的音樂(lè)分類(lèi)方法設(shè)計(jì)_第2頁(yè)
基于深度學(xué)習(xí)LSTM模型的音樂(lè)分類(lèi)方法設(shè)計(jì)_第3頁(yè)
基于深度學(xué)習(xí)LSTM模型的音樂(lè)分類(lèi)方法設(shè)計(jì)_第4頁(yè)
基于深度學(xué)習(xí)LSTM模型的音樂(lè)分類(lèi)方法設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

目錄

1引言............................................................................................................................1

1.1項(xiàng)目背景......................................................................................................1

1.2開(kāi)發(fā)環(huán)境與工具..........................................................................................2

1.2.1Python簡(jiǎn)介..........................................................................................2

1.2.2Tensorflow簡(jiǎn)介..................................................................................3

1.2.3Python第三方庫(kù)簡(jiǎn)介..........................................................................3

1.2.4PythonCharm簡(jiǎn)介................................................................................4

1.2.5VisualStudioCode簡(jiǎn)介......................................................................4

2需求分析....................................................................................................................4

2.1可行性需求分析..........................................................................................4

2.2數(shù)據(jù)集分析..................................................................................................5

2.3關(guān)鍵技術(shù)分析....................................................................................................5

2.3.1數(shù)據(jù)采集技術(shù).........................................................................................5

2.3.2LSTM技術(shù)................................................................................................6

3數(shù)據(jù)采集....................................................................................................................6

3.1數(shù)據(jù)集需求分析..........................................................................................6

3.2數(shù)據(jù)集獲取分析..........................................................................................7

3.3數(shù)據(jù)集下載..................................................................................................8

4數(shù)據(jù)集處理................................................................................................................8

4.1數(shù)據(jù)預(yù)處理..................................................................................................9

4.2切分訓(xùn)練集和測(cè)試集................................................................................11

5模型構(gòu)建及評(píng)估分析..............................................................................................11

5.1模型構(gòu)建....................................................................................................11

5.1.1模型網(wǎng)絡(luò)結(jié)構(gòu)........................................................................................11

5.1.2創(chuàng)建LSTM模型...................................................................................12

5.2模型編譯...........................................................................................................13

5.3模型訓(xùn)練與調(diào)優(yōu)...............................................................................................13

I

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

5.3.1模型訓(xùn)練...............................................................................................13

5.3.2學(xué)習(xí)率調(diào)優(yōu)...........................................................................................14

5.4出現(xiàn)問(wèn)題與解決方案.......................................................................................14

5.4.1問(wèn)題分析...............................................................................................14

5.4.2解決方案...............................................................................................15

5.5模型部署...........................................................................................................16

5.5.1前端設(shè)計(jì)...............................................................................................16

5.5.2系統(tǒng)效果展示及分析...........................................................................17

6小結(jié)..........................................................................................................................18

參考資料.........................................................................................................................20

II

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

基于深度學(xué)習(xí)LSTM模型的音樂(lè)分類(lèi)方法設(shè)計(jì)

1引言

在人類(lèi)第一次構(gòu)思可編程計(jì)算機(jī)的時(shí)候,就已經(jīng)開(kāi)始思考如何才能計(jì)算機(jī)變

得更為智能。如今,人工智能(artifcialintelligence,AI)已經(jīng)成為一個(gè)正

蓬勃發(fā)展且具有眾多實(shí)際應(yīng)用的領(lǐng)域。我們都希望通過(guò)智能軟件在工業(yè)、制造

業(yè)、醫(yī)學(xué)以及科學(xué)等領(lǐng)域發(fā)揮重要作用。人工智能早期階段,那些用人類(lèi)的智

力很難解決、但對(duì)計(jì)算機(jī)來(lái)說(shuō)比較簡(jiǎn)單的問(wèn)題很快得到解決,例如那些需要通

過(guò)一系列數(shù)學(xué)規(guī)則來(lái)描述的問(wèn)題。解決那些人類(lèi)很容易就能執(zhí)行、但卻很難形

式化描述的任務(wù)是人工智能的一大挑戰(zhàn),比如識(shí)別人們說(shuō)的話或者圖像中的事

物。對(duì)于這些問(wèn)題,人類(lèi)往往可以憑借直覺(jué)輕易且直接地解決。

而深度學(xué)習(xí)的出現(xiàn)解決了上述大部分難題,它可以讓計(jì)算機(jī)從經(jīng)驗(yàn)中學(xué)習(xí),

并根據(jù)層次化的概念體系去理解世界,每個(gè)概念則通過(guò)和一些相對(duì)簡(jiǎn)單的概念

之間的關(guān)系定義。讓計(jì)算機(jī)從經(jīng)驗(yàn)獲取知識(shí),避免了人類(lèi)自己去手動(dòng)的指定計(jì)

算機(jī)所需要知道的知識(shí)而是讓它更加接近人類(lèi)本身的學(xué)習(xí)功能。而且層次化的

概念可以讓計(jì)算機(jī)從構(gòu)建簡(jiǎn)單的概念進(jìn)一步去理解更為復(fù)雜的概念。

1.1項(xiàng)目背景

隨著互聯(lián)網(wǎng)的不斷高速發(fā)展,數(shù)字音樂(lè)以極快的速度增長(zhǎng)。面對(duì)海量的音樂(lè),

如何快速準(zhǔn)確的檢索出用戶想要的音樂(lè)變的越來(lái)越重要了。而音樂(lè)分類(lèi)作為音

樂(lè)信息檢索的重要組成部分成為近年來(lái)的熱點(diǎn)。傳統(tǒng)的音樂(lè)分類(lèi)方法是首先手

動(dòng)提取特征,然后再使用機(jī)器學(xué)習(xí)進(jìn)行分類(lèi),這種方法會(huì)產(chǎn)生兩個(gè)缺陷,一是手

動(dòng)提取特征很難保證特征的有效性和準(zhǔn)確性;二是傳統(tǒng)的機(jī)器學(xué)習(xí)分類(lèi)方法在

多分類(lèi)問(wèn)題上表現(xiàn)不佳,且無(wú)法進(jìn)行大規(guī)模數(shù)據(jù)的訓(xùn)練。針對(duì)以上問(wèn)題,本文提

出了一種基于深度神經(jīng)網(wǎng)絡(luò)的音樂(lè)流派分類(lèi)的方法,并分析了不同結(jié)構(gòu)的深度

神經(jīng)網(wǎng)絡(luò)對(duì)音樂(lè)流派分類(lèi)的影響。

音樂(lè)是一種重要的音頻數(shù)據(jù),自動(dòng)音樂(lè)分類(lèi)的實(shí)現(xiàn)是音頻分類(lèi)的一個(gè)重要

分支。音樂(lè)流派是描述音樂(lè)內(nèi)容最流行的方式之一,在音樂(lè)信息檢索、音樂(lè)推

薦和在線音樂(lè)訪問(wèn)等方面有著廣泛的應(yīng)用叫。音樂(lè)流派是用來(lái)描述大量音樂(lè)收

藏的高級(jí)描述符,它們有助于識(shí)別音樂(lè)作品中的某些共同特征。人類(lèi)認(rèn)識(shí)到音

樂(lè)屬于不同的流派,如爵士樂(lè)、藍(lán)調(diào)、古典、搖滾、金屬朋克、嘻哈、流行音

樂(lè)、電子等。這種表征通常是基于人耳所感受到的聲學(xué)感覺(jué)。不同的音樂(lè)流派

1

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

通常被寬松地定義為有些歌曲可能被不同的個(gè)體根據(jù)他們的興趣分類(lèi)成不同的

流派。音樂(lè)流派已經(jīng)被廣泛用于大型音樂(lè)數(shù)據(jù)庫(kù)組織、音樂(lè)商店和音樂(lè)收藏的

目錄中。在數(shù)字化時(shí)代之后,大量的信息都是文字的、圖形的、數(shù)字的,所有

這些都是在一眨眼的時(shí)間里被處理的,自動(dòng)化的音樂(lè)流派類(lèi)型分類(lèi)就是這樣一

個(gè)探索領(lǐng)域。隨著電子音樂(lè)發(fā)行,由于模擬音頻信號(hào)和新的內(nèi)容的產(chǎn)生,音樂(lè)

內(nèi)容往往非常巨大。由于CD、DVD和磁帶不再是音樂(lè)的唯一來(lái)源,互聯(lián)網(wǎng)的出

現(xiàn)對(duì)信息的流動(dòng)有很大的控制力,即從網(wǎng)絡(luò)到世界上與這個(gè)網(wǎng)絡(luò)相連的每一個(gè)

人。從廣播到播客,從完整的音樂(lè)收藏到單支音頻樣本,只需點(diǎn)擊幾下即可下

載所有內(nèi)容其結(jié)果是大量的歌曲、音頻文件堆積如山。在各種文件夾中,使用

戶追蹤并管理他們喜歡的音樂(lè)類(lèi)型成為一個(gè)可怕的任務(wù)。將每一首歌通過(guò)標(biāo)記

為適當(dāng)?shù)念?lèi)型來(lái)隔離恰好是最符合邏輯的方法,以便管理海量數(shù)據(jù)庫(kù)中的音頻

文件。從組織音樂(lè)收藏所需的時(shí)間和人力來(lái)看,由于需要更有效的工具來(lái)瀏覽、

組織和動(dòng)態(tài)更新合輯,音樂(lè)流派人工分類(lèi)變得非常昂貴,因此需要自動(dòng)進(jìn)行音

樂(lè)流派分類(lèi)。當(dāng)自動(dòng)音樂(lè)流派分類(lèi)可用時(shí),對(duì)音樂(lè)推薦系統(tǒng)和自動(dòng)播放列表的

產(chǎn)生是具有正向影響作用的。這些都屬于音樂(lè)信息檢索的廣泛領(lǐng)域。音樂(lè)信息

檢索在數(shù)字音頻的處理、搜索和檢索中發(fā)揮著關(guān)鍵作用。

自動(dòng)音樂(lè)流派分類(lèi),在此可以將這個(gè)問(wèn)題進(jìn)行嚴(yán)格的定義,即通過(guò)基于音

樂(lè)特征表現(xiàn)計(jì)算分析,將音樂(lè)信號(hào)分類(lèi)為一個(gè)獨(dú)特的流派。音樂(lè)流派自動(dòng)分類(lèi)

是音樂(lè)信息檢索系統(tǒng)的一個(gè)基本組成部分。本文將音樂(lè)中的流派分類(lèi)過(guò)程分為

特征提取和多類(lèi)分類(lèi)兩個(gè)步驟。在特征提取步驟中,從音樂(lè)信號(hào)中提取代表音

樂(lè)的信息。特征提取應(yīng)該是全面的(能夠非常好的刻畫(huà)音樂(lè)的特點(diǎn)),緊湊的(需

要降低數(shù)據(jù)存儲(chǔ))和有效的(不需要太多的提取計(jì)算量)。為了滿足第一個(gè)要求,

必須進(jìn)行設(shè)計(jì),以便包括音樂(lè)的低級(jí)和高級(jí)信息。在第二步中,建立了一個(gè)機(jī)

制(算法或數(shù)學(xué)模型),基于它們的特征用于從音樂(lè)聲音的表示形式中識(shí)別它們

所對(duì)應(yīng)的音樂(lè)流派標(biāo)簽。

1.2開(kāi)發(fā)環(huán)境與工具

1.2.1Python簡(jiǎn)介

Python是由GuidoRossum于1989年誕生。

對(duì)于其他語(yǔ)言來(lái)說(shuō),Python語(yǔ)言更為簡(jiǎn)單,而它之所以簡(jiǎn)單主要體現(xiàn)在以

下兩個(gè)方面:

Python的語(yǔ)法是非常簡(jiǎn)單明了的,是初學(xué)者都能馬上上手的門(mén)語(yǔ)言。它

2

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

和其它編程語(yǔ)言相比,如果要想實(shí)現(xiàn)同一個(gè)功能毫無(wú)疑問(wèn)Python的代碼量絕對(duì)

是最少的。

雖然在很多人看來(lái)Python是“不經(jīng)意間”開(kāi)發(fā)出來(lái)的,但是它跟其他語(yǔ)言

相比照樣可以“碰一碰”。Python的第一個(gè)公開(kāi)發(fā)行版是在1991年問(wèn)世的,

從那時(shí)候開(kāi)始Python就開(kāi)始不斷的更新,成長(zhǎng)終于在一天打響了自己的名號(hào)。

在2004年的時(shí)候它的使用率直線上升,受到了越來(lái)越多的編程人士的喜愛(ài)并且

在2010年的時(shí)候斬獲了TIOBE『2010年度最佳編程語(yǔ)言』的桂冠,在次之后,

在2017年P(guān)ython在IEEESpectrum發(fā)布的『2017年度編程語(yǔ)言』排行榜中

處于第一名在2018年又獲得了TIOBE『2018年度最佳編程語(yǔ)言』的第一名,更

是在2020年和2021年中連續(xù)兩年獲得TIOBE『年度最佳編程語(yǔ)言』的冠軍。

直到如今python已經(jīng)發(fā)展成一門(mén)廣泛使用的高級(jí)編程語(yǔ)言。它可應(yīng)用于網(wǎng)

絡(luò)爬蟲(chóng)、機(jī)器學(xué)習(xí)、數(shù)據(jù)分析和可視化等多種領(lǐng)域。它的特點(diǎn)是開(kāi)源(免費(fèi))、

豐富的庫(kù)、簡(jiǎn)單易學(xué)、支持跨平臺(tái)而且可移植性強(qiáng)。

1.2.2Tensorflow簡(jiǎn)介

TensorFlow是谷歌的神經(jīng)網(wǎng)絡(luò)算法庫(kù),基于數(shù)據(jù)流編程的符號(hào)數(shù)學(xué)系統(tǒng),

在各種機(jī)器學(xué)習(xí)算法實(shí)現(xiàn)中得到廣泛應(yīng)用。TensorFlow擁有多層級(jí)結(jié)構(gòu),支持

GPU和TPU高性能計(jì)算,被廣泛應(yīng)用于谷歌內(nèi)部和各領(lǐng)域,并且TensorFlow由

谷歌大腦開(kāi)發(fā)和維護(hù),從2015年11月開(kāi)始開(kāi)放源代碼。

1.2.3Python第三方庫(kù)簡(jiǎn)介

requests:最友好的網(wǎng)絡(luò)爬蟲(chóng)功能庫(kù),它使用起來(lái)要比urllib更加簡(jiǎn)潔,

它繼承了urllib2的所有特性。Requests支持HTTP連接保持和連接池,支持使

用cookie保持會(huì)話,支持文件上傳,支持自動(dòng)確定響應(yīng)內(nèi)容的編碼,支持國(guó)際

化的URL和POST數(shù)據(jù)自動(dòng)編碼。

Re:正則表達(dá)式解析和處理功能庫(kù),里面包含了多種字符串匹配的方法。

BeautifulSoup:它是HTML和XML的解析庫(kù),可以對(duì)HTML、XML格式進(jìn)行

解析,從中提取相關(guān)信息;還可以對(duì)所提供的任何格式進(jìn)行相關(guān)的數(shù)據(jù)爬取,

而且對(duì)它進(jìn)行樹(shù)形解析。

NumPy庫(kù)是Python數(shù)據(jù)分析的基礎(chǔ),是處理數(shù)組的Python庫(kù),NumPy庫(kù)的

數(shù)據(jù)結(jié)構(gòu)比Python自帶的更加高效。

matplotlib:Matplotlib是Python中繪制二維、三維圖表的數(shù)據(jù)可視化工

具,它是以各種硬拷貝格式和跨平臺(tái)的交互式環(huán)境來(lái)生成出版質(zhì)量級(jí)別的圖形。

3

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

通過(guò)Matplotlib,開(kāi)發(fā)者只需要使用簡(jiǎn)單的語(yǔ)句就可以繪制復(fù)雜的直方圖,餅

狀圖,散點(diǎn)圖等等各種類(lèi)型的圖。

Sklearn:全稱SCIKIT-LEARN,是基于Numpy、SCIPY、Matplotlib等數(shù)據(jù)

科學(xué)包構(gòu)建的Python中的機(jī)器學(xué)習(xí)庫(kù),涵蓋了機(jī)器學(xué)習(xí)中幾乎所有的環(huán)節(jié),如

樣例數(shù)據(jù)、數(shù)據(jù)預(yù)處理、模型驗(yàn)證、特征選擇、分類(lèi)、回歸、聚類(lèi)、降維等。

功能非常強(qiáng)大,目前推出的Sklearn版本為0.23。與深度學(xué)習(xí)庫(kù)存在pytorch、

TensorFlow等多種框架可選不同,sklearn是python中傳統(tǒng)機(jī)器學(xué)習(xí)的首選庫(kù),

不存在其他競(jìng)爭(zhēng)者。

1.2.4PythonCharm簡(jiǎn)介

PyCharm是由jetbrains開(kāi)發(fā)的優(yōu)秀的pythonIDE,它和所有其它集成開(kāi)發(fā)

環(huán)境一樣,它可以理解Python的特性并提供卓越的生產(chǎn)力推進(jìn)工具:自動(dòng)代碼

格式化,代碼完成,重構(gòu),自動(dòng)導(dǎo)入以及一鍵代碼導(dǎo)航等。這些功能可以幫助

程序員在使用Python語(yǔ)言開(kāi)發(fā)時(shí)節(jié)約時(shí)間,提高工作效率。

1.2.5VisualStudioCode簡(jiǎn)介

VisualStudioCode(簡(jiǎn)稱vscode)是一種簡(jiǎn)化且高效的代碼編輯器,同時(shí)

支持諸如調(diào)試,任務(wù)執(zhí)行和版本管理之類(lèi)的開(kāi)發(fā)操作。它的目標(biāo)是提供一種快

速的編碼編譯調(diào)試工具。然后將其余部分留給IDE。此外vscode是開(kāi)源,免費(fèi)

的,它可以自定義配置,而且其智能提示功能特別強(qiáng)大,能支持各種格式的文

件,還包含有各種方便的快捷鍵以及強(qiáng)大的擴(kuò)展插件。

2需求分析

2.1可行性需求分析

1.技術(shù)可行性

Python是一種腳本語(yǔ)言,只要寫(xiě)好了就可以直截了當(dāng)?shù)倪\(yùn)行,它可以省

去編譯鏈接的麻煩,而對(duì)于需要多動(dòng)手實(shí)踐的初學(xué)者來(lái)說(shuō),大大減少了他們出

錯(cuò)的機(jī)會(huì)。并且python還提供了非常多完善的代碼庫(kù),幾乎覆蓋了網(wǎng)絡(luò)、文件、

GUI、數(shù)據(jù)庫(kù)、文本等大量的內(nèi)容。而在我們本次的項(xiàng)目里就離不開(kāi)其中的音頻

處理庫(kù),Librosa和PyAudio是其中的兩個(gè)音頻處理庫(kù)我們本次使用的正是

Librosa。另外,python還有一些基本的音頻功能的內(nèi)置模塊。Librosa通常用

于分析音頻信號(hào),但更適合音樂(lè)信號(hào)分析。它包括構(gòu)建一個(gè)音樂(lè)信息檢索

4

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

(MIR)系統(tǒng)的具體細(xì)節(jié),目前,Librosa已充分實(shí)現(xiàn)文檔化,并具有許多相關(guān)

的示例和教程。

2.項(xiàng)目可行性

隨著科技的不斷發(fā)展,文娛項(xiàng)目也開(kāi)始不斷創(chuàng)新,而音樂(lè)作為文娛類(lèi)不可

缺少的東西更是逐步豐富起來(lái),越來(lái)越多的人開(kāi)始去聽(tīng)不同的音樂(lè),當(dāng)遇到自

己所喜歡的音樂(lè)的時(shí)候,往往想要更多的了解它,但又止步于自己的專業(yè)水平

不高無(wú)法得知其類(lèi)型,這時(shí)音樂(lè)分類(lèi)就顯得尤為重要了,本項(xiàng)目通過(guò)python中

的Librosa庫(kù)進(jìn)行音頻解析,然后用python中RNN-LSTM模型對(duì)音頻進(jìn)行分類(lèi)。

這樣做不僅僅可以讓聽(tīng)眾一目了然的知道自己所聽(tīng)的音樂(lè)類(lèi)型是什么,更讓聽(tīng)

眾了解了自己所喜歡的音樂(lè)類(lèi)型從而去所分類(lèi)好的音樂(lè)中聽(tīng)更多相同類(lèi)型的音

樂(lè)。

2.2數(shù)據(jù)集分析

此項(xiàng)目的數(shù)據(jù)集來(lái)源于千千音樂(lè)網(wǎng),通過(guò)python爬取千千音樂(lè)網(wǎng)中的歌曲

并進(jìn)行保存。其中的音樂(lè)主要分為十個(gè)類(lèi)別,分別為:disco(迪斯科),reggae(雷

鬼),rock(搖滾),pop(流行),blues(藍(lán)調(diào)),country(鄉(xiāng)村),jazz(爵士),

classical(古典),metal(金屬),hiphop(嘻哈)。并且他們的時(shí)長(zhǎng)都為30秒,

這樣有利于使用TensorFlow框架構(gòu)建神經(jīng)網(wǎng)絡(luò)。

2.3關(guān)鍵技術(shù)分析

2.3.1數(shù)據(jù)采集技術(shù)

大數(shù)據(jù)的數(shù)據(jù)采集是一個(gè)重要的步驟,那么爬蟲(chóng)是一個(gè)工具可以幫助我們爬

取網(wǎng)站中的數(shù)據(jù),爬蟲(chóng)的主要作用就是可以幫助我們爬取想要獲取的歷史數(shù)據(jù)。

爬蟲(chóng)的本質(zhì)是一段程序。因?yàn)樾枰廊〉木W(wǎng)站下有可能會(huì)套一層另外的一個(gè)網(wǎng)

站,他是一層一層的去爬的。所以爬蟲(chóng)又被稱為網(wǎng)頁(yè)蜘蛛,網(wǎng)絡(luò)機(jī)器人。

爬蟲(chóng)根據(jù)用途可分為兩類(lèi):第一類(lèi)為聚焦爬蟲(chóng)主要針對(duì)特定的網(wǎng)站,第二類(lèi)

為通用爬蟲(chóng)通常指搜索引擎的爬蟲(chóng)。

爬蟲(chóng)的主要流程:發(fā)送請(qǐng)求–獲取響應(yīng)–提取數(shù)據(jù)。如圖2-1所示

5

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖2-1爬蟲(chóng)流程

爬蟲(chóng)的請(qǐng)求和響應(yīng)庫(kù):http.client,urllib,requests。

爬蟲(chóng)的框架:Scrapy,Scrapy-Redis,PySpider。

數(shù)據(jù)提取的工具:正則表達(dá)式,BeautifulSoup4,XPath,JsonPath。

注意:由于我們的某些需求,需要獲取大量的數(shù)據(jù),但是一條一條獲取太麻

煩,所以我們使用爬蟲(chóng)去批量獲取網(wǎng)站所展示的免費(fèi)數(shù)據(jù)是合法的,但是如果

我們利用爬蟲(chóng)去繞過(guò)網(wǎng)站的防護(hù)和權(quán)限從而獲取其需要收費(fèi)或者私密數(shù)據(jù)時(shí),

則為竊取數(shù)據(jù),是違法行為。

2.3.2LSTM技術(shù)

LSTM最早是由Hochreiter和Schmidhuber在1997年提出的,因?yàn)樵?012

年深度學(xué)習(xí)不斷興起,LSTM又經(jīng)過(guò)了很多代大佬的改進(jìn)和發(fā)展,開(kāi)始不斷形成

了比較完整且系統(tǒng)的LSTM框架,之后便在很多領(lǐng)域得到廣泛應(yīng)用。LSTM的提

出主要是為了解決之前RNN的長(zhǎng)期依賴問(wèn)題。傳統(tǒng)的RNN節(jié)點(diǎn)輸出僅僅由權(quán)值,

偏置和激活函數(shù)三者來(lái)決定。由于RNN是一個(gè)鏈?zhǔn)浇Y(jié)構(gòu)導(dǎo)致它的每個(gè)時(shí)間片是

使用相同的參數(shù),而LSTM不一樣,LSTM引入了門(mén)(gate)的機(jī)制用來(lái)控制特

征的流通和損失這樣才得以解決RNN的長(zhǎng)期依賴的問(wèn)題。

3數(shù)據(jù)采集

3.1數(shù)據(jù)集需求分析

打開(kāi)谷歌瀏覽器,首先輸入千千網(wǎng)網(wǎng)址/songlist,

在首頁(yè)找到流派,按F12打開(kāi)控制臺(tái),選擇netWork-XHR,然后選擇一個(gè)流派查

看控制臺(tái)返回的數(shù)據(jù)。如圖3-1所示。

6

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖3-1控制臺(tái)數(shù)據(jù)

由點(diǎn)擊圖中預(yù)覽(Preview)可知此數(shù)據(jù)是一個(gè)jason數(shù)據(jù),點(diǎn)擊Headers,

發(fā)現(xiàn)其請(qǐng)求方式為GET請(qǐng)求,找到了其歌曲列表數(shù)據(jù)后即可開(kāi)始獲取其需要的

信息從而進(jìn)行爬取。

3.2數(shù)據(jù)集獲取分析

找到歌曲列表后由于數(shù)據(jù)都是動(dòng)態(tài)加載的,我們?nèi)绻褂胷equests模塊直

接請(qǐng)求網(wǎng)址是不可能得到這些數(shù)據(jù)的,我們還需要進(jìn)入到開(kāi)發(fā)者模式點(diǎn)

Network-XHR對(duì)歌曲列表的數(shù)據(jù)進(jìn)行分析并找到歌曲中相應(yīng)的數(shù)據(jù)。如圖3-2。

7

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖3-2歌曲數(shù)據(jù)分析

通過(guò)分析,我們得到的歌曲id,作者名字,歌曲名稱等數(shù)據(jù),通過(guò)歌曲試聽(tīng)

可獲得下載鏈接,通過(guò)我們所獲得的歌曲id即可訪問(wèn)到相應(yīng)的Jason文件

3.3數(shù)據(jù)集下載

將所獲取到的數(shù)據(jù)下載保存到music文件夾中。

圖3-3數(shù)據(jù)集下載

4數(shù)據(jù)集處理

數(shù)據(jù)清洗是數(shù)據(jù)分析中的重要環(huán)節(jié),目的是為了提高數(shù)據(jù)的準(zhǔn)確性,完整

8

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

性和可用性,其中可分為數(shù)據(jù)檢查、數(shù)據(jù)糾錯(cuò)、數(shù)據(jù)去重、數(shù)據(jù)填充和數(shù)據(jù)篩

選五個(gè)內(nèi)容。

數(shù)據(jù)轉(zhuǎn)換是將一種數(shù)據(jù)格式或者結(jié)構(gòu)轉(zhuǎn)換為另一種數(shù)據(jù)格式或結(jié)構(gòu)的過(guò)程,

它包含數(shù)據(jù)格式轉(zhuǎn)換、數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換以及數(shù)據(jù)編碼轉(zhuǎn)換。這樣做有利于后續(xù)對(duì)

數(shù)據(jù)進(jìn)行分析和處理,另外數(shù)據(jù)轉(zhuǎn)換是數(shù)據(jù)集處理的重要環(huán)節(jié)之一。

數(shù)據(jù)處理是系統(tǒng)工程和自動(dòng)控制的基本環(huán)節(jié)。目前數(shù)據(jù)處理已經(jīng)進(jìn)入了社

會(huì)生產(chǎn)和社會(huì)生活等多個(gè)領(lǐng)域。人類(lèi)社會(huì)發(fā)展的進(jìn)程也受到了數(shù)據(jù)處理技術(shù)的

重大影響。數(shù)據(jù)處理的主要目的是把數(shù)據(jù)轉(zhuǎn)變?yōu)橛杏玫男畔亩鴰椭藗兏?/p>

的理解和利用數(shù)據(jù)。

4.1數(shù)據(jù)預(yù)處理

1.搭建一個(gè)空的字典data,用于以正確的格式儲(chǔ)存訓(xùn)練數(shù)據(jù),其中mapping

中用于放入音樂(lè)的類(lèi)型,mfcc中放入切分的片段,lables為標(biāo)簽為每段音樂(lè)添

加類(lèi)型標(biāo)簽值為mapping中類(lèi)型的下標(biāo)。

圖4-1儲(chǔ)存訓(xùn)練數(shù)據(jù)

2.遍歷目錄文件利用dirpath.split方法對(duì)文件進(jìn)行切割,從而分割出音

樂(lè)類(lèi)型。

圖4-2分割音樂(lè)類(lèi)型

3.通過(guò)循環(huán)遍歷的方法加載音頻文件,并對(duì)文件進(jìn)行分析,提取出其中正

確的片段,判斷其長(zhǎng)度是否達(dá)到了預(yù)期長(zhǎng)度達(dá)到則保存,用于作為目標(biāo)數(shù)據(jù)集。

9

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖4-3加載數(shù)據(jù)集

4.保存數(shù)據(jù)集并使用json.dump方法將數(shù)據(jù)集指定為json文件。

圖4-4將數(shù)據(jù)集保存為json文件

5.運(yùn)行調(diào)試結(jié)果。結(jié)果中可知。我們的音樂(lè)類(lèi)型分為迪斯科,雷鬼樂(lè),搖

滾樂(lè),流行樂(lè),布魯斯(藍(lán)調(diào)),鄉(xiāng)村音樂(lè),爵士樂(lè),古典音樂(lè),金屬,嘻哈

十個(gè)類(lèi)別。

10

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖4-5音樂(lè)類(lèi)型分類(lèi)結(jié)果

4.2切分訓(xùn)練集和測(cè)試集

一般情況下,我們通常會(huì)將原始數(shù)據(jù)中的80%作為訓(xùn)練集,20%作為測(cè)試

集,當(dāng)數(shù)據(jù)量足夠大的時(shí)候,也可以將10%作為測(cè)試集。由于我們的原始數(shù)據(jù)

不算很多。所以這里我們用到train_test_split方法對(duì)數(shù)據(jù)集進(jìn)行切分并且將

測(cè)試集的大小設(shè)置為30%。

圖4-6切分?jǐn)?shù)據(jù)集和訓(xùn)練集

5模型構(gòu)建及評(píng)估分析

5.1模型構(gòu)建

5.1.1模型網(wǎng)絡(luò)結(jié)構(gòu)

在此次作品中我將采用LSTM神經(jīng)網(wǎng)絡(luò)模型也稱為長(zhǎng)短期記憶網(wǎng)絡(luò)模型

它是一種用于處理序列數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)模型,它是傳統(tǒng)RNN的變體,它與

11

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

RNN相比可以緩解梯度消失或爆炸的現(xiàn)象。它在機(jī)器識(shí)別以及語(yǔ)言翻譯等領(lǐng)

域都有很不錯(cuò)的表現(xiàn),其結(jié)構(gòu)如圖5-1所示。

圖5-1模型網(wǎng)絡(luò)結(jié)構(gòu)

5.1.2創(chuàng)建LSTM模型

構(gòu)建一個(gè)由兩個(gè)LSTM層,一個(gè)全連接層和一個(gè)輸出層組成的網(wǎng)絡(luò)模型。其

中第一個(gè)LSTM層的輸出作為第二個(gè)LSTM層的輸入,中間三層為隱藏層,全連

接層我采用了relu激活函數(shù)并且神經(jīng)元為64個(gè),輸出層我采用了softmax激

活函數(shù)。代碼如圖5-2。

圖5-2創(chuàng)建模型

12

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

5.2模型編譯

設(shè)置優(yōu)化器optimizer這里的優(yōu)化器我們使用Adam并且將學(xué)習(xí)率設(shè)置為

0.05。編譯模型時(shí)設(shè)置損失函數(shù)loss以及準(zhǔn)確性。代碼如圖5-3。

圖5-3設(shè)置優(yōu)化器和損失函數(shù)代碼

5.3模型訓(xùn)練與調(diào)優(yōu)

5.3.1模型訓(xùn)練

對(duì)編譯完成的模型進(jìn)行訓(xùn)練并觀察結(jié)果。

圖5-4模型訓(xùn)練代碼

圖5-5模型訓(xùn)練結(jié)果

由圖5-5的結(jié)果圖可知我們所構(gòu)建的模型出現(xiàn)了過(guò)擬合的現(xiàn)象。

13

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

5.3.2學(xué)習(xí)率調(diào)優(yōu)

我們使用Adam優(yōu)化器并且將學(xué)習(xí)率(learning_rate)調(diào)整為0.001,

如圖5-6。

圖5-6學(xué)習(xí)率調(diào)整

5.4出現(xiàn)問(wèn)題與解決方案

5.4.1問(wèn)題分析

由模型訓(xùn)練的結(jié)果中可以得出我們的模型出現(xiàn)了過(guò)擬合的問(wèn)題,為了更

加清晰的顯現(xiàn)出過(guò)擬合問(wèn)題,我們分別繪制出精度圖和損失評(píng)估圖進(jìn)行進(jìn)一

步分析。

圖5-7繪制圖形

14

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖5-8調(diào)試結(jié)果圖

由結(jié)果圖5-8可知,我們的模型在損失圖中訓(xùn)練集直線下降,而測(cè)試集表面

上下降后其實(shí)又在不斷回升,從而,我們進(jìn)一步得出模型過(guò)擬合的結(jié)論。

5.4.2解決方案

對(duì)于過(guò)擬合問(wèn)題,在我們深度學(xué)習(xí)中有以下五種方法,分別是增加數(shù)量也

就是獲得更多數(shù)據(jù)、盡早停止訓(xùn)練、Dropout簡(jiǎn)化模型、限制權(quán)值等于正規(guī)化、

使用正則化以及使用葉貝斯方法。而在這里,我們將使用正則化的方式來(lái)解決

過(guò)擬合的問(wèn)題。這種方法適用于大多數(shù)機(jī)器學(xué)習(xí),包括神經(jīng)網(wǎng)絡(luò)。他們的做法

大同小異。簡(jiǎn)化機(jī)器學(xué)習(xí)的關(guān)鍵公式是y=WxW是機(jī)器需要學(xué)習(xí)的各種參數(shù)。在

過(guò)擬合中,W的值經(jīng)常變化很大或很小。為了防止W變化太大,我們?cè)谟?jì)算誤差

上做了一些技巧。原始的成本誤差是這樣計(jì)算的,成本=預(yù)測(cè)值的平方-真實(shí)值。

如果W太大,我們會(huì)使成本相應(yīng)增加,成為一種懲罰機(jī)制。所以我們自己考慮

W。這里,abs是絕對(duì)值。如圖5-9,我們?cè)陔[藏層中加入了正則化內(nèi)核來(lái)進(jìn)行

正則化處理。

15

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖5-9加入正則化內(nèi)核

圖5-10調(diào)整后結(jié)果圖

通過(guò)結(jié)果圖5-10來(lái)看,我們?cè)谶M(jìn)行正則化之后我們的訓(xùn)練集精度與測(cè)試集

精度以及相差不大,損失值更使幾乎重合,說(shuō)明我們對(duì)與過(guò)擬合的處理相當(dāng)有

效。

5.5模型部署

5.5.1前端設(shè)計(jì)

使用vscode設(shè)計(jì)前端頁(yè)面,用于實(shí)現(xiàn)顯示當(dāng)前音樂(lè)類(lèi)別的功能,實(shí)現(xiàn)代碼

如圖5-11。使用說(shuō)明:首先在文件夾框中選擇你想要識(shí)別的音樂(lè),選擇完成后

點(diǎn)擊開(kāi)始識(shí)別按鈕,即可顯示其類(lèi)型所占的比例并通過(guò)比例判斷音樂(lè)類(lèi)型。顯

示界面如圖5-12。

16

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論