资讯 人工智能学术
此为临时链接,仅用于文章预览,将在时失效

是时候放弃循环神经网络了!

作者:JocelynWang 编辑:幸丽娟
2020/02/03 09:39

有人说,不同语言之间的翻译,与其说是一门科学,不如说是一门艺术。

NLP 领域的机器学习工程师 Riccardo Di Sipio 日前提出了一个观点:使用卷积网络要比使用循环神经网络来做 NLP 研究,要幸福得多——是时候放弃循环神经网络了!

基于这一观点,他从卷积网络本身的基本原理出发,论述了为什么 NLP 不再需要循环神经网络的原因。

我们来看:

不久前,人工智能科学家侯世达(Douglas Hofstadter) 就在 The Atlantic 上发表的一篇论文中指出,目前机器翻译尚处于「浅薄」的阶段。

文章阅读地址:https://www.theatlantic.com/technology/archive/2018/01/the-shallowness-of-google-translate/551570/

尽管机器翻译存在局限性,但难以否认的是,自动翻译软件在许多情况下都有良好的效果,而其背后的技术在任何存在信息从一个领域流动到另一个领域的语境中都具有广泛的应用,例如基因组学中从 RNA 到蛋白质编码的翻译过程。

直到 2015年,序列到序列的映射(或者说翻译)使用的主要方法都是循环神经网络,特别是长短期记忆(LSTM)网络。

我在前一篇文章中介绍了这些网络架构的基础知识,我还谈到了 LSTM 被应用于大型强子对撞机的顶部夸克对衰变的运动学重建过程。这篇文章链接如下:

然后,出现了一些新的方法:比如残差网路架构和注意力机制的提出,为针对这类任务的更通用的框架的实现铺平了道路。

值得一提的是,这些新颖的网路架构还解决了另一个问题:事实上,由于 RNN 固有的时序性,很难利用这种网络在像 GPU 这样的并行系统上进行训练。而这一点正是卷积神经网络使用起来非常方便的地方。

一、卷积神经网络

在数学中,卷积表示的是当函数 f 作用于另一个函数 g 时生成第三个函数的一种运算:

是时候放弃循环神经网络了!


运算不应与调制(例如 AM 传输中的 EM 信号)混淆,调制是将两个函数简单相乘。求知欲强的人可能会深究到:时间空间中的卷积傅里叶变换,实质上是频率空间中的调制,即:

是时候放弃循环神经网络了!

所以这两种运算虽然密切相关,但切不可被混淆。

在计算机科学的离散世界中,积分被求和取代,两函数之间的乘法由矩阵间的乘法代替。用行话来说,就是将卷积核应用到图像上来生成卷积特征,一次卷积将生成一个新的特征。在下面每一对图像中,当对左边部分发生一次卷积变换,将于右边部分产生一个新的值,如下图所示:

是时候放弃循环神经网络了!

在对这个序列的操作中,图像(灰色矩阵)由一个卷积核(橙色矩阵)卷积操作以获得卷积特征(绿色矩阵)。

通常来说,卷积核是一个网络的权值矩阵,必须通过某种算法(如:反向传播)计算,才能得到它的期望输出。

这种操作的一个很好并且非常重要的特性是,一旦「图片」被加载到记忆中,不同的卷积核会对其进行操作,这样就可以减少输入/输出(I/O)次数,从而更好地利用带宽。通常,卷积操作由以下两种方式执行:

在卷积之后,通常会进行池化操作:在每个卷积块中,只将最大值传递到下一层。此操作用于降低图片维数以及过滤噪声。降维的关键是通过信息压缩来寻找更高水平的特征。 

常用的做法是,通过将上述两个步骤的板块链合在一起,来构建一个卷积神经网络。一些成功的网络架构案例如下:

二、注意力机制

既然现在我们已经了解了卷积神经网络的基本知识,那么让我们回到最原始的问题:我们如何使用这样的网络代替循环网络来解析序列呢?

注意力机制背后的主要观点是,网络应该找出输入序列的哪些部分或元素与生给定的输出序列元素具有更强的相关性。它通过为每个输入元素创建一个注意力权重向量(权重介于 0 和 1 之间,通过 Softmax 产生),并使用它们来调整信息流。如果我们首先关注基于 RNN 的网络,这将变得更容易理解。

对于每个输入元素(时间阶),RNN 层会存储一个隐藏状态。所以对于 N 个输入将会有 N 个隐藏状态。此时,我们可以通过简单地让注意力权重和隐藏状态逐个元素相乘(也就是哈达玛积)。来生成剩下文向量:

是时候放弃循环神经网络了!

例如,当翻译一个句子时,两种语言的专有名词都是一样的,因此相应的权重会非常大(例如 0.95)。相邻单词的权重很可能也是比较大的(例如 0.55),而相距较远的单词权重则较小(例如 0.05)。

最后,信息被压缩成一个注意力向量,并传递到下一层:

是时候放弃循环神经网络了!

在解码阶段,则回为每个输入的词计算上下文向量。

三、Transformer 网络

现在我们基本掌握和理解了关于如何在机器翻译中摆脱 RNN 网络的所有要素。

Transformer 网络利用注意力机制,但这次使用的是前馈网络。

首先,输入序列被嵌入(即被编码成 N 维空间中的一个数字)向量作为补充,该向量跟踪每个单词相对于彼此的初始位置。现在我们有了序列中所有单词( K)和一个给定单词( Q)的向量表示。

根据这些材料,我们可以像以前那样计算出注意力权重(d_k 代表了维度,它是一个标准化因子):

是时候放弃循环神经网络了!

这个注意力权重决定了其他每个单词对于给定单词的翻译结果的贡献程度。

将这些权重作用于待翻译的给定序列(值V)的过程称为缩放的点积注意力( Scaled Dot-Product Attention)。

多头注意力是一种注意力机制的合并方式,被用来将 Q、K 和 V 线性映射到不同维度的空间中。其思想是,不同的映射可以分别从不同方面突出信息编码的方式。其中映射是通过将 Q、K 和 V 乘以训练过程中学习到的矩阵 W 来实现的。

最后值得一提的损失,在论文《Attention Augmented Convolutional Networks》中,作者提出了一种具有多头注意力机制的 CNN ,该论文链接如下:

 而以上,便是为什么我们不再需要循环神经网络的原因~

via: https://medium.com/swlh/attention-please-forget-about-recurrent-neural-networks-8d8c9047e117 雷锋网AI 科技评论编译。 雷锋网雷锋网

长按图片保存图片,分享给好友或朋友圈

是时候放弃循环神经网络了!

扫码查看文章

正在生成分享图...

取消
相关文章