放弃 RNN/LSTM 吧,因为真的不好用!望周知~

2018 年 4 月 24 日 人工智能头条 专注技术分享


翻译 | 张涛

出品 | 人工智能头条(公众号ID:AI_Thinker


2014 年 RNN/LSTM 起死回生。自此,RNN/LSTM 及其变种逐渐被广大用户接受和认可。起初,LSTM 和 RNN 只是一种解决序列学习和序列翻译问题的方法(seq2seq),随后被用于语音识别并有很好的效果,比如 Siri,Cortana,Alexa 等;此外,这种技术在机器翻译领域也有应用,比如 Google Translate。


2015-2016 年,新的 ResNet 和 Attention 技术出现。实际上,我们可以将 LSTM 理解为一种巧妙地 bypass technique,而 attention 的成功表明了 MLP(多层感知器)网络可以被上下文向量影响的平均网络(averaging network)所替代。


两年过去了,我们现在已经可以给出结论:


放弃 RNN 和 LSTM 吧,它们真的不好用


基于 attention 的网络逐渐被越来越多的企业采用,比如 Google,Facebook,Salesforce 等公司都已经开始用基于attention的模型来替换RNN和其变种。RNN 在各种应用场景下时日无多,因为相比基于 attention 的模型,RNN 需要更多的资源来训练和运行。


编者注:训练 RNN 和 LSTM 是非常困难的,因为计算能力受到内存和带宽等的约束。这同时也是硬件设计者的噩梦,并最终限制了神经网络解决方案的适用性。简而言之,每个 LSTM 单元需要 4 个线性层(MLP 层),以便每个顺序时间步运行一次。线性层需要大量的内存带宽才能执行计算;由于系统没有足够的内存带宽将数据馈送到计算单元,实际上它们无法使用许多计算单元。添加更多的计算单元很容易,但添加更多的内存带宽却很难。因此,RNN/LSTM 及其变种并不和硬件加速非常匹配,一个可能的解决方案就是让计算在存储器设备中完成。


为什么 RNN/LSTM 真的不好用?


RNN,LSTM及其变种主要使用序列处理,如下图所示:




图1 RNN中的序列处理


图中的箭头表示长期信息在进入当前的处理单元前需要有序地进入所有其他的处理单元。也就是说,这很容易通过多次乘小于 0 的数字来进行破坏和攻击,这就是梯度消失的原因。


梯度消失可以利用 LSTM 模块来补救,目前的 LSTM 可是看作是多交换网关,有点像 ResNet。因为 LSTM 可以绕过一些单元,对长时间的步骤进行记忆,因此 LSTM 可以一定程度上解决梯度消失的问题。




图2 LSTM中的序列处理


从图2可以看出,从前面的单元传递来当前单元的序列路径依然存在。事实上,因为这条路径会不断添加并且会遗忘与之相关的路径分支,它会变得越来越复杂。LSTM、GRU 及其变体能学习大量的长期信息,但它们最多只能记住约 100s 的长期信息,而不是 1000s,10000s 甚至更长时间的信息。


RNN 还有一个问题就是并不与所有硬件兼容。如果要快速训练 RNN,那么就需要大量的计算资源,而这正是我们缺少的。如果在云上运行 RNN 模型的话,也会消耗比其他模型更多的资源。随着语音转文本需求的快速增长,云端的扩展也变得更加困难。


你需要做些什么?


因为大多数时间我们处理的都是实时的因果数据(casual data),我们想利用这些已知的数据来为之后的决策做准备。那如果可以避免进行序列处理,我们就可以找出更好的 look-ahead 和 look-back 的单元,这样的 look-ahead/back 就叫做 neural attention 模块。


这种补救方法融合了多个 neural attention 模块,组成了一个分层的 neural attention 编码器,如图3所示:




图3 分层 neural attention 编码器


还有一种更好地分析过去的方法就是用 attention 模块把过去所有的编码向量总结为一个上下文向量 Ct。


这里还有一个 attention 模块的分层,与神经网络和时间卷积网络(Temporal convolutional network )的分层非常像。分层神经 attention 编码器的多层 attention 能查看过去信息的一小部分,比如说 100 个向量,而上面分层的attention模块还能查看到 100 个下层的注意力模块,也就是 100×100 个向量。这极大地扩展了分层神经 attention 编码器的能力。


更重要的是将传播向量传输到网络输出所需要的路径长度:在分层网络中,路径长度与 Log(N)成比例的,其中 N 是分层的层数。这与 RNN 需要执行的T步骤形成了对照,其中 T 是需要记住的顺序的最大长度,而 T >> N。


Neural Turing Machines(NTM,神经图灵机)的架构也与图3类似,但是 NTM 是让神经网络来决定通过 attention 从内存中读取什么的。也就是说,真实的神经网络将决定哪个过去的向量对未来的决策更重要。


在内存存储方面。与 NTM 不同,上面的架构把所有之前的表示都储存在内存里,这就会造成效率比较低的问题。有一个解决的办法就是增加另外一个单元来防止有相互关系的数据多次保存。当前科学研究的重点是由应用去决定保存哪些向量,哪些不保存。


目前许多的公司仍在使用 RNN/LSTM 来进行语音转文本的工作,都没有意识到这种网络结构在效率和可扩展性上的缺点。


所以,转发这篇文章,告诉他们,RNN/LSTM 真的不好用,尽早放弃吧。


作者: Eugenio Culurciello

原文地址

https://towardsdatascience.com/the-fall-of-rnn-lstm-2d1594c74ce0




扫描二维码,关注「人工智能头条」

回复“技术路线图”获取 AI 技术人才成长路线图

☟☟☟点击 | 阅读原文 | 阅读更多干货内容

登录查看更多
19

相关内容

长短期记忆网络(LSTM)是一种用于深度学习领域的人工回归神经网络(RNN)结构。与标准的前馈神经网络不同,LSTM具有反馈连接。它不仅可以处理单个数据点(如图像),还可以处理整个数据序列(如语音或视频)。例如,LSTM适用于未分段、连接的手写识别、语音识别、网络流量或IDSs(入侵检测系统)中的异常检测等任务。
【ICML2020-华为港科大】RNN和LSTM有长期记忆吗?
专知会员服务
73+阅读 · 2020年6月25日
【CVPR 2020-商汤】8比特数值也能训练卷积神经网络模型
专知会员服务
25+阅读 · 2020年5月7日
一份循环神经网络RNNs简明教程,37页ppt
专知会员服务
168+阅读 · 2020年5月6日
【伯克利】再思考 Transformer中的Batch Normalization
专知会员服务
40+阅读 · 2020年3月21日
【MIT深度学习课程】深度序列建模,Deep Sequence Modeling
专知会员服务
76+阅读 · 2020年2月3日
模型压缩究竟在做什么?我们真的需要模型压缩么?
专知会员服务
27+阅读 · 2020年1月16日
干货 | 循环神经网络(RNN)和LSTM初学者指南
THU数据派
15+阅读 · 2019年1月25日
RNN是怎么从单层网络一步一步构造的?
七月在线实验室
6+阅读 · 2018年7月13日
一文详解LSTM网络
论智
18+阅读 · 2018年5月2日
学界 | 神奇!只有遗忘门的LSTM性能优于标准LSTM
机器之心
7+阅读 · 2018年4月27日
关于序列建模,是时候抛弃RNN和LSTM了
数盟
7+阅读 · 2018年4月20日
干货|从LSTM到Seq2Seq
全球人工智能
15+阅读 · 2018年1月9日
干货|完全图解RNN、RNN变体、Seq2Seq、Attention机制
机器学习研究会
10+阅读 · 2017年8月5日
RNN | RNN实践指南(2)
KingsGarden
19+阅读 · 2017年5月4日
RNN | RNN实践指南(1)
KingsGarden
21+阅读 · 2017年4月4日
Do RNN and LSTM have Long Memory?
Arxiv
19+阅读 · 2020年6月10日
Neural Image Captioning
Arxiv
5+阅读 · 2019年7月2日
Universal Transformers
Arxiv
5+阅读 · 2019年3月5日
Arxiv
4+阅读 · 2015年8月25日
VIP会员
相关资讯
干货 | 循环神经网络(RNN)和LSTM初学者指南
THU数据派
15+阅读 · 2019年1月25日
RNN是怎么从单层网络一步一步构造的?
七月在线实验室
6+阅读 · 2018年7月13日
一文详解LSTM网络
论智
18+阅读 · 2018年5月2日
学界 | 神奇!只有遗忘门的LSTM性能优于标准LSTM
机器之心
7+阅读 · 2018年4月27日
关于序列建模,是时候抛弃RNN和LSTM了
数盟
7+阅读 · 2018年4月20日
干货|从LSTM到Seq2Seq
全球人工智能
15+阅读 · 2018年1月9日
干货|完全图解RNN、RNN变体、Seq2Seq、Attention机制
机器学习研究会
10+阅读 · 2017年8月5日
RNN | RNN实践指南(2)
KingsGarden
19+阅读 · 2017年5月4日
RNN | RNN实践指南(1)
KingsGarden
21+阅读 · 2017年4月4日
相关论文
Do RNN and LSTM have Long Memory?
Arxiv
19+阅读 · 2020年6月10日
Neural Image Captioning
Arxiv
5+阅读 · 2019年7月2日
Universal Transformers
Arxiv
5+阅读 · 2019年3月5日
Arxiv
4+阅读 · 2015年8月25日
Top
微信扫码咨询专知VIP会员