经产观察
IT资讯
IT产业动态
业界
网站运营
站长资讯
互联网
国际互联网新闻
国内互联网新闻
通信行业
通信设备
通信运营商
消费电子
数码
家电
国际互联网新闻

Attention!神经网络中的注意机制到底是什么?

作者:habao 来源: 日期:2017-10-25 9:08:14 人气:

  神经网络的注意机制(Attention Mechanisms)已经引起了广泛关注。在这篇文章中,我将尝试找到不同机制的共同点和用例,两种soft visual attention的原理和实现。

  通俗地说,神经网络注意机制是具备能专注于其输入(或特征)的神经网络,它能选择特定的输入。我们将输入设为x∈Rd,特征向量为z∈Rk,a∈[0,1]k为注意向量,fφ(x)为注意网络。一般来说,attention的实现方式为:

  为了理解attention的重要性,我们需要考虑神经网络的本质——它是一个函数逼近器。依赖它的架构,它可以近似不同类型函数。神经网络一般被应用在链矩阵乘法和对应元素的架构中,在这些地方输入或特征向量仅在加法时相互作用。

  注意机制可以用来计算可被用于特征相乘的mask,这种操作让神经网络逼近的函数空间大大扩展,使全新的用例成为可能。

  注意力可被应用在各种类型的输入,而无需考虑它们的形状。在像图像这种矩阵值输入的情况下,我们引入了视觉注意力这个概念。定义图像为I∈RH*W,g∈Rh*w为glimpse,也就是将注意机制应用于图像。

  这个形式的唯一问题是它是不可微分的,如果想了解模型的参数,则必须使用score-function estimator之类的帮助。

  然而,soft atttention用于计算有些不经济。输入中被遮蔽的部分对结果没有影响,但仍然需要进行运算。同时它也过参数化了,实现attention的Sigmoid激活函数是对彼此的。它可以一次选择多个目标,但在实践中,我们通常想有选择性地关注场景中一个或几个元素。

  下面,我将分别由DRAW和Spatial Transformer Networks切入,介绍两种机制解决上述问题。它们还可以调整输入的大小,从而进一步提高性能。

  Gaussian attention是用参数化的一维高斯滤波器创建一张图像大小的注意力地图。定义ay=Rh,ax=Rw为注意力向量,attention mask可被写成:

  在上图中,顶行表示ax,最右列表示ay,中间的矩形表示a。为了让结果可视化,向量中只包含了0和1。在实践中,它们可以被一维高斯函数向量实现。一般来说,高斯函数的数目等同于空间维度,每一个向量都被三个参数表示:第一个高斯μ的中心,连续分布高斯中心之间的距离,高斯分布的标准差σ。有了这些参数变量,注意力和glimps都变得可微了,学习的难度也降低了不少。

  因为这个例子只能选择一部分图像,剩余图像都需要被清理掉,因此用attention也显得有些不划算。如果我们不直接用向量,进而选择将它们分别形成矩阵Ay∈Rh*H和Ax∈Rw*W,可能会好些。

  现在,每个矩阵的每一行都有一个Gaussian,并且参数d指定了连续行中高斯分布中心的特定距离。glimpse可以被表示为:

  下面这串代码可以让你在TensorFlow中为小批量样例创建上述矩阵值mask。如果你想创建Ay,你可以称它为Ay = gaussian_mask(u, s, d, h, H),其中u,s,d分别表示μ,σ和d,在这个方式中以像素的方式指定。

  Spatial Transformer(STN)允许更一般转换,能区分图像裁剪。图像裁剪也是可能的用例之一,它由两个组件组成,网格生成器和采样器。网格生成器要指定从中取样的点网格,而采样器是样本。在DeepMind最近的神经网络库Sonnet中,用TensorFlow实现非常简单。

  Gaunssian Attention和Spatial Transformer实现的行为很相似,我们怎样判断选择哪一种实现方式呢?这里列举了一些细微差别:

  Gaussian attention是一种超参数化的裁剪机制,它需要6个参数,但只有4个度(y,x,高度和宽度)。STN只需要四个参数。

  目前我还没有运行任何测试,但是STN应该更快一些。它依赖于抽样点的线性插值,而Gaussian attention则需要执行两个矩阵乘法。

  Gaussian attention应该更容易训练。这是因为,结果glimpse中每一个像素都可以是源图像相对较大像素块的凸组合,这使查找错因变得更加容易。另一方面,STN依赖于线性插值,在每个采样点处的梯度只在最接近的两个像素点处不为零。

  注意机制扩展了神经网络的功能,能近似更复杂的函数。或者用更直观的术语来说,它能够专注于输入的特定部分,提高了自然语言基准测试的性能,也带来了全新的功能,如图像字幕、内存网络中地址和神经程序。

  我认为,attention最重要的应用案例尚未被发现。举个例子,我们知道视频中的对象是一致和连贯的,它们不会在帧与帧中突然消失。注意机制可以用来表示这种一致性。至于它的后续发展如何,我会持续关注。

  推荐:

  

推荐文章