介绍
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