語音識別TDNN-F聲學(xué)模型

參考論文:Semi-Orthogonal Low-Rank Matrix Factorization for Deep Neural Networks(半正交低秩矩陣分解DNN)

一.TDNN-F與TDNN的區(qū)別?
1.增加中間層

與圖1相比,圖2多了維數(shù)較低的中間層,即令

將原來的權(quán)重矩陣M分解為A矩陣和B矩陣,并且限制B矩陣為半正交矩陣,降低中間層維數(shù),在減少模型參數(shù)的同時,依然保持很好的建模能力。kaldi中的例子swbd和librispeech中,采用的結(jié)構(gòu)為1536X160X1536,中間層維度為160。

2.增加跳層連接

跳層連接(skip connections)與殘差結(jié)構(gòu)很像,同樣是為了減少梯度消失,將之前層輸出加到當(dāng)前層輸出作為下一層的輸入,每個TDNN-F結(jié)構(gòu)中的跳層連接都發(fā)生在1536維度的輸出之后。

3.增加dropout

這個比較好理解,如圖3,為了防止過擬合,每個TDNN-F結(jié)構(gòu)中還加了dropout層。

二.TDNN-F模塊的訓(xùn)練?

前邊我們講TDNN-F是將原來的權(quán)重矩陣M分解為兩個矩陣A和B,并將B約束成半正交的,那么加了半正交約束的TDNN-F是如何訓(xùn)練的呢?下面我們結(jié)合論文和代碼著重理解一下這塊。

論文中提到,通過scale化M矩陣或采用L2正則項都可以控制各層參數(shù)變化的快慢,之前的chain-model只是將L2正則項用到最后一層,因為batchnorm層和dropout層的原因,將L2用到隱層作用不是很明顯,通過加"floating"半正交約束,可以將L2用到每個TDNN-F中。(這段不是很理解,可能翻譯的也不對)

論文鏈接:http://www.danielpovey.com/files/2018_interspeech_tdnnf.pdf
代碼:kaldi/src/nnet3/nnet-utils.cc
模型結(jié)構(gòu):kaldi/egs/swbd/s5c/local/chain/tuning/run_tdnn_7q.sh

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容