系統學習機器學習之神經網絡(十一) --TDNN

近來在瞭解卷積神經網絡(CNN),後來查到CNN是受語音信號處理中時延神經網絡(TDNN)影響而發明的。本篇的大部分內容都來自關於TDNN原始文獻【1】的理解和整理。該文寫與1989年,在識別"B", "D", "G"三個濁音中得到98.5%的準確率,高於HMM的93.7%。是CNN的先驅。

 

普通神經網絡識別音素

在講TDNN之前先說說一般的神經網絡的是怎樣識別音素的吧。假設要識別三個輔音"B", "D", "G",那麼我們可以設計這樣的神經網絡:

圖1

其中輸入0-12代表每一幀的特徵向量(如13維MFCC特徵)。那麼有人可能會問了,即使在同一個因素"B"中,比如"B"包含20幀,那麼第1幀與第15幀的MFCC特徵也可能不一樣。這個模型合理嗎?事實上,"B"包含的20幀MFCC特徵雖然有可能不一樣,但變化不會太大,對於因素還是有一定區分度的,也就是說這個模型湊合湊合還能用,但效果不會非常好。GMM模型可以用這種模型來解釋。

 

時延神經網絡(TDNN)

考慮到上述模型只用了一幀特徵,那麼如果我們考慮更多幀,那麼效果會不會好呢?

好,那麼我們設計一個包含多幀的神經網絡,如圖2我們考慮延時爲2,則連續的3幀都會被考慮。其中隱含層起到特徵抽取的作用,輸入層每一個矩形內共有13個小黑點,代表該幀的13維MFCC特徵。假設有10個隱含層(這個不對,意思應該是一個隱層10個節點),那麼連接的權重數目爲3*13*10=390。

 

圖2

爲了結構緊湊顯示,我們將其重繪爲圖3

圖3

圖3與圖2是等價的。其中每條彩色線代表13*10=130個權重值。三條彩色線爲390個權重。也有資料稱之爲濾波器。

好,如果時間滾滾向前,我們不斷地對語音幀使用濾波器,我們可以得到圖4

圖4

 

這就是延時神經網絡的精髓了!其中綠色的線權值相同,紅色的線權值相同,藍色的線權值相同。相當於把濾波器延時。輸入與隱層共390個權值變量待確定。

每個隱層矩形內包含10個節點,那麼每條棕色的線包含10個權值,假設輸出層與隱層的延時爲4,則接收5個隱層矩形內的數據,那麼隱層與輸出層合計權值爲10*5*3=150。權值非常少!所以便於訓練。

 

下面就不難理解文獻【1】上的圖了。思想與上文一樣,不過文章多用了一層隱層(多隱層有更強的特徵提取和抽象能力)

圖5

介紹一下他的做法。Input Layer爲語譜圖,黑塊爲大值,灰塊爲小值。輸入層縱向爲經過mel濾波器的16個特徵(沒用MFCC),橫向爲幀。Input Layer 的延時爲2,映射到Hidden Layer 1的關係爲16*3 -> 8,權值個數爲384。Hidden Layer 1 的延時爲4,映射到Hidden Layer 2的關係爲8*5 -> 3,權值個數爲120。Hidden Layer 2 的延時爲8,映射到輸出層的關係爲3*9 -> 3,權值個數爲81。合計權值爲384+120+81=585。輸出的三個單元分別代表"B", "D", "G"的得分。

 

訓練方法

(1)和傳統的反向傳播算法一樣。

(2)TDNN有快速算法,有興趣的讀者可以搜索。

 

小結

總結TDNN的優點有以下:

(1)網絡是多層的,每層對特徵有較強的抽象能力。

(2)有能力表達語音特徵在時間上的關係。

(3)具有時間不變性。

(4)學習過程中不要求對所學的標記進行精確的時間定位。

(5)通過共享權值,方便學習。

 

參考資料

【1】Waibel A, Hanazawa T, Hinton G, et al. Phoneme recognition using time-delay neural networks[J] (TDNN的原始論文,想了解的同學請細看)

【2】趙力 《語音信號處理》 chap 6.3. 6 (也是對上文的一些解釋和補充說明)

接下來讀者可以看卷積神經網絡了(CNN),相信對CNN的理解會有所幫助。

https://blog.csdn.net/App_12062011/article/details/53433736

轉自:http://blog.csdn.net/richard2357/article/details/16896837

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章