当前位置: 首页 > 科技观察

CNN取代RNN?当序列建模不需要递归网络时

时间:2023-03-14 12:19:59 科技观察

在过去的几年里,虽然递归神经网络曾经脱颖而出,但自回归Wavenet或Transformer等模型现在正在各种序列建模任务中取代RNN。本文重点介绍循环网络和前馈网络在序列建模方面的区别,以及何时选择卷积网络而不是循环网络更好。在这篇博文中,我们探讨了循环网络模型和前馈模型之间的权衡。前馈模型可以提高训练的稳定性和速度,而循环模型则更具表现力。有趣的是,额外的表现力似乎并没有提高循环模型的性能。几个研究小组已经表明,前馈网络可以匹配循环模型在基准序列任务上取得的最佳结果。这种现象为理论研究提出了一个有趣的问题:为什么前馈网络能够在不降低性能的情况下取代循环神经网络,以及什么时候?我们讨论了几种可能的答案,并强调了我们最近的研究《When Recurrent Models Don't Need To Be Recurrent》,这项研究从基本稳定性的角度给出了解释。1.两个序列模型的故事1.递归神经网络递归模型的许多变体都有相似的形式。该模型凭借状态h_t梳理过去的输入序列。在每个时间步t,根据以下等式更新状态:其中x_t是时间t的输入,φ是可微映射,h_0是初始状态。在最原始的递归神经网络中,模型由矩阵W和U参数化,状态更新根据:在实践中,长短期记忆网络(LSTM)更常用。无论哪种情况,在进行预测时,状态都会传递给函数f,并且模型会预测y_t=f(h_t)。由于状态h_t是一个包含所有过去输入x_0,...,x_t的函数,因此预测y_t也取决于输入x_0,...,x_t的整个历史。循环模型可以用图形表示如下。可以使用反向传播将循环模型拟合到数据。然而,从时间步T到时间步0的反向传播梯度通常需要大量内存,因此几乎循环模型的每个代码实现都会截断并且仅反向传播k时间步的梯度。按照这种配置,循环模型的预测仍然依赖于输入x_0,…,x_T的整个历史。但是,尚不清楚此训练过程如何影响模型学习长期模式的能力,尤其是那些需要超过k步的模式。2.Autoregressive,feedforwardmodel自回归模型只使用最近的k个输入,即x_t-k+1,...,x_t来预测y_t,而不是依赖整个历史状态进行预测。这对应于强条件独立假设。特别是,前馈模型假定目标仅取决于k个最近的输入。Google的WaveNet很好地说明了这个一般原则。与RNN相比,前馈模型的上下文有限意味着它无法捕获超过k个时间步长的模式。然而,使用扩张卷积等技术,k可以变得非常大。第二,为什么关注前馈模型?起初,循环模型似乎比前馈模型更灵活、更具表现力。毕竟,前馈网络施加了很强的条件独立性假设,而循环模型则没有这种限制。尽管前馈模型的表达能力较差,但研究人员可能更喜欢使用前馈网络的原因有几个。并行化:卷积前馈模型在训练时更容易并行化,不需要更新和保留隐藏状态,因此输出之间没有顺序依赖性。这使我们能够在现代硬件上非常有效地实施培训过程。可训练性:训练深度卷积神经网络是深度学习的基本过程,而循环模型往往更难训练和优化。此外,为了高??效可靠地训练深度前馈网络,开发人员在设计架构和软件开发方面投入了大量精力。推理速度:在某些情况下,前馈模型可以更轻量级并且比类似的循环系统执行推理更快。在其他情况下,特别是对于长序列问题,自回归推理是一个很大的瓶颈,需要大量的工程努力或独创性来克服。3.前馈模型可以比循环模型表现更好。尽管前馈模型的可训练性和并行化似乎是以降低模型精度为代价的,但最近有一些例子表明前馈网络在基准测试任务上实际上表现良好。可以达到与循环网络相同的精度。语言建模。在语言建模中,目标是在给定所有当前单词的情况下预测下一个单词。前馈模型仅使用最近的k个词进行预测,而循环模型可能使用整个文档。门控卷积语言模型是一种前馈自回归模型,可与大型LSTM基准模型竞争。尽管截断长度k=25,但该模型在Wikitext-103基准测试中优于大型LSTM模型,该基准测试擅长捕获长期依赖性的模型。在BillionWordBenchmark上,该模型比最先进的LSTM稍差,但训练速度更快,使用的资源更少。机器翻译。机器翻译的目标是将英语句子映射到其他语言的句子,例如英语到法语。前馈模型只使用句子中的k个词进行翻译,而循环模型可以利用整个句子。在深度学习中,谷歌的神经机器翻译等模型最初是基于LSTM和注意力机制进行序列建模的。后来大家用全卷积网络做序列建模,用Transformer搭建大规模的翻译系统。语音合成。在语音合成领域,研究人员试图生成逼真的人类语音。前馈模型仅限于过去的k个样本,而循环模型可以使用所有历史样本。截至本文发表时,前馈自回归WaveNet是对LSTM-RNN模型的重大改进。进一步阅读。最近,Bai等人。提出了一种利用扩张卷积的通用前馈模型,并表明它在从合成再现任务到音乐生成等任务上优于循环基线模型。4.前馈模型如何胜过循环模型?在上面的例子中,前馈网络可以取得与循环网络相同或更好的结果。这令人困惑,因为循环模型似乎更先进。多芬等人。对这种现象给出解释:循环模型提供的最长上下文信息对于语言建模来说并不是绝对必要的。换句话说,您可能不需要很多上下文信息来对预测任务进行平均。最近的理论工作提供了一些支持这一观点的证据。Bai等人给出了另一种解释:RNN的“超级记忆”优势在实践中基本上不存在。正如Bai等人所报告的那样,即使在明确需要长期上下文的实验中,RNN及其变体也无法学习长序列。在BillionWordBenchmark上,一份出色的GoogleScholar报告显示,记忆n=13个单词上下文的LSTMn-gram模型与记忆任意长上下文的LSTM的表现没有区别。这一证据使我们推测,在实践中训练的循环模型实际上是前馈模型。之所以会发生这种情况,是因为通过时间截断的反向传播无法学习超过k步的模式,因为通过梯度下降训练的模型没有长期记忆。在我们最近的论文中,我们研究了使用梯度下降训练的循环模型和前馈模型之间的差距。我们表明,如果循环模型是稳定的(意味着没有爆炸梯度),那么循环模型的训练或推理过程都可以通过前馈网络很好地近似。换句话说,我们表明通过梯度下降训练的前馈和稳定循环模型在测试中是等价的。当然,并不是所有在实践中训练出来的模型都是稳定的。我们还给出了经验证据,表明可以在不损失性能的情况下对某些循环模型施加稳定性条件。五、结论尽管已经进行了一些初步尝试,但要理解为什么前馈模型可以与循环模型竞争并阐明顺序模型之间的权衡,还有很多工作要做。公共序列基准测试真正需要多少内存?截断的RNN(可以看作前馈模型)和流行的卷积模型之间的表现力权衡是什么?为什么前馈网络在实践中表现不佳且不稳定?RNN有那么好吗?回答这些问题是为了发展一种理论,既可以解释我们当前方法的优势和局限性,又可以指导如何在特定环境下选择不同的模型。原文链接:http://www.offconvex.org/2018/07/27/approximating-recurrent/【本文为《机器之心》专栏原文翻译,微信公众号《机器之心》(id:almosthuman2014)》】点此阅读该作者更多好文