語音識別算法閱讀之TDNN-F


論文:
  A time delay neural network architecture for efficient modeling of longtemporal contexts
思想:
  對TDNN的優化改進,利用SVD將參數矩陣分解為兩個更小的矩陣相乘的形勢,從而減少層參數,以便利用更深的網絡提取表達能力更強的特征;並且要求其中一個矩陣半正定化,使得參數矩陣隨機初始化時訓練不至於發散;此外,本文還在算法中引入了dropout、skip-connection、3-stages convolution等tricks,配合4-gram的語言模型,使得該算法的效果,優於TDNN、TDNN-LSTM等結構,並且解碼速度更快
模型:
  網絡采用多層TDNN-F堆疊架構,並且引入了Factorized conv、across time dropout、skip-connection等tricks;此外,解碼時采用了n-gram語言模型輔助提升解碼效果
  • TDNN-F:Factorized TDNN,顧名思義是在TDNN層基礎上做的改進,將TDNN的參數矩陣M(M的行數小於列數,否則對其進行轉置)通過SVD奇異值分解為兩個小矩陣相乘的形式,從而有效減少層參數,以便在整體參數量相近的情況下,更好的利用網絡深度帶來的優勢;此外,論文指出,直接采用上述形式,當網絡參數隨機初始化時,容易導致訓練發散;於是,在Factorized TDNN更新層參數時,使得其中一個因子矩陣趨緊於α倍數的半正定化矩陣,以此來控制層參數的變化速度,使訓練更穩定;
  1. Factorized TDNN結構:

    從TDNN角度看,Factorized TDNN相當於在兩層前饋層之間引入一層瓶頸層(節點數少於隱藏層);比如原始參數矩陣M=700*2100,將M轉化為兩個因子矩陣形式有:M=AB,其中A=700*250,B=250*2100,那么瓶頸層的節點數即為250;

    從1d-CNN角度看,Factorized TDNN相當於引入一個3*1*700的半正定參數的卷積層,其中卷積核大小為3*1,輸出通道數為700;

    此外,在實踐中,Factorized TDNN可以通過三種形式實現,1)3*1(半正定)->1*1; 2) 2*1(半正定)->2*1;3)2*1(半正定)->2*1(半正定)->2*1;並且提到,3卷積形式因為多出一個卷積層,時域信息會更寬;

  1. Factorized TDNN參數矩陣更新

    假設參數矩陣M(rows>cols),定義P=MMT,當P=I時,M為半正定化矩陣;令Q=P-I,則可以通過最小化f=tr(QQT)來使得M趨近於I;那么目標f相對於M、P、Q的偏導數分別為:∂f/∂Q= 2Q,∂f/∂P= 2Q, and∂f/∂M= 4QM;當優化算法為SGD時,設學習率為ν= 1/8,那么可得參數矩陣M的更新公式為:

    ν= 1/8使得目標函數趨近於二次收斂;tr()是對矩陣的奇異值求和計算,但是,當M離標准正交很遠時,上述更新公式容易發散;但是采用Glorot-style 初始化時,即參數初始值的標准差為M列數平方根的倒數時,不容易發散

    論文中提到,作者希望能夠控制矩陣M的參數變化速度,使得訓練更加穩定;於是,在更新參數時引入倍乘因子α,使得M趨近於α倍的半正定矩陣;此外,每層還引入l2歸一化進一步使訓練更穩定;變化后的參數更新公式為

    其中,α計算過程如下:

     在kaldi的具體實現中(kaldi/src/nnet3/nnet-utils.cc:ConstrainOrthonormalInternal()),為避免當M的奇異值之間差異較大導致的發散,通過減半學習率來減小發散風險;具體分析過程為:tr(P)為矩陣P奇異值(均為正)的和;tr(PP.T)為矩陣P奇異值的平房和;則奇異值mean=tr(P)/dim;且有tr(PP T)>=dim*(tr(P)/dim)^2,即dim*tr(PP T)>=tr(P) 2;則有ratio=tr(PP T)*dim/tr(P) 2>=1,當ratio==1時,表明P的奇異值均相等,ratio>1時,ratio越大表明奇異值差異性越大,越容易造成發散;所以,當ratio>1.02時,調整學習率ν=ν*0.5來降低發散風險
  • dropout:論文采用了across time dropout,即對於一個序列,其各幀中同一維度采用相同的dropout;隨機因子服從[1-2α,1+2α]的均勻分布;此外,在訓練前半段,α先從0->0.5,后半段時從0.5->0;實驗證明,dropout能夠帶來0.2%~0.3%的絕對提升
  • skip-connection:跳躍連接的引入能夠保證信息向深層的流入,有助於緩解梯度消失問題;實驗證明,skip-connection也能帶來0.2%~0.3%的絕對提升
  • Factorizing the final layer:作者發現,當數據集較小時,對中間隱層進行奇異值分解對效果幾乎無提升,但是對最后一層隱層進行奇異值分解時,仍然有提升
訓練:
  • 數據集:300小時Switchboard data;Fisher+Switchboard data combined together (2000 hours);Swahili and Tagalogdata from the MATERIAL program (80 hours each);3-fold 語速增強(0.9x/1.0x/1.1x)
  • 測試集:HUB5’00 evaluation set
  • 語言模型:Switchboard and Fisher+Switchboard:4-gram;MATERIAL setup:3-gram backoff LM+RNN LM rescore
  • baseline:TDNN、TDNN-LSTM、BLSTMs
  • tricks:l2歸一化、α倍數的半正定約束、3-stages卷積層、dropout和skip-connection
實驗:
  • 在大規模語音識別任務上,Factorized TDNN+l2歸一化+半正定約束策略,相比於TDNN結構,參數量僅為1/4的條件下,依然取得更好的識別效果;此外,因為參數量更少,訓練和解碼速度也更快
  • 在300小時Switchboard數據上,TDNN-F結構相比於TDNN、BLSTM、TDNN-LSTM無論在識別效果還是解碼實時因子方面,均具有一定的優勢;在2000小時Fisher+Switchboard數據上,為保證解碼速度,在省去3-stage splicing, dropout 和 ”floating”semi-orthogonal constraint條件下,依然能夠取得可比最優的識別效果和解碼性能
  • 在MATERIAL上,TDNN-F+RNNLM相比於TDNN-LSTM+RNNLM,在參數量相近條件下,也取得了更好的識別效果
結論:
  本文在TDNN基礎上,提出了一種因式分解的TDNN結構TDNN-F;該結構通過SVD將矩陣參數進行奇異值分解,轉換成兩個更小矩陣相乘的形式,並且其中一個矩陣趨緊於半正定化,一方面減少層參數,利用更深的網絡結構提升效果,另一方面矩陣參數半正定化更新的策略也能保證訓練的穩定性;此外,論文還結合3-stage convolution、l2歸一化、dropout、skip-connection等tricks,配合語言模型,取得了比TDNN、BLSTM、TDNN-LSTM等結構更好的識別結果和更快的解碼速度
  • 實現語言:pytorch
  • 網絡結構:
  1. 1*TDNN+8*F-TDNN+1*Dense-ReLU+statspooling+2*Dense-ReLU+softmax;
  2. skip-connection:

    F-TDNN-4:F-TDNN-2+F-TDNN-3;

    F-TDNN-6:F-TDNN-1+F-TDNN-3+F-TDNN-5

    F-TDNN-8:F-TDNN-3+F-TDNN-5+F-TDNN-7

  • TDNN-F結構:2*1(半正定)->2*1(半正定)->2*1
 
  • 半正定卷積參數更新+防止訓練發散策略:

Reference:

[2] kaldi/src/nnet3/nnet-utils.cc


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM