LSTM模型的两种分解技巧

介绍

LSTM模型在语言模型,机器翻译等领域取得了非凡的成就,然后LSTM网络有几百万的参数以及需要数周在多GPU系统中进行训练。因此,一下介绍两种方法来缩减网络参数以及训练时间。两种方法分别为factorized LSTM(FLSTM)以及group LSTM(GLSTM)。

FLSTM

FLSTM网络主要是将大的LSTM矩阵转化为两个小的矩阵。

LSTM模型简单介绍

在LSTM网络中,
这里写图片描述
其中 x t 表示输入, h t 表示cell state, c t 表示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 是一个仿射变换 T = W [ x t , h t 1 ] + b ,则 h t R p , c t R n
这里写图片描述
其中, P : R n R p 是一个线性的映射,这里主要的计算量是在仿射变换T,由于其涉及到4n*2p的矩阵W,因此,FLSTM网络主要减少W的参数。

优化方法

在FLSTM网络中,主要是将矩阵W转化为两个矩阵,可以近似为 W W 2 W 1 ,其中 W 1 大小为2p*r, W 2 大小为r*4n。并且,r < p <= n ,这里主要的假设是矩阵W能够被r阶矩阵所表示,因为转换后的参数大小为(r*2p+r*4n),而LSTM网络的参数为2p*4n。
这里写图片描述

GLSTM

GLSTM主要是将不同的LSTM cell分到独立的组里。
假定一些输入 x t 以及隐藏层 h t 可以被分到不同的独立的组中。例如,如果有两个组,则 x t h t 能够有效的被分成两个向量, x t = ( x t 1 , x t 2 ) h t = ( h t 1 , h t 2 ) ,其中 h t i 仅依靠 x t i , h t 1 i 以及cell memory state。因此,分为k个组的公式可以表示为:
这里写图片描述

其中, T j 是组j的从 R 2 p / k R 4 n / k 的放射变换,组T有 k 4 n 2 p k k 个参数,这种结构适合并行计算,因为每个组的计算都是独立的。具体结构如图1所示。

实验结果

这里写图片描述

这里写图片描述

源码

https://github.com/okuchaiev/f-lm

参考文献:
factorization tricks for lstm networks

发布了98 篇原创文章 · 获赞 337 · 访问量 48万+

猜你喜欢

转载自blog.csdn.net/yiyele/article/details/81141616