lstm(三) 模型压缩lstmp

lstmp结构

对于传统的lstm而言

it=δ(Wixxt+Wimmt1+Wicct1+bi)

ft=δ(Wfxxt+Wfmmt1+Wfcct1+bi)

ct=ftct1+itg(Wcxxt+Wcmmt1+bc)

ot=δ(Woxxt+Wommt1+Wocct+bo)

mt=oth(ct)

yt=ϕ(Wymmt+by)

假设一层中的cell个数为 nc ,输入维度为 ni ,输出维度为 no ,那么对应的参数量为:
W=ncnc4+ninc4+ncno+nc3


lstmp是lstm with recurrent projection layer的简称,在原有lstm基础之上增加了一个projection layer,并将这个layer连接到lstm的输入。此时的网络结构变为
it=δ(Wixxt+Wirrt1+Wicct1+bi)

ft=δ(Wfxxt+Wfrrt1+Wfcct1+bi)

ct=ftct1+itg(Wcxxt+Wcrrt1+bc)

ot=δ(Woxxt+Worrt1+Wocct+bo)

mt=oth(ct)

rt=Wrmmt

yt=ϕ(Wyrrt+by)

projection layer的维度设为 nr ,那么总的参数量将会变为:
W=ncnr4+ninc4+nrno+ncnr+nc3

通过设置 nr 的大小,可以缩减总的参数量。

lstm压缩

直接训练lstmp网络结构

为了减少矩阵的参数量,重点优化,以 Wix Wim 为例,相关参数量的变化如下:
lstm(三) 模型压缩lstmp_第1张图片

对lstm的参数做SVD压缩

参考[3],对已有的参数做压缩,主要两个矩阵:inter-layer矩阵 [Wix,Wfx,Wox,Wcx]T 和recurrent 矩阵 [Wim,Wfm,Wom,Wcm]T
通过奇异值的设定将两个矩阵转化为三个小矩阵,其中一个小矩阵作为lstmp中projection layer的参数。

参考

[1].Long Short-Term Memory Based Recurrent Neural Network Architectures for Large Vocabulary Speech Recognition
[2].long short-term memory recurrent neural network architectures for large scale acoustic modeling
[3].ON THE COMPRESSION OF RECURRENT NEURAL NETWORKS WITH AN APPLICATION TO LVCSR ACOUSTIC MODELING FOR EMBEDDED SPEECH RECOGNITION

你可能感兴趣的:(神经网络)