请注意:忘记递归神经网络

翻译自:Attention, please: forget about Recurrent Neural Networks

你可能应该用卷积替换你的循环神经网络并且开心

有人说从一种语言到另一种语言的翻译更像是一门艺术,而不是一门科学。不久前,道格拉斯霍夫施塔特在一篇发表在大西洋上的文章中指出了机器翻译的“浅薄”。尽管存在局限性,但很难否认自动翻译软件不仅在许多情况下运行良好,而且其背后的技术在信息从一个领域流向另一个领域(如RNA到蛋白质)的任何环境中都有广泛的应用。在基因组学中编码。直到2015年,序列到序列的映射(或翻译)领域由循环神经网络主导,特别是长期短期记忆(LSTM)网络。我介绍了这些架构的基础知识上一篇文章,其中LSTM应用于大型强子对撞机顶部夸克对衰变的运动学重建。然后,发生了一些新的事情:提出了ResNet体系结构和注意机制,为这种任务的更一般框架铺平了道路。特别是,这些新颖的架构还解决了沿途的另一个问题:事实上,由于RNN的固有顺序性质,这种网络难以在诸如GPU的并行系统上进行训练。在这里,卷积神经网络变得非常方便。

卷积神经网络

在数学中,卷积是表示在应用于另一个函数 时某个函数 的整形的操作

 

 

不必将该操作与作为两个功能之间的简单乘法的调制(例如,AM传输中的EM信号)混淆。对于好奇的人来说,时间空间中卷积的傅立叶变换是频率空间中的调制,

所以这两个操作密切相关,但不必相互混淆。

在计算机科学的离散世界中,积分被一个和被两个函数乘以矩阵乘法所取代。在行话中,内核应用于图像以产生卷积特征,一次一个元素,如下图所示:

在该操作序列中,图像(灰色矩阵)由内核(橙色矩阵)卷积以获得卷积特征(绿色矩阵)。

通常,内核是必须通过某种算法(例如反向传播)找到的网络权重矩阵,以便产生所需的输出。

这个操作的一个不错的重要特性是,一旦“图像”被加载到内存中,不同的内核就可以对其进行操作,从而减少了I / O操作的数量,从而更好地利用了带宽。通常,卷积操作以两种方式执行:

  • 为了减小维数:这是上面给出的情况,其中例如4x4图像被2x2内核减少到3x3图像。这称为有效填充
  • 为了保持维度不变:在这种情况下,在应用内核之前,原始图像在其周围用“零填充”填充。例如,将4x4图像填充到5x5矩阵,然后将2x2内核缩小为4x4图像。这称为相同的填充

在卷积之后,通常执行合并操作:在每个块中,仅将最大值传播到下一层。此操作用于降低维度并滤除噪声。减少维度的重点是通过压缩信息来找到更高级别的特征。

通常,通过将多个这两个步骤块链接在一起来构造卷积神经网络。成功架构的示例如下:

  • AlexNet(2012):它包含8层; 前5个是卷积层,其中一些是最大池,最后3个是完全连接的层。它使用 ReLU激活函数而不是 tanh sigmoid
  • VGGNet(2014):顾名思义,它是一个非常深的卷积网络,由16层组成。与AlexNet类似,它只有3x3内核,但有很多过滤器。它是目前从图像中提取特征的最受欢迎的选择。
  • GoogLeNet(2014):该网络受旧版 LeNet的启发,但使用了 Inception模块。在推出之前,CNN只是将卷积层叠加得越来越深。为了说明信息可以在相似图像中的不同范围内传播,该网络在同一级别应用不同大小的内核(例如 1x1,3x3,5x5 ......),然后连接输出。像这样的九个模块是堆叠的。随着深度网络遭受消失的梯度问题,较新的实现利用了剩余网络架构
  • ResNet(2015):残余神经网络具有突出的批量标准化跳过连接。后者是跳过某些层次的捷径。由于剩余块,获得了“技巧”。ResNets的类似方法被称为高速公路网络。 

 

注意机制

现在我们已经了解了卷积神经网络的基础知识,我们可以回到原点:我们如何使用这样的网络来解析序列来代替循环网络?注意力背后的想法是网络应该弄清楚输入序列的哪些部分(元素)与生成输出序列的给定元素更相关。它通过为每个输入元素创建一个注意权重向量(在0和1之间,来自softmax)来实现,并使用它们来调制信息流。如果我们首先关注基于RNN的网络,那么它的实现方式会更容易理解。对于每个输入元素(时间步长),RNN层存储隐藏状态。因此对于N输入将有N隐藏的状态。在这一点上,我们可以通过简单地将元素逐个元素(Hadamard乘积)乘以注意权重和隐藏状态来生成上下文向量

例如,在翻译句子时,两种语言中的专有名称相同,因此相应的权重将非常高(例如 0.95)。相邻的单词很可能也具有高权重(例如 0.55),而相距较远的单词将获得较低的权重(例如 0.05)。

最后,信息被压缩到一个传递给下一层的注意向量

在解码阶段期间,为每个输出字计算上下文向量。

The Transformer

现在我们基本上了解了如何摆脱机器翻译的RNN。该变压器网络利用的关注,但使用前馈网络的这个时候。首先,嵌入输入序列(,在N维空间中编码成数字)并补充有跟踪每个单词相对于彼此的原始位置的向量。我们现在有一个给定单词(查询Q)和序列中所有单词(键K)的向量表示。从这些成分中我们可以像以前一样计算注意力(d _ k 代表维度,是一个归一化因子):

这些注意力量决定了每个其他单词应该对给定单词的翻译做出多少贡献。将这些权重应用于要翻译的给定序列(值V 称为Scaled Dot-Product Attention。该多头关注是施加到的线性突起的注意机制的级联QķV到具有不同尺寸的空间。这个想法是不同的投影可以突出信息编码方式的不同方面。通过将QKV乘以一些矩阵W来完成投影在培训期间学到的。最后,在文章Attention Augmented Convolutional Networks中,作者提出了一种配备了多头注意机制的变压器CNN。

这就是我们不再需要循环神经网络的原因!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章