DeepMind Perceiver架构介绍

402 阅读9分钟

在文献中,人们经常提到深度神经网络是如何被生物神经系统所模拟的。毕竟,目标是让计算机有能力通过处理数据来解决某些任务,而不是通过明确的编程。可以说,是为了预知事物。

然而,这并不完全正确。我们可以说,不同类型的任务需要一个特定的神经网络。 它们不是一般的,它们取决于正在处理的数据类型。例如,你会用不同的神经网络来处理图像(如 卷积神经网络 、ResNet等),而用不同的神经网络来处理音频(如 LSTM 、RNN、1D Convolutions)。

因为每一个网络都是为各自的目的而建立的,所以它们依赖于不同的先验。这些先验是好的,它们带来了所需的信息和偏见,网络可以利用这些信息和偏见进行学习,然而,它们将神经网络限制在一个特定的目的。

来自Deep Mind的作者提出的新的超级模型(不是那种超级模型,你真傻)(完整的论文--Perceiver:带有迭代注意的一般感知)旨在解决这个问题,并使这些系统更接近真正的生物系统,这些系统通过同时处理不同的信号来感知它们周围的世界。

这个新的网络是基于Transformer 架构,它被称为Perceiver。谷歌的人工智能负责人杰夫-迪恩(Jeff Dean)将其描述为一个可以处理任何任务的模型,而且 "学习 "速度更快,使用的数据更少

1.为什么Perceiver很重要?

我们可以说,机器学习和深度学习的世界正在通过Perceiver跨越另一个门槛。为了解释Perceiver做出了哪些改进,让我们以CNN的图像处理管道为例。这个管道假设图像是某种网格,由像素组成。每个像素都有它在图像中的坐标

此外,这些网络还假设图像中的每个像素都与图像中的其他像素有关。毕竟,即使在2012年的深度学习热潮之前,计算机视觉算法也是这样工作的。这就是为什么我们在图像上滑动各种过滤器(以及它们的权重)来建立它们的感受野。这意味着,像素之间的关系是建立在网络的架构中的。

Convolutional Neural Networks Image Processing

以类似的方式,视觉变换器(ViT)会将图像分成若干部分,然后创建每部分像素的向量。这样做是因为图像太大,无法将其放入 变形器 直接的。因此,在某种程度上,像素之间的这种关联性也是建立在这种架构中的。这不仅仅是计算机视觉任务的情况,也是音频处理任务的情况,等等。这就是论文作者所说的这些信息 "将模型锁定在不同的模式上 "的意思。

这是Perceiver试图解决的第一件事。Perceiver试图将网络的架构与它所处理的数据脱钩。其逻辑是,我们应该向前迈进,建立与他们处理的数据类型无关的深度学习系统。Perceiver旨在解决的另一个问题是Transformer的瓶颈问题,因为它是一个基于Transformer的架构。正如我们已经提到的,即使是Visual Transformer架构也会将图像分割成较小的部分,因为对于Transformer来说,图像一般都太大了。

Transformer Attention is all you need Architecture

这主要是由于变形器是序列到序列的架构,最初是为文本处理和NLP而建立的。变形器使用所谓的自我关注,将一个元素序列转移到另一个元素序列中,比如说,将一个英语句子翻译成一个法语句子。

由于文本中处理输入的幅度远远小于图像的幅度,这通常被称为变形器瓶颈或二次缩放问题。Perceiver的目的也是为了解决这个问题,并提出了 "在计算注意力时,我们能不能更聪明?".因此,让我们来看看Perceiver架构,看看它是怎样的。

2.感知器架构

来自DeepMind的Perceiver的作者有几个非常有趣的想法,并将一些新旧概念结合在一起。从本质上讲,Perceiver是由两种类型的层组成的。Cross-Attention层Latent Transformer层

这个想法是利用交叉注意力层(我们将在后面看到它们是什么)将输入数据压缩成可以由潜变层处理的潜空间向量。因此,从技术上讲,我们可以说感知器的真正目标是解决转化器的瓶颈问题,这带来了一定程度的数据不可知性。好了,这就是这个架构的样子。

Perceiver DeepMind Architecutre

我认为,专家式的混合方法将是很重要的,还有多任务和多模式的方法,在这些方法中,你算是学习了对许多不同事情有用的表征,并且算是共同学习了好的表征,帮助你能够更快解决新的任务,并且用更少的数据,更少的任务实例,因为你已经在利用你对世界已经知道的所有事情。

杰夫-迪恩

谷歌人工智能领导

2.1 一个感知器统治一切

最初的Transformer论文以注意力的概念改变了世界(毕竟注意力是你需要的一切)。这个概念是围绕着使用查询-关键-价值(QKV)的注意力而结构化的。本质上,注意力在一个输入数组的每个元素上使用三个多层感知器(MLPs)--查询、关键和价值网络。

输出是三个数组(向量),保留了输入的序列长度)。正如你在上图中看到的,每个交叉注意力层都使用输入数据来计算注意力向量K和V。最终的注意力向量Q来自于之前学习的潜伏向量。即使这个向量在开始时可以随机初始化,我的猜测是DeepMind有一些预先学习的潜伏向量,他们在这里利用,至少在开始时。

Neural Network Visual

然后,Q、V和K被用来提供潜在的空间向量。这些向量不像标准Transformer那样大,这意味着它们可以毫无问题地被Transformer层处理。如果这整件事让你想起了 递归神经网络(RNNs),那是因为Perceiver在技术上是一个RNN,但在深度上使用相同的输入,而不是在时间上展开。

关键是相同的输入总是被用于学习注意力向量。这个向量可以是一个像素以一维向量的形状滚出来的图像,也可以是一个经过类似处理的音频信号。而这正是这个解决方案的魅力所在。什么都不重要。

2.2交叉注意力感知器层

Cross-Attention层是Perceiver方法的魅力所在。它们解决了将类似注意力的架构扩展到大型和通用输入的问题。这也是一种黑客行为,所以我希望这个解决方案在未来会有一些改进。如果我们把输入维度表示为M,那么QKV注意力操作的复杂性是O(M²)。然而,如果我们使用交叉注意,K和V只是输入的投影,而Q是一个学习的潜向量的投影。这个潜在向量的维度是N,我们认为N<<M。这样,注意力操作的复杂度就降低到了O(MN)

Cross-Attention Layer

2.3潜伏转化器感知器层

感知器的转换层与GPT-2架构中的转换层相同。这些都是基于原始变形器架构的解码器。由于Cross-Attention引入了较低维度的潜伏向量,从技术上讲包含相同的信息,Perceiver能够利用更深层次的Transformer,而不依赖于特定领域的假设。

2.4Perceiver中的位置编码

如果你熟悉最初的Transformer论文,你会知道Positional Encoding对它非常重要。这意味着输入序列中的元素的顺序是相当重要的。这是有道理的,因为NLP任务是处理文本的,单词在句子中的位置是非常重要的。Perceiver的情况也是如此。不同的是,Perceiver使用傅里叶特征位置编码。一提到傅里叶,我就想起了我的同事时代 🙂事实是,这种技术在前些年得到了应用。

Fourier Positional Encoding

3.感知器的结果

本文考虑了三个数据集和三个任务的结果:

  • ILSVRC 2012分割的ImageNet数据集,用于单一图像分类。
  • AudioSet数据集用于视频中的音频事件分类
  • ModelNet40是一个奇怪的数据集,由来自三维三角网格的点云组成,横跨40个物体类别。其任务是预测每个物体的类别,给定三维空间中2000个点的坐标。

3.1 感知器图像分类结果

图像分类的结果是惊人的。它们表明,Perceiver在ImageNet数据集中的表现优于ResNet-50,而不依赖于特定领域的假设。这真是太疯狂了。更吸引人的是对permutated ImageNet数据集的结果。这个数据集是由位置特征创建后的排列组合组成的。这样做是为了显示基于卷积的网络如何不能像Perceiver那样利用所学的特征。其结果是令人震惊的

Perceiver Results ImageNet Dataset

3.2 感知器的音频+视频结果

Perceiver在视频和音频实验中都取得了接近最先进的结果。在音频任务上,Perceiver比大多数ConvNet模型表现得更好,除了CNN-14有改进。大多数提到的方法都使用直方图,但Perceiver只使用原始音频。同样,这也是超乎想象的迷人。视频结果类似,然而,提供者的表现比最先进的方法差,这些方法使用单独的模型,对音频+视频任务进行后期组合。

Perceiver Audio Results

3.3感知器的点云结果

Perceiver的表现好于ResNet和视觉变换器的变化。然而,它并没有比PointNet++表现得更好,PointNet++是专门的神经网络,可以执行作者没有考虑到的额外转换。

Perceiver point cloud results

结论

Perceiver是向前迈出的一大步。尽管还有很多工作要做,但所取得的成就和结果是令人惊讶的。有趣的一点肯定是,感知器从经验上证明,如果我们能够把足够多的转化器堆在一起,网络将能够学习一切。看来,未来真的属于那些更加关注的人。

谢谢您的阅读!