Compressing Recurrent Neural Network with Tensor Train论文翻译

摘要

递归神经网络(RNN)是建模时间和顺序任务的热门选择,并在各种复杂问题上实现许多最新的性能。然而,大多数最先进的RNNs都有数百万个参数,并且需要大量的计算资源来训练和预测新数据。本文提出了一种基于张量列(TT)格式表示权值参数的备选RNN模型,以显著减少参数的数量。在本文中,我们实现了几种神经网络结构的tt格式表示,如简单神经网络和门控循环单元。在序列分类和序列预测任务方面,比较和评价了我们提出的RNN模型和未压缩RNN模型。我们提出的tt格式的神经网络能够在保持性能的同时,将RNN参数的数量显著减少40倍。

介绍

时序建模是机器学习中的重要课题。RNNs体系结构最近成为建模时序任务的热门选择。虽然RNNs已经被研究了大约20年[1,[2],他们最近的复苏反映了计算机硬件的改进和可用数据集的增长。语音识别[3,机器翻译[5]-17]的许多先进技术已经通过RNNs实现。
然而,大多数RNN模型都是计算昂贵的,并且有大量的参数。由于神经网络是由多个线性变换和非线性变换构成的,因此需要多个高维密集矩阵作为参数。在时间步长中,我们需要在具有高维输入的密集矩阵和之前的隐藏状态之间应用多重线性变换。特别是对于语音识别和机器翻译[5]的最新模型,如此庞大的模型只能在高端集群环境中实现,因为它们需要大量的计算能力和数百万的参数。这种限制阻碍了高效RNN模型的创建,这些模型的速度足够快,可以进行大规模实时推断,或者足够小,可以在低端设备(如手机[8]或内存有限的嵌入式系统)中实现。
为了弥补具有高效计算和内存成本的高性能先进模型之间的差距,需要在高精度模型和快速高效模型之间进行权衡。为了使模型的精度损失最小化和效率最大化,许多研究者做了大量的工作。“希顿和阿尔将一个大的深度神经网络训练成一个小的神经网络,将后者转化为前者的softmax输出。从更大的神经网络中提取知识也被成功地应用到递归神经网络结构中[111]。Denil等人[12]利用权重矩阵的低秩矩阵分解。Novikov等人最近的一项研究表明,在卷积神经网络(CNN)模型中,[13]用张量列(TT)格式[14]代替了稠密权值矩阵。使用tt格式,他们显著压缩了参数的数量,并将模型精度降低到最小。然而,就我们所知,还没有研究集中于用基于张力的表示压缩更复杂的神经网络,如RNNs。
在本文中,我们提出了一种基于tt格式的RNN体系结构——TT-RNN。我们采用tt格式重新构造了两种不同的神经网络:简单神经网络和GRU神经网络。我们提出的RNN架构评估使用两种不同的任务:序列分类和序列预测。在第一节中,我们简要地回顾了RNN。在本节中,我们将详细描述我们提出的TT-RNN架构。在第五部分,我们描述任务和数据集,然后是实验结果。最后给出了V部分的相关工作,并在VI部分对结果进行了总结.

循环神经网络

A.简单递归神经网络
在这里插入图片描述

RNN是一种建模时序和时序相关性[15]的神经网络结构。通常,我们定义输入序列x= (x1…, xt),隐向量序列h= (h1…ht),输出向量序列y = (y1, …yt)。如图所示,t时刻的简单RNN可以表示为:
在这里插入图片描述
其中Wxh表示输入层与隐含层之间的权值参数,Whh表示隐含层与隐含层之间的权值参数,Why表示隐含层与输出层之间的权值参数,bn和by表示隐含层与输出层的偏置向量。函数f(-)和g(-)是非线性激活函数,如sigmoid或tanh。

B.门控复发神经网络
简单的RNNs不容易用于建模具有长序列和长期依赖性的数据集,因为梯度可以很容易地消失或爆炸(16,[7])。这个问题是由有界激活函数及其导数的影响引起的。因此,训练一个简单的神经网络要比训练一个前馈神经网络复杂。一g些研究解决了训练简单神经网络的困难。例如,Le等人[18]用整流线性(ReLU)函数替换了导致消失梯度的激活函数。通过一个无界的激活函数和身份权初始化,他们优化了一个简单的RNN用于长期依赖建模。Martens等人[19使用了二阶无Hessian-free (HF)优化方法,而不是梯度下降等一阶方法。然而,二阶梯度的估计需要额外的计算步骤。通过引入浇注机制来修改RNN的内部结构,也可以帮助RNN解决梯度消失和爆炸的问题。额外的门控层控制来自先前状态和当前输入[2]的信息流。几种不同版本的门控式神经网络通过引入门控单元来克服简单神经网络的缺点,如长-短期记忆(LSTM)神经网络和GRU神经网络。在下面的小节中,我们将对两者进行更详细的解释。
1)长短期记忆RNN:

LSTM RNN由Hochreiter等人[2]提出。LSTM是一种具有3个门控层和内存单元的门控神经网络,通过保留有价值的信息而忘记不需要的信息,利用门控层来控制当前的内存状态。记忆细胞跨时间步存储内部信息。如图所示,t时刻的LSTM隐含层值由以下方程定义[20]在这里插入图片描述

在这里插入图片描述
式中,or()为sigmoid激活函数,i, f, o, c;分别为输入门、遗忘门、输出门和记忆单元。输入门保留候选对象对当前内存单元有用的内存单元值和遗忘门保留对当前内存单元有用的前一个内存单元值。输出门保留对输出和下一个时间步隐层计算有用的记忆单元值。
2)门控周期性单元RNN:
在这里插入图片描述

GRU RNN由Cho等[21]提出,是LSTM的替代方案。GRU和LSTM之间有几个关键的区别。首先,GRU没有存储单元[22]。第二,取代了三个闸门层,它只有两个:重置闸门和更新闸门。如图所示[B] t时刻GRU隐含层定义为:
在这里插入图片描述
其中o()为sigmoid激活函数,f(-)为tanh激活函数,rt、zt为复位和更新门,h为候选隐层值,h为时间-t时的隐层值。重置门控制对当前候选隐藏层有用的先前隐藏层值。更新门决定是保留以前的隐藏层值,还是用候选隐藏层值替换当前隐藏层值。GRU可以匹配LSTM的性能和收敛速度有时超过LSTM,尽管有一个更少的门控层[22]。

在本节中,我们提供了几个rnn的公式和细节。正如我们所看到的,大多数RNN由许多密集矩阵组成,这些矩阵代表了大量的权值参数,而这些权值参数是代表所有RNN模型所必需的。在下一节中,我们将介绍一种替代的RNN模型,它可以显著减少参数的数量,同时保持性能。

提出一种基于张量列的RNN

在这一节中,我们描述我们提出的方法来压缩RNN使用张量列(TT)格式表示。我们从描述张量列[14]开始,然后用tt格式表示线性变换操作。在此之后,我们描述了我们的TTRNN方法的细节,包括一个简单的RNN和更复杂的带有门控单元的RNN。与标准前馈神经网络相比,采用tt格式表示神经网络中的权值参数存在较大的困难。为了解决这个问题,我们在最后的小节中也提出了一个局部初始化的技巧。

A.张量列(TT)格式
在定义张量序列(TT)格式之前,我们将解释我们从[13,[14],将在后面的章节中使用的符号。一般情况下,一维数组称为向量,二维数组称为矩阵,所有的高维数组通常称为张量。
我们用小写字母(如b)表示向量。大写字母的矩阵(如W)和书法大写字母的张量(如W)。向量、矩阵和张量中的每个元素都通过在每个维度上的索引来明确表示。例如,b(i)是向量b的第i个元素,W(p,g)是矩阵W的第p行和第q列元素,W(i,…)i)的元素索引(j…, jd)张量W和d是张量的顺序W .基于先前描述[13],我们假设采用数组(张量)114年TT-format W表示如果每个k e {1。d)和k维度的每个可能值指数jk e {1,…, n}存在一个矩阵Gklikl,所有的元素可以计算为:
在这里插入图片描述

在这里插入图片描述
对于所有维数k相同的矩阵Gk],它们必须用大小rk-Xrk表示,其中ro和ra必须等于1才能保持最终的矩阵乘法结果为标量。在tt格式中,我们定义了一个秩序列{rdc,从张量w中称其为TT-rank。在同一个索引中张成的矩阵集合Gk =Gkkl称为TT-core。我们可以用枚举索引qk-1 E (1, …)r-l和gk E(1,。r in矩阵 GLk+ 跨越所有到 {1…, DL:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值