#介绍
LSTM模型在语言模型,机器翻译等领域取得了非凡的成就,然后LSTM网络有几百万的参数以及需要数周在多GPU系统中进行训练。因此,一下介绍两种方法来缩减网络参数以及训练时间。两种方法分别为factorized LSTM(FLSTM)以及group LSTM(GLSTM)。
#FLSTM
FLSTM网络主要是将大的LSTM矩阵转化为两个小的矩阵。
##LSTM模型简单介绍
在LSTM网络中,
其中
x
t
x_t
xt表示输入,
h
t
h_t
ht表示cell state,
c
t
c_t
ct表示cell memory。
令cell gates(i,f,o,g)可以计算为:
其中
x
t
∈
R
p
,
h
t
∈
R
p
.
a
n
d
T
:
R
2
p
→
R
4
n
x_t \in R^p,h_t \in R^p.and T:R^{2p} \rightarrow R^{4n}
xt∈Rp,ht∈Rp.andT:R2p→R4n是一个仿射变换
T
=
W
∗
[
x
t
,
h
t
−
1
]
+
b
T = W * [x_t,h_{t-1}] + b
T=W∗[xt,ht−1]+b,则
h
t
∈
R
p
,
c
t
∈
R
n
可
以
用
下
面
的
等
式
计
算
h_t \in R^p,c_t \in R^n 可以用下面的等式计算
ht∈Rp,ct∈Rn可以用下面的等式计算:
其中,
P
:
R
n
→
R
p
P : R^n \rightarrow R^p
P:Rn→Rp是一个线性的映射,这里主要的计算量是在仿射变换T,由于其涉及到4n2p的矩阵W,因此,FLSTM网络主要减少W的参数。
##优化方法
在FLSTM网络中,主要是将矩阵W转化为两个矩阵,可以近似为
W
≈
W
2
∗
W
1
W \approx W_2 * W_1
W≈W2∗W1,其中
W
1
W_1
W1大小为2pr,$ W_2KaTeX parse error: Expected 'EOF', got '#' at position 258: …=/dissolve/70) #̲GLSTM GLSTM主要是将…x_t
以
及
隐
藏
层
以及隐藏层
以及隐藏层h_t
可
以
被
分
到
不
同
的
独
立
的
组
中
。
例
如
,
如
果
有
两
个
组
,
则
可以被分到不同的独立的组中。例如,如果有两个组,则
可以被分到不同的独立的组中。例如,如果有两个组,则x_t
和
和
和h_t
能
够
有
效
的
被
分
成
两
个
向
量
,
能够有效的被分成两个向量,
能够有效的被分成两个向量,x_t = (x_t1,x_t2)
和
和
和h_t = (h_t1,h_t2)
,
其
中
,其中
,其中h_ti$仅依靠$x_ti,h_{t-1}^i$以及cell memory state。因此,分为k个组的公式可以表示为:
其中,
T
j
T^j
Tj是组j的从
R
2
p
/
k
到
R
4
n
/
k
R^{2p/k} 到 R^{4n/k}
R2p/k到R4n/k的放射变换,组T有
k
∗
4
n
∗
2
p
k
∗
k
k*\frac{4n*2p}{k*k}
k∗k∗k4n∗2p个参数,这种结构适合并行计算,因为每个组的计算都是独立的。具体结构如图1所示。
#实验结果
#源码
https://github.com/okuchaiev/f-lm
参考文献:
factorization tricks for lstm networks