劉建 黃嬌潔
摘要:如今深度學(xué)習(xí)在聲紋識別的領(lǐng)域取得了不錯的成績,其中代表就是卷積神經(jīng)網(wǎng)絡(luò)(CNN),但是傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中需要耗費(fèi)大量的時間。為了解決這一問題,本文了快速批量歸一化算法(FBN),用以提高網(wǎng)絡(luò)的融合速度,縮短培訓(xùn)時間。卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練時需要大量的樣本數(shù)據(jù),本文對TIMIT數(shù)據(jù)集預(yù)處理之后進(jìn)行數(shù)據(jù)增強(qiáng)處理,防止過擬合發(fā)生。實驗結(jié)果表明,與沒有FBN的網(wǎng)絡(luò)相比,具有FBN的CNN網(wǎng)絡(luò)減少了48.04%的額訓(xùn)練時間。
關(guān)鍵詞: 聲紋識別 ;CNN ;FBN;數(shù)據(jù)增強(qiáng)
中圖分類號:TP393? ? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2019)24-0207-03
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
An Algorithm for Improving the Training Speed of Deep Neural Networks
LIU Jian1, HUANG Jiao-Jie2
(1.School of Electronic Information , Yangtze University , Jingzhou 434023, China; 2.School of Mechanical Engineering, Hubei University of Technology, Wuhan 430068, China)
Abstract: Today, deep learning has achieved good results in the field of voiceprint recognition. The representative is the Convolutional Neural Network (CNN), but the traditional neural network training process takes a lot of time. In order to solve this problem, this paper proposes a fast batch normalization algorithm (FBN) to improve the network convergence speed and shorten the training time. Convolutional neural network training requires a large amount of sample data. In this paper, the TIMIT data set is preprocessed and data enhancement processing is performed to prevent over-fitting. The experimental results show that compared with the network without FBN, the CNN network with FBN reduces the training time by 48.04%.
Key words: Voiceprint recognition ; CNN ; FBN ; Data enhancement
聲紋識別是一種生物識別技術(shù)[1],通過聲紋特征來識別說話人。隨著深度學(xué)習(xí)的出現(xiàn),卷積神經(jīng)網(wǎng)絡(luò)(CNN)被廣泛用于語音識別[2-4]。訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)需要大量的訓(xùn)練樣本來訓(xùn)練數(shù)百萬個網(wǎng)絡(luò)參數(shù)[5]來提升精確度,這也就是耗時長的問題。Le Cun 提出數(shù)據(jù)規(guī)范化可能會加速網(wǎng)絡(luò)融合[6]。根據(jù)批量歸一化(BN)[7]的啟發(fā),提出快速批量歸一化算法(FBN)。本文中使用的CNN-FBN網(wǎng)絡(luò)由五個卷積層和三個全連接層組成,在激活功能之前將FBN添加到卷積層,可以有效地加速網(wǎng)絡(luò)的收斂。
1 算法描述
當(dāng)小樣本聲紋數(shù)據(jù)集被用于訓(xùn)練CNN網(wǎng)絡(luò)時,由于樣本少,聲紋的識別準(zhǔn)確度低。為了提高樣本聲紋識別的性能,我們將源樣本進(jìn)行數(shù)據(jù)增強(qiáng),并在CNN網(wǎng)絡(luò)模型激活功能之前,將FBN添加到卷積層中。通過卷積和池化功能,CNN網(wǎng)絡(luò)的全連接層集成了所有的聲紋特征映射,達(dá)到提高識別率和訓(xùn)練速度。算法流程如圖1所示:
2 預(yù)處理
在使用語言訓(xùn)練之前,由于語音信號的短時不變性,語音信號[x(t)]首先被分成[x(m,n)](m是幀數(shù),n是幀長度),通過短時傅里葉變換獲得[X(m,n)]。周期圖[Y(m,n)]使用公式[(Ym,n=Xm,n×Xm,n?)] 從[X(m,n)]中獲得,然后取[10×lgY(m,n)]。最后根據(jù)時間將m轉(zhuǎn)換成標(biāo)度M,根據(jù)頻率將n轉(zhuǎn)換為標(biāo)度N,并根據(jù)[(M,N,10×lgYm,n)]繪制二維語譜圖。語譜圖(b)由原始語音信號(a)產(chǎn)生,如圖2所示:
2.1 數(shù)據(jù)增強(qiáng)
為了防止過擬合,數(shù)據(jù)增強(qiáng)是一種方法,將一系列的幾何變換添加到原始語譜圖中[8]。它主要有刻度、變焦、移位和噪聲。本文中,我們通過基于凸透鏡成像的數(shù)據(jù)增強(qiáng)來增加樣本集[9]。
基于凸透鏡成像的方法如下:
(1) 根據(jù)凸透鏡成像原理,通過取P點位置L1(F (2) 通過取P位置L2(L2=2F)得到與原始圖像一樣大的圖像,如圖3b所示。 (3) 通過取P位置L3(L3>2F)得到比原始圖像小的圖像,如圖3c所示。 (4) 最后將所有圖像尺度歸一化為227*227作為CNN網(wǎng)絡(luò)的輸入。 2.2卷積神經(jīng)網(wǎng)絡(luò)模型 本文中使用CNN-FBN網(wǎng)絡(luò)由五個卷積層、三個全連接層組成。在激活功能之前將FBN添加到卷積層。輸入的訓(xùn)練集維度大小是227*227。卷積層CONV1使用96*11*11*3卷積核來滑動輸入語譜圖像的227*227維,步長為4像素。卷積層CONV2使用256*3*3*96卷積核,卷積層CONV3-CONV4-CONV5依次使用384*3*3*256,384*3*3*384,256*3*3*384卷積核。FC6-FC8中神經(jīng)元數(shù)量依次為4096,4096,200。CONV1-CONV5具有獲得的tezhe特征映射最大池化,全連接層用于對聲紋進(jìn)行分類。網(wǎng)絡(luò)結(jié)構(gòu)圖如圖4所示: 通過前向傳播學(xué)習(xí)網(wǎng)絡(luò)參數(shù)。在每個圖層中,輸入要素計算方法如下: [netl+1j=wljxlj+bl+1j]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(1) [xl+1j=s(FBN(netl+1j))]? ? ? ? ? ? ? ? ? ? ? ? ? (2) [xlj]表示第[l]層的第[j]個特征圖,[xl+1j]表示第[(l+1)]層的第[j]個特征圖,[Wl+1j]和[bl+1j]分別是權(quán)重矩陣和特征映射[xl+1j]的偏差。[s(*)]是RELU函數(shù),[FBN(*)]是快速批量歸一化算法。其中FBN算法獨(dú)立應(yīng)用于每個激活,本文關(guān)注的具有t維輸入的層的特定激活[ek(k∈[1,t])]。FBN算法的詳細(xì)情況如下: 小批量:[μ=1si=1sei]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (3) 小批量差異:[σ2=1si=1s(ei-μ)2]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (4) 標(biāo)準(zhǔn)化值:[gi=ei-μσ]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(5) 更新全球平均值:[μB=1-ξ*μB+ξ*μ]? ? ? ? ? ? ? ? ? ? (6) 更新全局差異:[σB2=1-ζ*σB2+ζ*σ2]? ? ? ? ? ? ? ? ? (7) 更新動量值[ξ]:[ξ=ξ-γ?L?ξ]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(8) 跟新動量值[ζ]:[ζ=ζ- γ?L?ζ]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (9) 在FBN算法中,[μB]和[σB2]分別初始化0和1。對于學(xué)習(xí)率[γ],初始化為0.01。另外,它與[ξ]和[ζ]有關(guān),它們是從批量數(shù)據(jù)中學(xué)習(xí)的。所以組合系數(shù)[ξ]和[ζ]實現(xiàn)了每次激活的自適應(yīng)。驗證過程中,采用[μB]和[σB2]的最終訓(xùn)練結(jié)果。通過規(guī)范整個網(wǎng)絡(luò)的激活,F(xiàn)BN有效解決了內(nèi)部協(xié)變量偏移引起的問題[7]。可以使用更高的學(xué)習(xí)率而不考慮過擬合的風(fēng)險,從而加速網(wǎng)絡(luò)的訓(xùn)練。 3 實驗設(shè)置 3.1 數(shù)據(jù)集 本文采用的是美國國家標(biāo)準(zhǔn)技術(shù)局的TIMIT數(shù)據(jù)庫[10]。TIMIT數(shù)據(jù)集中包含來自美國不同地區(qū)的630人(每人10個句子),處理過程中只得到4620張語譜圖,利用數(shù)據(jù)增強(qiáng)將源數(shù)據(jù)集擴(kuò)充到13860張語譜圖,實驗按照3:1的比例分為訓(xùn)練集和測試集,其中訓(xùn)練集和測試集大小為10395和3465張語譜圖。 3.2 硬件設(shè)施和實驗設(shè)置 實驗在ubuntu 1604的操作系統(tǒng)中進(jìn)行,具有GTX 1060 GPU,內(nèi)存為8GB,python3.5上的軟件平臺,以及用于跨平臺Qt機(jī)器的接口軟件tensorflow1.2.1。CNN、CNN+BN、CNN+FBN的網(wǎng)絡(luò)設(shè)置如表1所示: 表1中,dropout表示可以防止模型過擬合的技術(shù),其中“--”表示網(wǎng)絡(luò)不需要dropout,因為批量標(biāo)準(zhǔn)化可以防止模型過擬合[7]。 3.3 實驗結(jié)果與分析 在設(shè)置相關(guān)參數(shù)后進(jìn)行實驗,訓(xùn)練過程中三種模型的準(zhǔn)確率和損失函數(shù)如圖5,圖6所示: 由圖5,圖6分析可知,CNN模型的發(fā)展很成熟,所以三種模型的準(zhǔn)確率基本都在95%以上。同時由損失函數(shù)可以發(fā)現(xiàn)具有FBN網(wǎng)絡(luò)的模型收斂速度明顯快于其他兩個模型。 3.4 三種模型的收斂速度比較 為了證明模型的收斂速度優(yōu)越性,本文進(jìn)行了三種模型訓(xùn)練的時間對比實驗,使用相同的數(shù)據(jù)集,對于沒有BN和FBN的深層網(wǎng)絡(luò),基本學(xué)習(xí)率設(shè)置為0.01;對于具有BN和FBN的深層網(wǎng)絡(luò),基本學(xué)習(xí)率設(shè)置為0.05;并且整體網(wǎng)絡(luò)損失設(shè)置為0.01。以下實驗結(jié)果顯示了三次實驗的平均值,如圖7所示: 由圖7可知,CNN+FBN網(wǎng)絡(luò)與原始網(wǎng)絡(luò)比較,訓(xùn)練時間減少了48.04%,與CNN+BN比較,訓(xùn)練時間減少了19.11%。這有兩個原因:首先,快速批量歸一化操作將數(shù)據(jù)歸一化為零均值和單位方差;其次,總方差和均值分別由小批量方差和均值代替,從而減少了整體計算量。經(jīng)驗證,將FBN網(wǎng)絡(luò)添加到卷積過程中將加速網(wǎng)絡(luò)的收斂。 4 總結(jié) 本文基于BN算法的啟發(fā),提出了FBN算法, 并結(jié)合卷積神經(jīng)網(wǎng)絡(luò)的方法進(jìn)行了測試, 并且取得了相較好的成績,證實本文提出的模型可以很好地解決深層神經(jīng)網(wǎng)絡(luò)收斂速度的問題。同時網(wǎng)絡(luò)模型的準(zhǔn)確率也比之傳統(tǒng)的CNN網(wǎng)絡(luò)要高。 參考文獻(xiàn): [1] Islam M A. Frequency domain linear prediction-based robust text-dependent speaker identi?cation. In Proceedings of the International Conference on Innovations in Science, Engineering and Technology (ICISET), Dhaka, Bangladesh, 28–29 October 2016:1–4. [2] Abdel-Hamid O,Mohamed A R,Jiang H. Convolutional neural networks for speech recognition. IEEE/ACM Trans. Audio Speech Lang. Process. 2014, 22, 1533–1545. [3] Huang J T,Li J,Gong Y. An analysis of convolutional neural networks for speech recognition. In Proceedings of the IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Brisbane, Australia, 19–24 April 2015; pp. 4989–4993. [4] Lukic Y,Vogt C,Dürr O. Speaker identi?cation and clustering using convolutional neural networks. In Proceedings of the IEEE International Workshop on Machine Learning for Signal Processing (MLSP), Salerno, Italy, 13–16 September 2016; pp. 1–6. [5] Oquab M,Bottou L,Laptev, I. Learning and transferring mid-level image representations using convolutional neural networks. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Columbus, OH, USA, 23–28 June 2014; pp. 1717-1724. [6] LeCun Y,Bottou L, Bengio Y,et al. Gradient-based learning applied to document recognition. Proceed. IEEE 1998, 86, 2278-2324. [7] Ioffe S,Szegedy C. Batch normalization: Acceleratingdeep network training by reducing internal covariate shift. In Proceedings of the International Conference Machine Learning (ICML), Lille, France, 6–11 July 2015; pp. 448–456. [8] Dutta T.Dynamic time warping based approach to text-dependent speaker identification using spectrograms.In Proceedings of the 2008 IEEE Congress on Image and Signal Processing? CISP08, Hainan, China, 27–30 March 2008; pp. 354–360. [9] Niu Y F,Zou D S,Niu Y D,et al. A breakthrough in speech emotion recognition using deep retinal convolution neural networks. Comput. Sci. 2017, arXiv:1707.09917. [10] DARPA TIMIT Acoustic-Phonetic Continuous Speech Corpus. Available online: https://catalog.ldc.upenn. edu/ldc93s1 (accessed on 25 December 2017). 【通聯(lián)編輯:唐一東】