SVD模型裁剪 TDNN-f

論文:Daniel Povey 2018年論文,
Simi-Orthogonal Low-Rank Matrix Factorization for Deep Neural Networks 半正定低秩矩陣分解DNN
參考:https://www.jianshu.com/p/ddef79012db5
https://www.cnblogs.com/JarvanWang/p/10145861.html
摘要:
TDNN又被稱爲1維CNN(1dCNNS)。本文提出的TDNN-F,結構與經過SVD分解的TDNN相同。但TDNN-F的訓練開始於隨機初始化,SVD分解後,其中一個矩陣被限制爲半正定的。這對TDNNs以及TDNN-LSTM有實質上的提升。
一種減少已訓練模型大小的方法是使用奇異值分解(Singualr Value Decompostion,SVD)對每個權重矩陣因子分解爲兩個更小的因子,丟棄更小的奇異值,然後對網絡參數進行調優。
很明顯,直接訓練隨機初始化後的上述帶有線性瓶頸層的網絡更爲高效。雖然,有人以這一方法訓練成功,但還是出現了訓練不穩定的情況。
爲了克服訓練不穩定的情況,本文將因子分解後的兩個矩陣之一限定爲半正定的,這樣,M=AB.
之中的一個矩陣限制爲半正定矩陣不會損失任何建模能力;並且,這一限制也符合SVD的結果(即,SVD分解後,其中一個子矩陣也是半正定的
此外,受到"dense LSTM"的啓發,本文使用了跳層連接(skip connection)。這一定程度上類似於殘差學習的捷徑連接(shortcut connection)和公路連接(highway connection)。

  1. TDNN-F與TDNN的區別?
    -增加中間層
    在這裏插入圖片描述
    與圖1相比,圖2多了維數較低的中間層,即令M=AB
    將原來的權重矩陣M分解爲A矩陣和B矩陣,並且限制B矩陣爲半正交矩陣,降低中間層的維數,在減少模型參數的同時,依然保持很好的建模能力。kaldi中的例子swbd和librispeech中,採用的結構是15361601536,中間層維度爲160。
    -增加跳幀連接
    在這裏插入圖片描述
    跳幀連接(skip connections)與殘差網絡結構很像,同樣爲了減少梯度消失,將之前層輸出到當前層作爲下一層的輸入,每個TDNN-F結構中的跳幀連接都發生在1536維度的輸出之後。
    -增加dropout
    這個比較好理解,如圖3,爲了防止過擬合,每個TDNN-F結構中還加了dropout層。
  2. TDNN-F模塊的訓練
    前面講到TDNN-F是將原來的權重矩陣M分解爲兩個矩陣A和B,並將B約束成半正交的,那麼加了半正交約束的TDNN-F時如何訓練的呢?結合論文和代碼理解
    在這裏插入圖片描述
  3. 半正定奇異值分解
  4. 主要技術
    參數維度微調(線性瓶頸層維度)、卷積分解(31->11 21->21)
    三部拼接 (分解爲3個矩陣),dropout,skip connections(跳層連接),
  5. 實驗結果
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章