LSTM模型的两种分解技巧
介绍
LSTM模型在语言模型,机器翻译等领域取得了非凡的成就,然后LSTM网络有几百万的参数以及需要数周在多GPU系统中进行训练。因此,一下介绍两种方法来缩减网络参数以及训练时间。两种方法分别为factorized LSTM(FLSTM)以及group LSTM(GLSTM)。
FLSTM
FLSTM网络主要是将大的LSTM矩阵转化为两个小的矩阵。
LSTM模型简单介绍
在LSTM网络中,
其中表示输入,表示cell state,表示cell memory。
令cell gates(i,f,o,g)可以计算为:
其中是一个仿射变换 ,则:
其中,是一个线性的映射,这里主要的计算量是在仿射变换T,由于其涉及到4n*2p的矩阵W,因此,FLSTM网络主要减少W的参数。
优化方法
在FLSTM网络中,主要是将矩阵W转化为两个矩阵,可以近似为,其中大小为2p*r,大小为r*4n。并且,r < p <= n ,这里主要的假设是矩阵W能够被r阶矩阵所表示,因为转换后的参数大小为(r*2p+r*4n),而LSTM网络的参数为2p*4n。
GLSTM
GLSTM主要是将不同的LSTM cell分到独立的组里。
假定一些输入以及隐藏层可以被分到不同的独立的组中。例如,如果有两个组,则和能够有效的被分成两个向量,和,其中仅依靠以及cell memory state。因此,分为k个组的公式可以表示为:
其中,是组j的从的放射变换,组T有个参数,这种结构适合并行计算,因为每个组的计算都是独立的。具体结构如图1所示。
实验结果
源码
https://github.com/okuchaiev/f-lm
参考文献:
factorization tricks for lstm networks