目錄
Convolutional neural networks for small-footprint keyword spotting
Abstract
Introduction
Keyword Spotting Task
CNN Architectures
Experimental Details
Convolutional neural networks for small-footprint keyword spotting
Sainath, T. and Carolina Parada. “Convolutional neural networks for small-footprint keyword spotting.” INTERSPEECH (2015).
大家若參考該文章,請記得添加參考說明
Abstract
(1) cnn比起DNN引數少,性能好,
(2) 我們在作業中考慮兩個不同的應用場景中要考慮的問題:
- 一個我們限制KWS系統的乘法數,
- 另一個我們限制引數的數量,
(3) 我們發現,與DNN相比,CNN架構的錯誤拒絕率( false reject rate)相對提高了27-44%,同時符合每個應用程式的約束條件,
Introduction
(1) 引入KS,其應用場景,目前的難點:它不斷地監聽特定的關鍵字來啟動語音輸入,此關鍵字定位(KWS)系統運行在移動設備上,因此必須具有較小的記憶體占用和較低的計算能力,目前谷歌[2]的KWS系統使用深度神經網路(DNN),它被訓練來預測子關鍵字目標,
(2) 說明DNN比起傳統方法的優勢:
- DNN已被證明優于關鍵字/填充隱馬爾可夫模型系統(Keyword/Filler HMM),這是一種常用的關鍵字定位技術,
- 此外,DNN在設備上運行具有吸引力,因為可以通過改變網路中的引數的數量來很容易地調整模型的大小,
(3) 說明CNN比起DNN的優勢:而卷積神經網路(CNNs)[3]在過去幾年已經在聲學建模中流行,在各種小詞匯任務[4,5,6]中比dnn有所改進(提升性能且減小模型尺寸),
- 第一點:DNN網路忽略輸入的拓撲性,即,輸入可以以任何(固定的)的順序呈現,而不影響網路[3]的性能,然而,語音的光譜表示在時間和頻率上具有很強的相關性,CNN通過在輸入空間區域區域共享的權值,使得cnns可以modeling區域相關性,在其他領域[7]被證明是有益的,
- 第二點:dnn并沒有明確設計來模擬語音信號內的translational方差,這可能是由于不同的說話風格[3]而存在的,更具體地說,不同的說話風格會導致共振峰在頻域中被移動,足夠大小的DNN其實也可以捕獲這種特性,但是需要足夠大的訓練樣本與模型結構,cnn通過平均不同區域時間和頻率區域的hidden units的輸出來捕獲引數少得多的平移不變性,
(4) 本文解決 parameters and multiplies問題的方式:
- 考慮到引數數量以及乘法運算元量,在[8]中應用較好的那種CNNs在這里就不能用了,因此,我們引入了一種新的CNN架構,它不進行pool,而是strides the filter in frequency,以適應計算約束問題,
- 其次,我們考慮限制KWS系統的引數總數:通過 pooling in time and frequency,([5][9]第一次證明在不使用多個卷積塊的情況下該方式對語音是有效的,)
(5) 性能評估
- 在由14個不同短語組成的KWS任務上評估
- 通過查看每小時1個假報警(FA)的操作下的假拒絕(FR)率來衡量性能,
- 乘法次數方面 :a CNN which strides filters in frequency,FR性能比DNN提高27%,
- 引數數量方面: a CNN which pools in time and frequency比DNNFR性能提升41%,比傳統CNN(pools in frequency only),FR性能提升6%
Keyword Spotting Task
(1) DNN KS [2]三個模塊:

- 特偵提取:40維log梅爾普系數,25ms的窗大小,10msde 移窗,接下來,在每一幀中,我們向左側堆疊23幀,向右堆疊8幀,并將其輸入到DNN中,
- DNN模塊softmax輸出層包含要檢測的關鍵字短語中的每個單詞的一個輸出目標,再加上一個額外的輸出目標,它表示不屬于關鍵字中的任何一個單詞的所有幀(在圖1中表示為“填充物”),
- 利用分布式異步梯度下降[10],訓練網路權值來優化交叉熵準則
- 在后驗處理模塊中,將DNN的單個幀級后驗得分組合成一個與關鍵字對應的單一分數,
CNN Architectures
(1) 特征提取和后驗處理階段與第2節保持相同,
(2) CNNs結構介紹:

- 權重矩陣W,與輸入V卷積,區域權重共享,W有n個隱藏單元(即特征圖),
- The filter can stride by a non-zero amount s in time and p in frequency. 因此n個特征圖的大小均為:

- 在執行卷積后,一個最大池化層有助于消除由于說話風格、信道失真等而存在的時頻空間中的可變性.(池化執行子采樣操作,以減少時頻空間)我們的池化時無重疊的,[8]證明了有重疊池化的對語音沒有什么作用,這樣可以減少引數數量, 所以n個特征圖的大小變為

(3) 典型的卷積結構(兩個卷積層):
- 輸入t*f = 32*40.,,m=20,r=9
- 卷積乘法是通過s=1和v=1 striding the濾波器跨越時間和頻率
- 傳統CNN僅在頻率上進行池化:q=3
- 第二個卷積濾波器的頻率濾波器大小為r=4,不執行最大池化,
為了引數數量在250k以內:

- 我們稱該結構為cnn-trad-fpool3(我們的基本模型,下文在他的基礎上進行改進)
- 然而,這種架構的一個主要問題是卷積層中的乘法大量倍增,這在第二層由于三維輸入跨越時間、頻率和特征映射導致的,
- 這種型別的體系結構對于功率有限的小足跡KWS任務是不可行的
(4) 將乘法次數限制在500K以內,不限制引數數量:

- 限制乘數的一個解決方案是有一個卷積層而不是兩個層,并且始終有時間濾波器,
- cnn-one-fpool3
- 相比上一個結構,這個在第一層卷積后,乘法次數減少十倍,
- 以上都是s=1,v=1
在上述的基礎上改變v值:

- v=4:cnn-one-fstride4 ,50%重疊,
- v=8:cnn-one-fstride8 , 無重疊
- 表3顯示,如果我們通過v>1來處理濾波器,我們將減少乘數,并且也可以將隱藏單元n的數量增加到比表2中的cnn-one-fpool3架構大3-4倍,
(5) 將引數數量限制在250K以內,不限制乘法次數:
1)
- 在4中的操作,固定乘法次數不變時,引數數量遠小于250k,但由于我們都知道,引數越多,性能越好[6],
- 提高CNN性能的方法是增加特征圖,如果我們想增加特征圖,但保持引數固定,我們必須探索在時間和頻率上的采樣,考慮到我們已經在cnn-trad-fpool3中pool了頻率,在本節中,我們將探索 sub-sampling in time,
- 被人也用過時間pooling,但是效果不好,因為他們要提取的資訊發生在很短的時間內,時間資訊很重要,因此, pooling in time is harmful,
- 然而在KWS中,關鍵字單元出現的時間要長得多(即50-100ms),所以為了減少引數數量,我們可以在時間維度做文章, sub-sampling、 striding or pooling,
2) Striding in Time
- 讓cnn-trad-fpool3中s>1, cnn-tstride2,cnn-tstride4 and cnn-tstride8.
- V = 1,p =1
- 增加時間濾波的步幅,我們可以增加特征映射的數量n,以保持引數的總數不變,希望時間的子采樣不會降低性能,增加特征圖可以提高性能,
3) Pooling in Time
- 通過pooling in time,我們可以增加特征映射的數量n,以保持引數的總數不變,
- S=1,v=1
總之就是Striding改變的是s,v, pooling改變的是p,q
Experimental Details
(1) The lower the FR per FA rate is the better.
(2) Pooling in Frequency:比較了不同的q值,q=1到q=2性能增加不少,q=3性能飽和,比起DNN提升41%
(3) Limiting Multiplies:比較了不同的v值,
- The best performing system is cnn-one-fstride4, where we stride the frequency filter with 50% overlap but do not pool in frequency.
- v=4比v=8好,
- 如果增加了頻率的pooling , 雖然頻率上的池化是有用的cnn-trad-fpool3好于cnn-one-fstride4,但它在計算上很昂貴,因此我們必須大幅減少特征圖來限制計算,所乘法有限時,用cnn-one-fstride4,
- 比dnn提升29%左右
(4) Limiting Parameters
- cnn-trad-fpool3的基礎上改進,改變s值(stride the filter in time),發現都比cnn-trad-fpool3性能差,
- 改變p值(pool in time),cnn-tpool2(p =2)最好,
- To our knowledge, this is the first time pooling in time without sub-networks has shown to be helpful for speech tasks.
總結:
(1)限制乘法次數時:
- cnn-one-fstride4:一層卷積層,stride the filter in frequency ,但是不pool頻率,引數47.6K,乘428.5K
- cnn-trad-fpool3:但是性能上,兩層卷積既stride the filter in frequency ,也pool頻率時更好,引數244.2k,乘9.7M
(2)限制引數數量時:
- 再此基礎:兩層卷積既stride the filter in frequency ,也pool頻率時更好,引數244.2k,乘9.7M,
- cnn-tpool2:對時間進行pool,(p =2),但不stride the filter in time,引數7.5M,乘9.7M,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/297392.html
標籤:其他
