【待更新】深度学习中的Attention机制之计算机领域中的attention机制

受到《Attention Is All You Need》的启发,探索作为独立研究点的注意力机制
本稿件于2018年12月30号完成第三版编写,共计22102字。现在把它搬到博客里面来,一来交流,二来重温

绪论

注意力是一个经常用在人身上的词汇,指的是人对不同事物会分配不同的关注度。在进化过程中,人类要处理的信息越来越多,但是脑容量要想无限增大是不可能,那么到底是什么使得人类得以适应当今的发展呢?大自然给人类做出的选择是:虽然脑容量没有过多地增大,但是却发展出来能够迅速分析信息,并高效率地选择信息并投注计算能力的机制,这就是注意力,它使得人类可以将所有计算能力放在重要的任务上。更深入的认识神经科学方面的研究将单独整理,这里只做简单的引入。

从上文的大体描述来看。目前的深度学习环境非常适合模拟人脑的注意力:各种神经网络的数据输入量都特别大,并且也不是所有数据都是携带了有用的信息,这时候选择合适的信息来合理地分配计算机的计算能力是非常必要的。

我们能够想到的、最直观的注意力机制是视觉注意力。计算机科学中的Attention机制最早就是在视觉图像领域提出来的(应该是在九几年),真正火起来应该算是2014年google mind团队的这篇论文《Recurrent Models of Visual Attention》,他们用attention机制来进行图像分类。

在神经网络中模拟人的视觉注意力机制已经被深入研究并提出了诸多的模型。所有的这些模型最终都表现为到能够对图像某些区域给予“高分辨率(high resolution)”的聚焦,而对于其它部分给予“低分辨率(low resolution)”的感知,并且这种视觉的聚焦会随着时间而变化。这一部分将在本次报告中的第二部分展开详细的讨论。

另外,attention机制也被引入到了循环神经网络中,进而被广泛应用于自然语言处理(NLP)中。Bahdanau等人在论文《Neural Machine Translation by Jointly Learning to Align and Translate》中,使用类似attention的机制在机器翻译任务上将翻译和对齐同时进行,他们的工作算是第一个将attention机制应用到NLP领域中。接着attention机制被广泛应用在基于RNN/CNN等神经网络模型的各种NLP任务中。2017年,google机器翻译团队发表的《Attention is all you need》中大量使用了自注意力(self-attention)机制来学习文本表示。自注意力机制也成为了大家近期的研究热点,并在各种NLP任务上进行探索。

总的来说,attention机制更多的是一种思想而非具体的数据模型,它在不同的任务、不同的网络中有着不同的体现形式。

本次报告要介绍两部分内容,首先是目前主流研究所指的attention机制的本质以及一般意义上的数学模型;然后梳理目前计算机视觉领域对attention机制的具体应用方式。其他领域的研究后续看情况整理。

另外,在正文开始之前先申明报告中经常出现的词汇:

  • 注意力机制:指的是认知神经科学里的注意力概念,指的是人的注意力; Attention机制:指的是深度学习领域中的注意力机制;
  • Feature map:CNN网络中卷积层计算输出的图,该图所表达的信息是原图像的特征,称为特征图;
  • Attention map:本质是注意力权重分布,在CV领域一般是图的形式。有的论文称它为saliency map,mask(掩码)。
  • Pixel map:原图像(自己从文章里随便用的名字)。

模型的抽象概括

虽说attention机制“发家于”CV,但是从NLP角度来介绍attention机制的本质更具有概括性,因此在这一部分的介绍中,基本都是以NLP中的机器翻译任务为例的。另外,NLP有很多任务是序列学习任务,因此对注意力机制的应用研究大多集中在attention-based RNN。但是注意力机制并非依存于序列学习,它在其他任务中依然得到了应用。RNN作为attention应用最成熟的一个模型,不少文章都是从RNN的attention讲起。本次报告借助encoder-decoder框架来抽象出attention机制的物理意义,并进一步延伸到self-attention机制。

Attention机制的作用

正如绪论中所说的,深度学习中的注意力机制从本质上讲是对人类注意力机制的模拟。主要思想和人类的选择性视觉注意力机制类似:核心目标也是从众多信息中选择出对当前任务目标更关键的信息。

博客:Attention模型的最终目的是帮助类似编解码器这样的框架,更好的学到多种内容模态之间的相互关系,从而更好的表示这些信息,克服其无法解释从而很难设计的缺陷。从上述的研究问题可以发现,Attention机制非常适合于推理多种不同模态数据之间的相互映射关系,这种关系很难解释,很隐蔽也很复杂,这正是Attention的优势—不需要监督信号,对于上述这种认知先验极少的问题,显得极为有效。

。从与人类注意力作用相似这一角度出来看,深度学习中的attention机制有以下具体的作用:

  1. 减小处理高维输入数据的计算负担,通过结构化的选取输入的子集,降低数据维度。
  2. “去伪存真”,让任务处理系统更专注于找到输入数据中显著的与当前输出相关的有用信息,从而提高输出的质量。

但在目前实际应用当中,人们对attention的理解并没有这么局限。比如在后面将要讲到的SAGAN网络中,把attention模型当作捕获全局依赖(local dependency)的工具。

Encoder-Decoder框架(seq2seq)

目前NLP领域中的attention机制大多数都是Encoder-Decoder框架。当然,attention作为一种通用的思想,本身并不依赖于特定框架,这点需要注意。在真正介绍注意力的物理模型之前,我们从Encoder-Decoder框架开始。

顾名思义,该框架是由编码部分和解码部分构成的,可能该框架会出现在不同的地方,在这里我们要介绍的是RNN的一种模型——encoder-decoder模型,又称为seq2seq模型。

首先原始的RNN模型是一个N VS N(N进N出)的循环网络结构,如下图所示:

在这里插入图片描述
【图片有些是来自别人的需要搞引用,先这样吧】

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值