Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

乾树、张倩、思源编译

CNN取代RNN?当序列建模不再需要循环网络

在过去几年中,虽然循环神经网络曾经一枝独秀,但现在自回归 Wavenet 或 Transformer 等模型在各种序列建模任务中正取代 RNN。机器之心在 GitHub 项目中曾介绍用于序列建模的 RNN 与 CNN,也介绍过不使用这两种网络的 Transformer。而本文主要关注循环网络与前馈网络在序列建模中有什么差别,以及到底什么时候选择卷积网络替代循环网络比较好。


在这篇博文中,我们来探讨循环网络模型和前馈模型之间的取舍。前馈模型可以提高训练稳定性和速度,而循环模型表达能力更胜一筹。有趣的是,额外的表现力似乎并没有提高循环模型的性能。

一些研究团队已经证明,前馈网络可以达到最佳循环模型在基准序列任务上取得的结果。这种现象为理论研究提供了一个有趣的问题:

为什么前馈网络能够在不降低性能的前提下取代循环神经网络?什么时候可以取代?

我们讨论了几个可能的答案,并强调了我们最近的研究《When Recurrent Models Don't Need To Be Recurrent》,这项研究从基本稳定性的角度给出了解释。

两个序列模型的故事

循环神经网络

循环模型的众多变体都具有类似的形式。该模型凭借状态 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 步以上的模式。

自回归、前馈模型

自回归(autoregressive)模型仅使用最近的 k 个输入,即 x_t-k + 1,...,x_t 来预测 y_t,而不是依赖整个历史状态进行预测。这对应于强条件独立性假设。特别是,前馈模型假定目标仅取决于 k 个最近的输入。谷歌的 WaveNet 很好地说明了这个通用原则。

与 RNN 相比,前馈模型的有限上下文意味着它无法捕获超过 k 个时间步的模式。但是,使用空洞卷积等技术,可以使 k 非常大。

为何关注前馈模型?

一开始,循环模型似乎是比前馈模型更灵活、更具表现力的模型。毕竟,前馈网络提出了强条件独立性假设,而循环模型并没有加上这样的限制。不过即使前馈模型的表现力较差,仍有几个原因使得研究者可能更倾向于使用前馈网络。

并行化:卷积前馈模型在训练时更容易并行化,不需要更新和保留隐藏状态,因此输出之间没有顺序依赖关系。这使得我们可以在现代硬件上非常高效地实现训练过程。

可训练性:训练深度卷积神经网络深度学习的基本过程,而循环模型往往更难以训练与优化。此外,为了有效并可靠地训练深度前馈网络,开发人员在设计架构和软件开发上已经付出了巨大的努力。

推理速度:在某些情况下,前馈模型可以更轻量,并且比类似的循环系统更快地执行推理。在其他情况下,特别是对于长序列问题,自回归推理是一个很大的瓶颈,需要大量的工程工作或聪明才智去克服。

前馈模型可以比循环模型表现更好

虽然看起来前馈模型的可训练性和并行化是以降低模型准确度为代价的,但是最近有一些例子表明,前馈网络在基准任务上实际上可以达到与循环网络相同的精度。

语言建模。在语言建模中,目的是在给定所有当前单词的情况下预测下一个单词。前馈模型仅使用 k 个最近的单词进行预测,而循环模型可能会使用整个文档。门控卷积语言模型是一种可与大型 LSTM 基准模型竞争的前馈自回归模型。尽管截断长度 k = 25,但该模型在 Wikitext-103 的基准测试上表现优于大型 LSTM 模型,该基准测试用于测试善于捕获长期依赖关系的模型。在 Billion Word Benchmark 上,该模型比最大的 LSTM 略差,但训练速度更快,占用的资源也更少。

机器翻译机器翻译的目标是将英语句子映射到其它语种句子,例如英语转法语。前馈模型仅使用句子的 k 个单词进行翻译,而循环模型可以利用整个句子。在深度学习中,谷歌神经机器翻译等模型最开始基于 LSTM 与注意力机制进行序列建模,后来大家使用全卷积网络进行序列建模、使用 Transformer 构建大型翻译系统。

语音合成。在语音合成领域,研究者试图产生逼真的人类语音。前馈模型仅限于过去的 k 个样本,而循环模型可以使用所有历史样本。截止本稿发布,前馈自回归 WaveNet 是对 LSTM-RNN 模型的重大改进。

延伸阅读。最近,Bai 等人提出了一种利用空洞卷积的通用前馈模型,并表明它在从合成复制任务到音乐生成的任务中优于循环基准模型。机器之心在《从循环到卷积,探索序列建模的奥秘》这一篇文章中就解析过这一模型。

前馈模型怎么能超越循环模型?

在上面的示例中,前馈网络能实现与循环网络相同或更好的结果。这很令人困惑,因为循环模型似乎更先进。Dauphin 等人对这种现象给出了一种解释:

对于语言建模而言,循环模型提供的无限长的上下文信息并非绝对必要。

换句话说,你可能不需要大量的上下文信息求平均来完成预测任务。最近的理论工作提供了一些支持这种观点的证据。

Bai 等人给出了另一种解释:

RNN 的「无限记忆」优势在实践中基本上不存在。

正如 Bai 等人的报告中说的一样,即使在明确需要长期上下文的实验中,RNN 及其变体也无法学习长序列。在 Billion Word Benchmark 上,一篇精彩的 Google 学术报告表明,记忆 n = 13 字上下文的 LSTM n-gram 模型与记忆任意长上下文的 LSTM 表现无异。

这一证据使我们猜想:在实践中训练的循环模型实际上是前馈模型。这可能发生,因为截断的沿时间反向传播不能学习比 k 步更长的模式,因为通过梯度下降训练的模型没有长期记忆。

在我们最近的论文中,我们研究了使用梯度下降训练的循环模型和前馈模型之间的差距。我们表示如果循环模型是稳定的(意味着没有梯度爆炸),那么循环模型的训练或推断过程都可以通过前馈网络很好地逼近。换句话说,我们证明了通过梯度下降训练的前馈和稳定循环模型在测试上是等价的。当然,并非所有实践中训练的模型都是稳定的。我们还给出了经验证据,可以在不损失性能的情况下对某些循环模型施加稳定性条件。

总结

尽管已经进行了一些初步的尝试,但要理解为什么前馈模型可以与循环模型竞争,并阐明序列模型之间如何权衡,仍有许多工作要做。在通用序列基准测试中到底需要多少内存?截断 RNN(可以看做是前馈模型)和流行的卷积模型之间的表现力权衡是什么?为什么前馈网络在实践中的性能和不稳定的 RNN 一样好?

回答这些问题是尝试建立一个既可以解释我们当前方法的优势和局限性,也可以指导如何在具体环境中如何选择不同模型的理论。

原文链接:http://www.offconvex.org/2018/07/27/approximating-recurrent/

理论序列化建模CNNRNN循环神经网络卷积神经网络
6
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

神经机器翻译技术

2013 年,Nal Kalchbrenner 和 Phil Blunsom 提出了一种用于机器翻译的新型端到端编码器-解码器结构 [4]。该模型可以使用卷积神经网络(CNN)将给定的一段源文本编码成一个连续的向量,然后再使用循环神经网络(RNN)作为解码器将该状态向量转换成目标语言。他们的研究成果可以说是神经机器翻译(NMT)的诞生;神经机器翻译是一种使用深度学习神经网络获取自然语言之间的映射关系的方法。NMT 的非线性映射不同于线性的 SMT 模型,而且是使用了连接编码器和解码器的状态向量来描述语义的等价关系。此外,RNN 应该还能得到无限长句子背后的信息,从而解决所谓的「长距离重新排序(long distance reordering)」问题。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

语音合成技术

语音合成,又称文语转换(Text to Speech)技术,是将人类语音用人工的方式所产生,能将任意文字信息实时转化为标准流畅的语音朗读出来,相当于给机器装上了人工嘴巴。它涉及声学、语言学、数字信号处理、计算机科学等多个学科技术,是信息处理领域的一项前沿技术,解决的主要问题就是如何将文字信息转化为可听的声音信息,也即让机器像人一样开口说话。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

条件独立性技术

在概率论和统计学中,两事件R和B在给定的另一事件Y发生时条件独立,类似于统计独立性,就是指当事件Y发生时,R发生与否和B发生与否就条件概率分布而言是独立的。换句话讲,R和B在给定Y发生时条件独立,当且仅当已知Y发生时,知道R发生与否无助于知道B发生与否,同样知道B发生与否也无助于知道R发生与否。

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

推荐文章
暂无评论
暂无评论~