精华内容
下载资源
问答
  • 本教程从自然语言处理研究及应用的角度对神经网络模型进行了全面概述,以期使自然语言处理技术能够更快的使入门者掌握。 该教程涵盖了自然语言基础概述、卷积网络、循环、递归网络以及模型变种及相关应用。 目录 ...

    本教程从自然语言处理研究及应用的角度对神经网络模型进行了全面概述,以期使自然语言处理技术能够更快的使入门者掌握。 该教程涵盖了自然语言基础概述、卷积网络、循环、递归网络以及模型变种及相关应用。

    目录

    概述

    参考文献

    概述

            自然语言处理(Natural language processing,NLP)是一种基于智能理论的计算技术,是指对人类语言进行自动分析和表示的计算技术[1,5]。NLP 研究从打孔纸带和批处理的时代就开始发展,之后的发展过程中,随着计算机技术的发展,分析一个句子需要多达 7 分钟的时间。到了现在超级计算机、超强CPU、GPU高性能芯片时代,数百万网页可以在不到一秒钟内处理完成。NLP技术可以使计算机能够在各个层面执行自然语言处理相关的任务,如句子结构解析、词性标注、机器翻译和对话系统等。

           然而深度学习技术已经在计算机视觉和模式识别等领域取得了令人瞩目的发展,为上述领域带来了巨大的进步。紧跟这一趋势,近年来有关NLP的研究越来越多地关注于应用新的深度学习方法(见图 1)。过去十几年里,针对NLP问题的解决,一直都是基于高维度、特(别)稀疏词嵌入(one-hot等)的基础上训练浅层模型(例如SVM和logistic回归等)。而近年来,基于稠密型向量特征表示的神经网络方法在多种 NLP 任务上得到了不错结果。这一趋势是由词嵌入特征(word embeddings)[2,3]和深度学习方法相互作用共同取得的成功。深度学习技术使多层级自动特征表征与特征提取成为可能。相比之下,传统的机器学习方法在解决NLP任务上很大程度的依赖于人工制作的特征工程。这些人工制作的特征工程(向量)往往需要消耗大量的人力、物力,且需要语言专家的支持,否则特征工程的设计与引入将给模型带来巨大的噪声。

    图 1

    Ronan Collobert 等人[4] 在2011 年的研究中《Natural Language Processing (Almost) from Scratch》展示了深度学习模型在多个 NLP 任务上取得的不错实验结果,比如命名实体识别(NER)、语义角色标注(SRL)和词性标注(POS tagging)等。之后,更多的研究人员提出了大量基于复杂深度学习算法的模型用于解决有难度的 NLP 任务。本文接下来将综述用于自然语言处理任务的经典深度学习模型和方法,比如如卷积神经网络、循环神经网络和递归神经网络。本文还将讨论记忆增强策略、注意力机制,以及无监督模型、强化学习方法和深度生成模型在解决自然语言处理任务中的具体应用。

    接下来的文章内容如下:

    第二篇介绍各种经典的词嵌入特征,它们是自然语言处理任务入门的基础。

    第三篇介绍卷积神经网络及其在自然语言处理中的应用。

    第四篇介绍循环神经网络、注意力机制、transformer模型等,该模型天然适合很多 NLP 任务,因为其输出依赖于之前的计算结果。

    第五篇介绍递归神经网络。

    第六篇介绍经典神经网络的变种及优化后的模型,比如IndRNN、DRSN等。

    第七篇介绍强化学习在 NLP 中的近期应用,以及无监督句子表征学习的近期发展,深度生成模型等。

    第八篇介绍基于深度学习所解决的 NLP 任务及其当前应用性能及标准数据集上的性能分析。

    敬请关注!

    参考文献

    1.Cambria E , White B . Jumping NLP Curves: A Review of Natural Language Processing Research [Review Article][J]. IEEE Computational Intelligence Magazine, 2014, 9(2):48-57.

    2.Mikolov T , Martin Karafiát, Burget L , et al. Recurrent neural network based language model[C]// Interspeech, Conference of the International Speech Communication Association, Makuhari, Chiba, Japan, September. DBLP, 2015.

    3.Luong T , Socher R , Manning C D . Better Word Representations with Recursive Neural Networks for Morphology[C]// Proceedings of the Conference. 2013.

    4.Collobert R , Weston J , Bottou, Léon, et al. Natural Language Processing (almost) from Scratch[J]. Journal of Machine Learning Research, 2011, 12(1):2493-2537.

    5.Goldberg Y . A Primer on Neural Network Models for Natural Language Processing[J]. Computer ence, 2016.

     

    展开全文
  • 选自arXiv作者:Yi Tay 等机器之心编译编辑:魔王自 2017 年诞生以来,Transformer 模型在自然语言处理、计算机视觉等多个领域得到广泛应用,并出现了大量变体。近期涌现的大量 Transformer 变体朝着更高效的方向...

    选自arXiv

    作者:Yi Tay 等

    机器之心编译

    编辑:魔王

    自 2017 年诞生以来,Transformer 模型在自然语言处理、计算机视觉等多个领域得到广泛应用,并出现了大量变体。近期涌现的大量 Transformer 变体朝着更高效的方向演化,谷歌研究者对这类高效 Transformer 架构进行了综述。

    Transformer 是现代深度学习领域一股令人敬畏的力量,它广泛应用于语言理解、图像处理等多个领域,并产生了极大的影响。过去几年,大量研究基于 Transformer 模型做出基础性改进。人们对此的巨大兴趣也激发了对更高效 Transformer 变体的研究。

    近期涌现了大量 Transformer 模型变体,研究者和从业者可能难以跟上创新的节奏。在该论文写作时(2020 年 8 月),之前的半年出现了十多个新的高效 Transformer 模型。因此,对已有文献进行综述对于社区而言是有益和及时的。

    自注意力机制是 Transformer 模型的核心典型特征。该机制可被看作是一种类似图的归纳偏置,将序列中的所有 token 与基于相关性的池化操作连接起来。对于自注意力的一个担忧是其时空复杂度都是平方级的,这妨碍模型在多种环境下的可扩展性。最近出现了大量试图解决该问题的 Transformer 模型变体,本文将这类模型称作「高效 Transformer」(efficient Transformer)。

    基于此,模型的效率有了不同的诠释。效率可能指模型的内存占用,当模型运行的加速器内存有限时这尤为重要;效率也可能指训练和推断过程中的计算成本,如 FLOPs 数。尤其对于设备端应用而言,模型应在有限的计算预算下运行。该综述论文从内存和计算两个角度来考虑 Transformer 的效率。

    高效自注意力模型对于建模长序列的应用很关键,如通常包括较多像素或 token 的文档、图像和视频。因此,广泛采用 Transformer 优先考虑的是处理长序列的效率。

    该论文旨在对这类模型的近期发展进行综述,主要聚焦于通过解决自注意力机制的平方级复杂度来提升 Transformer 效率的建模发展和架构创新,同时该论文还简要探讨了通用改进和其他效率改进。

    该论文提出了一种针对高效 Transformer 模型的分类法,按照技术创新和主要用途进行分类。具体而言,该论文综述了在语言和视觉领域均有应用的 Transformer 模型,并为其中的部分模型提供了详细的解读。

    33bc874edac19e569177436b7d8fb8e3.png

    论文链接:https://arxiv.org/pdf/2009.06732.pdf

    关于 Transformer

    Transformer 是将 Transformer 块一个个堆叠而成的多层架构,标准 Transformer 的架构如下图所示:

    130992d3b1df4c4e791218efeb229fec.png

    Transformer 块的特征是多头自注意力机制、position-wise 前馈网络、层归一化模块和残差连接。Transformer 模型的输入通常是形状为 R^B × R^N 的张量,B 表示批大小,N 表示序列长度。

    输入首先经过嵌入层,嵌入层将每个 one-hot token 表示转换为 d 维嵌入,即 R^B × R^N × R^D 。然后将这个新的张量与位置编码(positional encoding)相加,并输入到多头自注意力模块中。位置编码可以采用正弦输入的形式,或者可训练嵌入。

    多头自注意力模块的输入和输出由残差连接和层归一化层来连接。将多头自注意力模块的输出传送至两层前馈网络,其输入 / 输出通过残差和层归一化来连接。子层残差连接与层归一化可表示为:

    其中 F_S 是子层模块,它要么是多头自注意力,要么是 position-wise 前馈层。

    高效 Transformer 模型综述

    这部分对高效 Transformer 模型进行了综述。首先我们来看不同模型的特点,表 1 列出了目前发布的高效 Transformer 模型,图 2 展示了多种重要高效 Transformer 模型的图示。

    ed8ce55e2cc53584003a6a9286dffaeb.png

    图 2:高效 Transformer 模型的分类,分类标准是模型的核心技术和主要应用场景。

    c3bc72f681efede1eed28b57bdc9e191.png

    表 1:按发布时间顺序整理的高效 Transformer 模型。

    此外,这部分还详细介绍了多个重要的高效 Transformer 模型,并分析了它们的优缺点和独特之处。这些模型包括:Memory Compressed Transformer、Image Transformer、Set Transformers、Sparse Transformers、Axial Transformers、Longformer、ETC、BigBird、Routing Transformers、Reformer、Sinkhorn Transformers、Linformer、Synthesizers、Performer、Linear Transformers、Transformer-XL和 Compressive Transformers。

    具体细节此处不再赘述,详情参见原论文第三章。

    论文最后讨论了这些模型的评估情况和设计趋势,并简要概述了可以提高 Transformer 效率的其他方法,如权重共享、量化 / 混合精度、知识蒸馏、神经架构搜索(NAS)和 Task Adapter。

    展开全文
  • 自然语言处理中注意力机制综述

    千次阅读 2019-01-19 15:04:22
    目录 写在前面 Seq2Seq 模型 NLP中Attention mechanism的起源 NLP中的注意力机制 4.1 Hierarchical Attention 4.2 Self-Attention 4.3 Memory-based Attention 4.4 Soft/Hard Attention ...参考文献 近些年来...

    目录

    1.写在前面
    2.Seq2Seq 模型
    3.NLP中Attention mechanism的起源
    4.NLP中的注意力机制
    4.1 Hierarchical Attention
    4.2 Self-Attention
    4.3 Memory-based Attention
    4.4 Soft/Hard Attention
    4.5 Global/Local Attention
    5.评价指标
    6.写在后面
    7.参考文献

    写在前面

    近些年来,注意力机制一直频繁的出现在目之所及的文献或者博文中,可见在nlp中算得上是个相当流行的概念,事实也证明其在nlp领域散发出不小得作用。这几年得顶会paper就能看出这一点。本文深入浅出地介绍了自然语言处理中的注意力机制技术。据Lilian Weng博主[1]总结以及一些资料显示,Attention机制最早应该是在视觉图像领域提出来的,这方面的工作应该很多,历史也比较悠久。人类的视觉注意力虽然存在很多不同的模型,但它们都基本上归结为给予需要重点关注的目标区域(注意力焦点)更重要的注意力,同时给予周围的图像低的注意力,然后随着时间的推移调整焦点。而直到Bahdanau等人发表了论文《Neural Machine Translation by Jointly Learning to Align and Translate》,该论文使用类似attention的机制在机器翻译任务上将翻译和对齐同时进行,这个工作目前是最被认可为是第一个提出attention机制应用到NLP领域中,值得一提的是,该论文2015年被ICLR录用,截至现在,谷歌引用量为5596,可见后续nlp在这一块的研究火爆程度。

    注意力机制首先从人类直觉中得到,在nlp领域的机器翻译任务上首先取得不错的应用成功。简而言之,深度学习中的注意力可以广义地解释为重要性权重的向量:为了预测一个元素,例如句子中的单词,使用注意力向量来估计它与其他元素的相关程度有多强,并将其值的总和作为目标的近似值

    既然注意力机制最早在nlp领域应用于机器翻译任务,那在这个之前又是怎么做的呢?传统的基于短语的翻译系统通过将源句分成多个块然后逐个词地翻译它们来完成它们的任务。 这导致了翻译输出的不流畅。想想我们人类是如何翻译的?我们首先会阅读整个待翻译的句子,然后结合上下文理解其含义,最后产生翻译。在某种程度上,神经机器翻译(NMT)的提出正是想去模仿这一过程。而在NMT的翻译模型中经典的做法是由编码器 - 解码器架构制定(encoder-decoder),用作encoder和decoder常用的是循环神经网络。这类模型大概过程是首先将源句子的输入序列送入到编码器中,提取最后隐藏的表示并用于初始化解码器的隐藏状态,然后一个接一个地生成目标单词,这个过程广义上可以理解为不断地将前一个时刻 t-1 的输出作为后一个时刻 t 的输入,循环解码,直到输出停止符为止。通过这种方式,NMT解决了传统的基于短语的方法中的局部翻译问题:它可以捕获语言中的长距离依赖性,并提供更流畅的翻译。但是这样做也存在很多缺点,譬如,RNN是健忘的,这意味着前面的信息在经过多个时间步骤传播后会被逐渐消弱乃至消失。其次,在解码期间没有进行对齐操作,因此在解码每个元素的过程中,焦点分散在整个序列中。对于前面那个问题,LSTM、GRU在一定程度能够缓解。而后者正是Bahdanau等人重视的问题。

    Seq2Seq模型

    在介绍注意力模型之前,不得不先学习一波Encoder-Decoder框架,虽然说注意力模型可以看作一种通用的思想,本身并不依赖于特定框架(比如:Learning Sentence Representation with Guidance of Human Attention),但是目前大多数注意力模型都伴随在Encoder-Decoder框架下。seq2seq模型最早由bengio等人[17]论文《Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation》。然后由Sutskever等人[16]在文章《Sequence to Sequence Learning with Neural Networks》中提出改进模型。

    从广义上讲,它的目的是将输入序列(源序列)转换为新的输出序列(目标序列),并且不限制两个序列的长度,换句话说,二个序列的长度可以任意。以nlp领域来说,序列可以是句子、段落、篇章等,所以我们也可以把它看作处理由一个句子(段落或篇章)生成另外一个句子(段落或篇章)的通用处理模型。对于句子对,我们期望输入句子Source,期待通过Encoder-Decoder框架来生成目标句子Target。Source和Target可以是同一种语言,也可以是两种不同的语言,若是不同语言,就可以处理翻译问题了。若是相同语言,输入序列Source长度为篇章,而目标序列Target为小段落则可以处理文本摘要问题(目标序列Target为句子则可以处理标题生成问题)等等等。seq2seq模型通常具有编码器 - 解码器架构:

    • 编码器encoder: 编码器处理输入序列并将序列信息压缩成固定长度的上下文向量(语义编码/语义向量context)。期望这个向量能够比较好的表示输入序列的信息。
    • 解码器decoder: 利用上下文向量初始化解码器以得到变换后的目标序列输出。早期工作仅使用编码器的最后状态作为解码器初始状态。
    • 编码器和解码器都是循环神经网络,比较常见的是使用LSTM或GRU。

    编码器 - 解码器模型

    NLP中Attention mechanism的起源

    前面谈到在Seq2Seq结构中,encoder把所有的输入序列都编码成一个统一的语义向量context,然后再由decoder解码。而context自然也就成了限制模型性能的瓶颈。譬如机器翻译问题,当要翻译的句子较长时,一个context可能存不下那么多信息。除此之外,只用编码器的最后一个隐藏层状态,感觉上都不是很合理。实际上当我们翻译的时候譬如:Source:机器学习–>Target:machine learning。当decoder要生成"machine"的时候,应该更关注"机器",而生成"learning"的时候,应该给予"学习"更大的权重。所以如果要改进Seq2Seq结构,一个不错的想法自然就是利用encoder所有隐藏层状态解决context限制问题。

    Bahdanau等人[3]把attention机制用到了神经网络机器翻译(NMT)上。传统的encoder-decoder模型通过encoder将Source序列编码到一个固定维度的中间语义向量context,然后在使用decoder进行解码翻译到目标语言序列。前面谈到了这种做法的局限性,而且,Bahdanau等人[3]在摘要也说到这个context可能是提高这种基本编码器 - 解码器架构性能的瓶颈,那Bahdanau等人又是如何尝试缓解这个问题的呢?让我们来一探究竟,作者为了缓解中间向量context很难将Source序列所有必要信息压缩进来的问题,特别是对于那些很长的句子。提出在机器翻译任务上在 encoder–decoder 做出了如下扩展:将翻译和对齐联合学习。这个操作在生成Target序列的每个词时,用到的中间语义向量context是Source序列通过encoder的隐藏层的加权和,而传统的做法是只用encoder最后一个输出h_t作为context,这样就能保证在解码不同词的时候,Source序列对现在解码词的贡献是不一样的。想想前面那个例子:“Source:机器学习–>Target:machine learning”(假如中文按照字切分)。decoder在解码"machine"时,"机"和"器"提供的权重要更大一些,同样,在解码"learning"时,"学"和"习"提供的权重相应的会更大一些,这在直觉也和人类翻译也是一致的。通过这种attention的设计,作者将Source序列的每个词(通过encoder的隐藏层输出)和Target序列(当前要翻译的词)的每个词巧妙的建立了联系。想一想,翻译每个词的时候,都有一个语义向量,而这个语义向量是Source序列每个词通过encoder之后的隐藏层的加权和。 由此可以得到一个Source序列和Target序列的对齐矩阵,通过可视化这个矩阵,可以看出在翻译一个词的时候,Source序列的每个词对当前要翻译词的重要性分布,这在直觉上也能给人一种可解释性的感觉。

    论文中的图也能很好的看出这一点:

    生成第t个目标词yt

    更形象一点可以看这个图:

    在这里插入图片描述



    现在让我们从公式层面来看看这个东东(加粗变量表示它们是向量,这篇文章中的其他地方也一样)。 假设我们有一个长度为n的源序列x,并尝试输出长度为m的目标序列y:

    x=[x1,x2,,xn]\begin{aligned} \mathbf{x} &= [x_1, x_2, \dots, x_n] \end{aligned} %]
    y=[y1,y2,,ym]\begin{aligned} \mathbf{y} &= [y_1, y_2, \dots, y_m] \end{aligned} %]

    作者采样bidirectional RNN作为encoder(实际上这里可以有很多选择),具有前向隐藏状态 hi\overrightarrow{\boldsymbol{h}}_i 和后向隐藏状态 hi\overleftarrow{\boldsymbol{h}}_i 。为了获得词的上下文信息,作者采用简单串联方式将前向和后向表示拼接作为encoder的隐藏层状态,公式如下:

    hi=[hi;hi],i=1,,n\boldsymbol{h}_i = [\overrightarrow{\boldsymbol{h}}_i^\top; \overleftarrow{\boldsymbol{h}}_i^\top]^\top, i=1,\dots,n

    对于目标(输出)序列的每个词(假设位置为t),decoder网络的隐藏层状态 st=f(st1,yt1,ct)\boldsymbol{s}_t=f(\boldsymbol{s}_{t-1}, y_{t-1}, \mathbf{c}_t) ,其中 t=1,,mt=1,\dots,m,语义向量 ct\mathbf{c}_t 是源(输入)序列的隐藏状态的加权和,权重为对齐分数:

    在这里插入图片描述
    (注意:这里的score函数为原文的a函数,原文的描述为: eij=a(si1,hj)e_{ij} = a(s_{i-1}, h_j) is an alignment model)

    对齐模型基于 xix_i (在i时刻的输入)和 yty_t (在t时刻的输出)的匹配程度分配分数 αt,i\alpha_{t,i} 。集合 αt,i{\alpha_{t, i}} 是定义每个目标(输出)单词应该考虑给每个源(输入)隐藏状态的多大的权重(这恰恰反映了对此时解码的目标单词的贡献重要性)。

    在Bahdanau[3]的论文中,作者将对齐模型参数化为前馈神经网络,该网络与所提出的系统的所有其他组件共同训练。因此,score函数采用以下形式,tanh用作非线性激活函数,公式如下:

    score(st,hi)=vatanh(Wa[st;hi])\text{score}(\boldsymbol{s}_t, \boldsymbol{h}_i) = \mathbf{v}_a^\top \tanh(\mathbf{W}_a[\boldsymbol{s}_t; \boldsymbol{h}_i])

    其中 va\mathbf{v}_aWa\mathbf{W}_a 都是在对齐模型中学习的权重矩阵。对齐分数矩阵是一个很好的可接受性的东东,可以明确显示源词和目标词之间的相关性。

    对齐矩阵例子

    而decoder每个词的条件概率为: p(yty1,...,yt1,x)=g(yt1,st,ct)p({y_t|y_1,...,y_{t-1}}, \mathbf{x})=g(y_{t-1}, s_t, c_t)

    g为非线性的,可能是多层的输出 yty_t 概率的函数, sts_t 是RNN的隐藏状态, ctc_t 为语义向量。

    NLP中的注意力机制

    随着注意力机制的广泛应用,在某种程度上缓解了源序列和目标序列由于距离限制而难以建模依赖关系的问题。现在已经涌现出了一大批基于基本形式的注意力的不同变体来处理更复杂的任务。让我们一起来看看其在不同NLP问题中的注意力机制。

    其实我们可能已经意识到了,对齐模型的设计不是唯一的,确实,在某种意义上说,根据不同的任务设计适应于特定任务的对齐模型可以看作设计出了新的attention变体,让我们再看看这个模型(函数): score(st,hi)\text{score}(\boldsymbol{s}_t, \boldsymbol{h}_i) 。再来看几个代表性的work。

    • Citation[5]等人提出Content-base attention,其对齐函数模型设计为:
      score(st,hi)=cosine[st,hi]\text{score}(\boldsymbol{s}_t, \boldsymbol{h}_i) = \text{cosine}[\boldsymbol{s}_t, \boldsymbol{h}_i]

    • Bahdanau[3]等人的Additive(*),其设计为: score(st,hi)=vatanh(Wa[st;hi])\text{score}(\boldsymbol{s}_t, \boldsymbol{h}_i) = \mathbf{v}_a^\top \tanh(\mathbf{W}_a[\boldsymbol{s}_t; \boldsymbol{h}_i])

    • Luong[4]等人文献包含了几种方式:
      在这里插入图片描述

    • 以及Luong[4]等人还尝试过location-based function: αt,i=softmax(Wast)\alpha_{t,i} = \text{softmax}(\mathbf{W}_a \boldsymbol{s}_t) 。这种方法的对齐分数仅从目标隐藏状态学习得到。

    • Vaswani[6]等人的Scaled Dot-Product(^): score(st,hi)=sthin\text{score}(\boldsymbol{s}_t, \boldsymbol{h}_i) = \frac{\boldsymbol{s}_t^\top\boldsymbol{h}_i}{\sqrt{n}}
      细心的童鞋可能早就发现了这东东和点积注意力很像,只是加了个scale factor。当输入较大时,softmax函数可能具有极小的梯度,难以有效学习,所以作者加入比例因子 1/\sqrt{n} 。

    • Cheng[7]等人的Self-Attention(&)可以关联相同输入序列的不同位置。 从理论上讲,Self-Attention可以采用上面的任何 score functions。在一些文章中也称为“intra-attention” 。

    Hu[7]还对此分了个类:
    在这里插入图片描述
    前面谈到的一些Basic Attention给人的感觉能够从序列中根据权重分布提取重要元素。而Multi-dimensional Attention能够捕获不同表示空间中的term之间的多个交互,这一点简单的实现可以通过直接将多个单维表示堆叠在一起构建。Wang[8]等人提出了coupled multi-layer attentions,该模型属于多层注意力网络模型。作者称,通过这种多层方式,该模型可以进一步利用术语之间的间接关系,以获得更精确的信息。

    4.1 Hierarchical Attention

    再来看看Hierarchical Attention,Yang[9]等人提出了Hierarchical Attention Networks,看下面的图可能会更直观:

    Hierarchical Attention Networks

    这种结构能够反映文档的层次结构。模型在单词和句子级别分别设计了两个不同级别的注意力机制,这样做能够在构建文档表示时区别地对待这些内容。Hierarchical attention可以相应地构建分层注意力,自下而上(即,词级到句子级)或自上而下(词级到字符级),以提取全局和本地的重要信息。自下而上的方法上面刚谈完。那么自上而下又是如何做的呢?让我们看看Ji[10]等人的模型:

    Nested Attention Hybrid Model

    和机器翻译类似,作者依旧采用encoder-decoder架构,然后用word-level attention对全局语法和流畅性纠错,设计character-level attention对本地拼写错误纠正。

    4.2 Self-Attention

    那Self-Attention又是指什么呢?Self-Attention(自注意力),也称为"intra-attention"(内部注意力),是关联单个序列的不同位置的注意力机制,以便计算序列的交互表示。 它已被证明在很多领域十分有效比如机器阅读,文本摘要或图像描述生成。

    • 比如Cheng[11]等人在机器阅读里面利用了自注意力。当前单词为红色,蓝色阴影的大小表示激活程度,自注意力机制使得能够学习当前单词和句子前一部分词之间的相关性。
      当前单词为红色,蓝色阴影的大小表示激活程度
    • 比如Xu[12]等人利用自注意力在图像描述生成任务。注意力权重的可视化清楚地表明了模型关注的图像的哪些区域以便输出某个单词。
      在这里插入图片描述

    我们假设序列元素为 V=viV={v_i} ,其匹配向量为 uu 。让我们再来回顾下前面说的基本注意力的对齐函数,我们的attention score通过 a(u,vi)a(u, v_i) 计算得到,由于是通过将外部u与每个元素 viv_i 匹配来计算注意力,所以这种形式可以看作是外部注意力。当我们把外部u替换成序列本身(或部分本身),这种形式就可以看作为内部注意力(internal attention)。

    我们根据[7]文章中的例子来看看这个过程,例如句子:“Volleyball match is in progress between ladies”。句子中其它单词都依赖着"match",理想情况下,我们希望使用自我注意力来自动捕获这种内在依赖。换句话说,自注意力可以解释为,每个单词 viv_i 去和V序列中的内部模式 vv' 匹配。匹配函数 a(v,vi)a(v', v_i)vv' 很自然的的选择为V中其它单词 vjv_j ,这样便可以计算成对注意力得分。为了完全捕捉序列中单词之间的复杂相互作用,我们可以进一步扩展它以计算序列中每对单词之间的注意力。这种方式让每个单词和序列中其它单词交互了关系。

    在这里插入图片描述

    另一方面,自注意力还可以以自适应方式学习复杂的上下文单词表示。譬如经典文章:“A structured self-attentive sentence embedding”。这篇文章提出了一种通过引入自我关注来提取可解释句子嵌入的新模型。 使用二维矩阵而不是向量来代表嵌入,矩阵的每一行都在句子的不同部分,想深入了解的可以去看文章,另外,文章的公式感觉真的很漂亮。

    值得一提还有2017年谷歌提出的Transformer[6],这是一种新颖的基于注意力的机器翻译架构,也是一个混合神经网络,具有前馈层和自注意层。论文的题目挺霸气:Attention is All you Need,毫无疑问,它是2017年最具影响力和最有趣的论文之一。那这篇文章的Transformer又是什么?

    这篇文章为提出许多改进,在完全抛弃了RNN的情况下进行seq2seq建模。接下来一起详细看看吧。



    Key, Value and Query:

    Transformer的主要由多头自注意力(Multi-Head Self-Attention)单元组成。 Transformer将输入序列编码表示视为一组键值对(K,V),两者都是维度n(输入序列长度); 在NMT的上下文中,键和值都是编码器隐藏状态。 在解码器中,先前的输出被压缩成查询(维度为m的Q),并且通过映射该查询以及该组键和值来产生下一个输出。

    Transformer采用缩放的点积注意力(scaled dot-product attention):输出是值的加权和,其中分配给每个值的权重由查询的点积与所有键确定:

    Attention(Q,K,V)=softmax(QKn)V\text{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \text{softmax}(\frac{\mathbf{Q}\mathbf{K}^\top}{\sqrt{n}})\mathbf{V}

    那么Multi-Head Self-Attention又是什么呢?以下为论文中的图:

    Multi-head scaled dot-product attention mechanism

    Multi-Head Self-Attention不是仅仅计算一次注意力,而是多次并行地通过缩放的点积注意力。 独立的注意力输出被简单地连接并线性地转换成预期的维度。论文表示,“多头注意力允许模型共同关注来自不同位置的不同表示子空间的信息。 只有一个注意力的头,平均值就会抑制这一点。

    MultiHead(Q,K,V)=[head1;;headh]WOwhere headi=Attention(QWiQ,KWiK,VWiV)% <![CDATA[ \begin{aligned} \text{MultiHead}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) &= [\text{head}_1; \dots; \text{head}_h]\mathbf{W}^O \\ \text{where head}_i &= \text{Attention}(\mathbf{Q}\mathbf{W}^Q_i, \mathbf{K}\mathbf{W}^K_i, \mathbf{V}\mathbf{W}^V_i) \end{aligned} %]]>

    WQi,WKi,WVi,WOWQi, WKi, WVi, WO 是需要学习的参数矩阵。既然为seq2seq模式,自然也包括encoder和decoder,那这篇文章又是如何构建这些的呢?

    Encoder

    he transformer’s encoder

    编码器生成基于注意力的表示,其能够从可能无限大的上下文中定位特定信息。值得一提的是,上面的结构文章堆了六个。

    • 每层都有一个多头自注意力层
    • 每层都有一个简单的全连接的前馈网络
    • 每个子层采用残差连接和层规范化。 所有子层输出相同维度dmodel = 512。

    Decoder

    The transformer’s decoder.

    解码器能够从编码表示中检索。上面的结构也堆了六个。

    • 每层有两个多头注意机制子层。
    • 每层有一个完全连接的前馈网络子层。
    • 与编码器类似,每个子层采用残差连接和层规范化。

    与encoder不同的是,第一个多头注意子层被设计成防止关注后续位置,因为我们不希望在预测当前位置时查看目标序列的未来。最后来看一看整体架构:

    The full model architecture of the transformer.

    4.3 Memory-based Attention

    那Memory-based Attention又是什么呢?我们先换种方式来看前面的注意力,假设有一系列的键值对 (ki,vi){(k_i,v_i)} 存在内存中和查询向量q,这样便能重写为以下过程:

    • ei=a(q,ki)e_i=a(q,k_i)(address memory)
    • αi=exp(ei)iexp(ei)\alpha_i=\frac{exp(e_i)}{\sum_{i}exp(e_i)} (normalize)
    • c=iαivic=\sum_{i}\alpha_i v_i (read contents)

    这种解释是把注意力作为使用查询q的寻址过程,这个过程基于注意力分数从memory中读取内容。聪明的童鞋肯定已经发现了,如果我们假设ki=vik_i=v_i ,这不就是前面谈到的基础注意力么?然而,由于结合了额外的函数,可以实现可重用性和增加灵活性,所以Memory-based attention mechanism可以设计得更加强大。

    那为什么又要这样做呢?在nlp的一些任务上比如问答匹配任务,答案往往与问题间接相关,因此基本的注意力技术就显得很无力了。那处理这一任务该如何做才好呢?这个时候就体现了Memory-based attention mechanism的强大了,譬如Sukhbaatar[]等人通过迭代内存更新(也称为多跳)来模拟时间推理过程,以逐步引导注意到答案的正确位置:

    在这里插入图片描述

    在每次迭代中,使用新内容更新查询,并且使用更新的查询来检索相关内容。一种简单的更新方法为相加 qt+1=qt+ctq_{t+1}=q_t+c_t 。那么还有其它更新方法么?当然有,直觉敏感的童鞋肯定想到了,光是这一点,就可以根据特定任务去设计,比如Kuma[13]等人的工作。这种方式的灵活度也体现在key和value可以自由的被设计,比如我们可以自由地将先验知识结合到key和value嵌入中,以允许它们分别更好地捕获相关信息。

    4.4 Soft/Hard Attention

    这个概念由《Show, Attend and Tell: Neural Image Caption Generation with Visual Attention》提出,这是对attention另一种分类。SoftAttention本质上和Bahdanau等人[3]很相似,其权重取值在0到1之间,而Hard Attention取值为0或者1。

    4.5 Global/Local Attention

    Luong等人[4]提出了Global Attention和Local Attention。Global Attention本质上和Bahdanau等人[3]很相似。Global方法顾名思义就是会关注源句子序列的所有词,具体地说,在计算语义向量时,会考虑编码器所有的隐藏状态。而在Local Attention中,计算语义向量时只关注每个目标词的一部分编码器隐藏状态。由于Global方法必须计算源句子序列所有隐藏状态,当句子长度过长会使得计算代价昂贵并使得翻译变得不太实际,比如在翻译段落和文档的时候。

    在这里插入图片描述

    5.评价指标

    在看一些带有attention的paper时,常常会伴随着为了说明自己文章attention是work的实验,但实际上尝试提供严格数学证明的文章极少。Hu[7]把Attention的评价方式分为两类,Quantitative(定量指标)和Qualitative(定性指标)。定量指标顾名思义就是对attention的贡献就行量化,这一方面一般会结合下游任务,最常见的当属机器翻译,我们都知道机器翻译的最流行评价指标之一是BLEU,我们可以在翻译任务设计attention和不加attention进行对比,对比的指标就是BLEU,设置我们可以设计多种不同的attention进行对比。

    定性指标评价是目前应用最广泛的评价技术,因为它简单易行,便于可视化。具体做法一般都是为整个句子构建一个热力图,其热力图强度与每个单词接收到的标准化注意力得分成正比。也就是说,词的贡献越大,颜色越深。其实这在直觉上也是能够接收的,因为往往相关任务的关键词的attention权值肯定要比其它词重要。比如Hu[7]文中的图:

    在这里插入图片描述

    6. 写在后面

    本文参考了众多文献,对近些年的自然语言中的注意力机制进行了介绍,从形成、变体到评价都进行了简要介绍,要明白实际上注意力机制在nlp上的研究特别多,我仅仅对18、19年的文献进行了简单的调研(AAAI、IJCAI、ACL、EMNLP等顶会),就至少有一百篇之多,足见attention还是很潮的,所以我也把链接放到了github:yuquanle/Attention-Mechanisms-paper,方便查阅。以后慢慢补充~~

    贴个图:
    在这里插入图片描述
    我也下载了很多nlp方面的attention文章,如果没有梯子或者嫌麻烦的童鞋,需要论文集可以关注我的公众号,然后后台回复“Attention”获取资源,以下是部分截图~~

    在这里插入图片描述

    7. 参考文献

    [1] Attention? Attention!.
    [2] Neural Machine Translation (seq2seq) Tutorial.
    [3] Neural Machine Translation by Jointly Learning to Align and Translate, Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. ICLR, 2015.
    [4] Effective approaches to attention-based neural machine translation, Minh-Thang Luong, Hieu Pham, and Christopher D Manning. EMNLP, 2015.
    [5] Neural Turing Machines, Alex Graves, Greg Wayne and Ivo Danihelka. 2014.
    [6] Attention Is All You Need, Ashish Vaswani, et al. NIPS, 2017.
    [7] An Introductory Survey on Attention Mechanisms in NLP Problems Dichao Hu, 2018.
    [8] Coupled Multi-Layer Attentions for Co-Extraction of Aspect and Opinion Terms Wenya Wang,Sinno Jialin Pan, Daniel Dahlmeier and Xiaokui Xiao. AAAI, 2017.
    [9] Hierarchical attention networks for document classification Zichao Yang et al. ACL, 2016.
    [10] A Nested Attention Neural Hybrid Model for Grammatical Error Correction Jianshu Ji et al. 2017.
    [11] Long Short-Term Memory-Networks for Machine Reading Jianpeng Cheng, Li Dong and Mirella Lapata. EMNLP, 2016.
    [12] Show, Attend and Tell: Neural Image Caption Generation with Visual Attention Kelvin Xu et al. JMLR, 2015.
    [13] Ask me anything: Dynamic memory networks for natural language processing. Zhouhan Lin al. JMLR, 2016.
    [14] A structured self-attentive sentence embedding Zhouhan Lin al. ICLR, 2017.
    [15] Learning Sentence Representation with Guidance of Human Attention Shaonan Wang , Jiajun Zhang, Chengqing Zong. IJCAI, 2017.
    [16] Sequence to Sequence Learning with Neural Networks Ilya Sutskever et al. 2014.
    [17] Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation Kyunghyun Cho, Yoshua Bengio et al. EMNLP, 2014.

    欢迎关注【AI小白入门】,这里分享Python、机器学习、深度学习、自然语言处理、人工智能等技术,关注前沿技术,求职经验等,陪有梦想的你一起成长。

    在这里插入图片描述

    展开全文
  • 时至今日,基于 GAN 设计的新型算法如雨后春笋般纷纷涌现了出来、对于 GAN 存在的模式坍塌和收敛性等理论问题的深入分析层出不穷,其应用也广泛渗透到了诸如计算机视觉、自然语言处理、医疗人工智能等领域中。...

    d32787829eaca3db34f1616618748fd1.png
    自从 2014 年 Ian GoodFellow 提出 GAN 模型,生成对抗网络迅速成为了最火的生成式模型。时至今日,基于 GAN 设计的新型算法如雨后春笋般纷纷涌现了出来、对于 GAN 存在的模式坍塌和收敛性等理论问题的深入分析层出不穷,其应用也广泛渗透到了诸如计算机视觉、自然语言处理、医疗人工智能等领域中。本文是一份出自陶大程、叶杰平老师等大牛之手的 GAN 详细综述,介绍了近年来有关 GAN 模型的相关研究进展,并指出了今后该领域的发展方向。

    选自arXiv,作者:Jie Gui、叶杰平、陶大程等,机器之心编译,参与:郭元晨、Geek AI。

    9ac447f0f0d1c5201650bf15e2e549a6.png

    论文地址:https://arxiv.org/pdf/2001.06937.pdf

    近年来,生成对抗网络(GAN)是一个热门的研究课题。2014 年至今,人们对 GAN 进行了广泛的研究,并提出了大量算法。但是,很少有全面的研究来解释不同 GAN 变体之间的联系以及它们演变的方式。在本文中,我们尝试从算法、理论和应用的角度对多种 GAN 方法进行综述。首先,我们详细介绍了大多数 GAN 算法的研究动机、数学表征和架构。此外,GAN 已经在一些特定应用上与其它机器学习算法相结合,如半监督学习、迁移学习和强化学习。本文比较了这些 GAN 方法的异同。其次,我们研究了与 GAN 相关的理论问题。第三,我们阐述了 GAN 在图像处理与计算机视觉、自然语言处理、音乐、语音与音频、医学以及数据科学中的典型应用。最后,我们指出了 GAN 的一些未来的开放性研究问题。

    算法

    在本节中,我们首先介绍最原始的 GAN。然后,介绍其具有代表性的变体、训练及评估方式以及任务驱动的 GAN。

    生成对抗网络

    当模型都是神经网络时,GAN 架构实现起来非常直观。为了学习生成器在数据 x 上的分布 p_g,首先定义一个关于输入噪声变量的先验分布 p_z(z)[3],其中 z 是噪声变量。接着,GAN 表示了从噪声空间到数据空间的映射 G(z, θ_g),其中 G 是一个由参数为 θ_g 的神经网络表示的可微函数。除了 G 之外,另一个神经网络 D(x, θ_d) 也用参数 θ_d 定义,D(x) 的输出是一个标量。D(x) 表示了 x 来自真实数据而不是来自生成器 G 的概率。我们对判别器 D 进行训练,以最大化为训练数据和生成器 G 生成的假样本提供正确标签的概率。同时,我们训练 G,最小化 log(1-D(G(z)))。

    • 目标函数

    GAN 可以使用各种不同的目标函数。

    • 最原始的极大极小博弈

    GAN [3] 的目标函数是

    c91a4e4f3192b628600b93e200ce919a.png

    其中 D(x) 是 [1, 0]^T 和 [D(x), 1 - D(x)]^T 间的交叉熵。类似地,log(1-D(G(z))) 是 [0, 1]^T 和 [D(G(z)), 1 - D(G(z))]^T 间的交叉熵。对于一个固定的 G,[3] 中给出了最优的判别器 D:

    7b22824d1e6346979306bec678a516d8.png

    (1) 式中的极大极小博弈可以被重新形式化为:

    1d1086a5ed8b2fa509afec4c06725ee3.png

    两个概率分布 p(x) 和 q(x) 之间的 KL 散度和 JS 散度定义如下:

    3220693a07502f49e58cbb82f708e7a4.png

    因此,(3) 式等价于

    e2323e1ffbe7022f932ff3ee46c91bb7.png

    因此,GAN 的目标函数和 KL 散度与 JS 散度都相关。

    • 非饱和博弈

    实际上,公式 (1) 可能无法为 G 提供足够大的梯度使其很好地学习。一般来说,G 在学习过程的早期性能很差,产生的样本与训练数据有明显的差异。因此,D 可以以高置信度拒绝 G 生成的样本。在这种情况下,log(1-D(G(z))) 是饱和的。我们可以训练 G 以最大化 log(D(G(z))),而非最小化 log(1-D(G(z)))。生成器的损失则变为

    2cee73d5eaded0b6fc3db428b21451a0.png

    这个新的目标函数可以在训练过程中使 D 和 G 的达到相同的不动点,但是在学习初期就提供了大得多的梯度。非饱和博弈是启发式的,而非理论驱动的。然而,非饱和博弈还存在其它问题,如用于训练 G 的数值梯度不稳定。在最优的 D*_G 下,有

    6f0c03dc798b6888c32b9959bb4c1783.png

    因此 E_(x~p_g)[-log(D*_G(x))] 等价于

    fe5dea2fc085b5d5261b19c7ed6c69f3.png

    根据 (3) 式和 (6) 式,有

    adbab8d81831486c94ccedc7b8161cf1.png

    因此 E_(x~p_g)[log^(1 - D*_G(x))] 等价于

    c77fbd1cc1ac82aba014fa6c384cbb21.png

    将 (11) 式代入 (9) 式,可以得到

    0750226e7cde2f6163e952fc9f08e33b.png

    从 (12) 式可以看出,对非饱和博弈中的替代 G 损失函数的优化是矛盾的,因为第一项目标是使生成的分布与实际分布之间的差异尽可能小,而由于负号的存在,第二项目标是使得这两个分布之间的差异尽可能大。这将为训练 G 带来不稳定的数值梯度。此外,KL 散度是非对称度量,这可以从以下两个例子中反映出来

    d325bec080c822d2b03669a05003c926.png

    对 G 的两种误差的惩罚是完全不同的。第一种误差是 G 产生了不真实的样本,对应的惩罚很大。第二种误差是 G 未能产生真实的样本,而惩罚很小。第一种误差是生成的样本不准确,而第二种误差是生成的样本不够多样化。基于这个原理,G 倾向于生成重复但是安全的样本,而不愿意冒险生成不同但不安全的样本,这会导致模式坍塌(mode collapse)问题。

    • 最大似然博弈

    在 GAN 中,有许多方法可以近似 (1) 式。假设判别器是最优的,我们想最小化

    e51d0d7ac2e570d584ba92b828132933.png

    在 GAN 框架中有其它可能的方法逼近最大似然 [17]。图 1 展示了对于原始零和博弈、非饱和博弈以及最大似然博弈的比较。

    b118255237e992939e377b806d4e4904.png

    由图 1 可以得到三个观察结果。

    首先,当样本可能来自于生成器的时候,即在图的左端,最大似然博弈和原始极大极小博弈都受到梯度弥散的影响,而启发式的非饱和博弈不存在此问题。

    第二,最大似然博弈还存在一个问题,即几乎所有梯度都来自曲线的右端,这意味着每个 minibatch 中只有极少一部分样本主导了梯度的计算。这表明减小样本方差的方法可能是提高基于最大似然博弈的 GAN 性能的重要研究方向。

    第三,基于启发式的非饱和博弈的样本方差较低,这可能是它在实际应用中更成功的可能原因。

    M.Kahng 等人 [124] 提出了 GAN Lab,为非专业人士学习 GAN 和做实验提供了交互式可视化工具。Bau 等人 [125] 提出了一个分析框架来可视化和理解 GAN。

    代表性的 GAN 变体

    与 GAN [126]-[131] 相关的论文有很多,例如 CSGAN [132] 和 LOGAN [133]。在本小节中,我们将介绍一些具有代表性 GAN 变体。

    1. InfoGAN
    2. ConditionalGANs(cGANs)
    3. CycleGAN
    4. f-GAN
    5. IntegralProbabilityMetrics(IPMs)
    6. LossSensitiveGAN(LS-GAN)

    有一个叫做「The GAN Zoo」的网站(https://github.com/hindupuravinash/the-gan-zoo),列举了许多 GAN 的变体。更多详细信息请访问该网站。

    bbe6f61abbc6d7435c98b5558a48706e.png

    GAN 的训练

    尽管理论上存在特有的解决方案,但由于多种原因 [29],[32],[179],GAN 的训练是困难且常常不稳定的。其中一个困难是来自这样一个事实:即 GAN 的最佳权重对应于损失函数的鞍点,而非极小值点。

    关于 GAN 训练的论文很多。Yadav 等人 [180] 用预测方法使 GAN 训练更加稳定。[181] 通过使用独立的学习率,为判别器和生成器提出了两个时间尺度更新规则(TTUR),以确保模型可以收敛到稳定的局部纳什均衡。Arjovsky [179] 为全面了解 GAN 的训练动力学(training dynamics)进行了理论探究,分析了为什么 GAN 难以训练,研究并严格证明了训练 GAN 时出现的损失函数饱和和不稳定等问题,提出了解决这类问题的一个实用且具有理论依据的方向,并引入了新的工具来研究它们。Liang 等人 [182] 认为 GAN 的训练是一个连续的学习问题 [183]。

    改善 GAN 训练的一种方法是评估训练中可能发生的经验性「症状」。这些症状包括:生成器坍塌至对于不同的输入只能生成极其相似的样本 [29];判别器损失迅速收敛至零 [179],不能为生成器提供梯度更新;使生成器、判别器这一对模型难以收敛 [32]。

    我们将从三个角度介绍 GAN 的训练:

    1. 目标函数
    2. 训练技巧
    3. 架构

    083120f528d1ccab20cf363266f4433e.png

    c51d42b8fd89f93b9305465722e3f4d0.png

    GAN 的评价指标

    在本小节中,我们说明用于 GAN 的一些评价指标 [215],[216]:

    1. InceptionScore(IS)
    2. Modescore(MS)
    3. FrechetInceptionDistance(FID)
    4. Multi-scalestructuralsimilarity(MS-SSIM)

    如何为 GAN 选择一个好的评价指标仍然是一个难题 [225]。Xu 等人 [219] 提出了对 GAN 评价指标的实证研究。Karol Kurach [224] 对 GAN 中的正则化和归一化进行了大规模的研究。还有一些其它对于 GAN 比较性的研究,例如 [226]。参考文献 [227] 提出了几种作为元度量的度量依据,以指导研究人员选择定量评价指标。恰当的评价指标应该将真实样本与生成的假样本区分开,验证模式下降(mode drop)或模式坍塌,以及检测过拟合。希望将来会有更好的方法来评价 GAN 模型的质量。

    任务驱动的 GAN

    本文的重点关注 GAN 模型。目前,对于涉及特定任务的紧密相关的领域,已经有大量的文献。

    1. 半监督学习
    2. 迁移学习
    3. 强化学习
    4. 多模态学习

    GAN 已被用于特征学习领域,例如特征选择 [277],哈希 [278]-[285] 和度量学习 [286]。MisGAN [287] 可以通过 GAN 利用不完整数据进行学习。[288] 中提出了进化型 GAN(Evolutionary GAN)。Ponce 等人 [289] 结合 GAN 和遗传算法为视觉神经元演化图像。GAN 还被用于其它机器学习任务 [290],例如主动学习 [291],[292],在线学习 [293],集成学习 [294],零样本学习 [295],[296] 和多任务学习 [297]。

    理论

    最大似然估计(MLE)

    并不是所有生成模型都使用 MLE。一些生成模型不使用 MLE,但可以被修改为使用 MLE(GAN 就属于此类)。可以简单地证明,最小化 p_data(x) 和 p_g(x) 之间的 KL 散度(KLD)等价于最大化样本数 m 增加时的对数似然:

    6e1ad7beb6d713d062ae2a03cc1afab2.png

    为了保证符号一致性,将模型概率分布 p_θ(x)替换为 p_g(x)。有关 MLE 和其他统计估计量的更多信息,请参阅 [298] 的第 5 章。

    模式坍塌

    GAN 很难训练,并且在 [26],[29] 已经观察到它们经常受到模式坍塌 [299],[300] 的影响,其中生成器学习到仅仅根据少数几种数据分布模式生成样本,而忽视了许多其它的模式(即使整个训练数据中都存在来自缺失模式的样本)。在最坏的情况下,生成器仅生成单个样本(完全坍塌)[179],[301]。

    在本小节中,我们首先引入 GAN 模式坍塌的两种观点:散度观点和算法观点。然后,我们将介绍通过提出新的目标函数或新的架构以解决模式坍塌的方法,包括基于目标函数的方法和基于架构的方法。

    其它理论问题

    其它理论问题包括:

    1. GAN 是否真正学到了分布?

    2. 散度/距离

    3. 逆映射

    4. 数学观点(例如优化)

    5. 记忆

    应用

    如前所述,GAN 是可以由随机向量 z 生成逼真的样本的强大的生成模型。我们既不需要知道显式的真实数据分布,或进行其他任何数学假设。这些优点使 GAN 可以被广泛应用于许多领域,例如图像处理和计算机视觉、序列数据等。

    图像处理和计算机视觉

    GAN 最成功的的应用是在图像处理和计算机视觉方面,例如图像超分辨率、图像生成与操作和视频处理。

    1. 超分辨率
    2. 图像合成和操作
    3. 纹理合成
    4. 目标检测
    5. 视频应用

    序列数据

    GAN 也在序列数据上取得了一定成就如自然语言、音乐、语音、音频 [376], [377]、时间序列 [378]–[381] 等。

    开放性研究问题

    GAN 领域仍然存在许多开放性研究问题。

    将 GAN 用于离散数据:GAN 依赖于生成参数关于生成样本是完全可微的。因此,GAN 无法直接生成离散数据,例如哈希编码和独热(one-hot)向量。解决此类问题非常重要,因为它可以释放 GAN 在自然语言处理和哈希计算中的潜力。Goodfellow 提出了三种解决这个问题的方法 [103]:使用 Gumbel-softmax [448],[449] 或离散分布 [450];利用强化算法 [451];训练生成器以采样可转换为离散值的连续值(例如,直接对单词的嵌入向量进行采样)。

    还有其他方法朝着该研究方向发展。Song 等人 [278] 使用了一个连续函数来近似哈希值的符号函数。Gulrajani 等人 [19] 用连续生成器建模离散数据。Hjelm 等人 [452] 引入了一种用离散数据训练 GAN 的算法,该算法利用来自判别器的估计差异度量来计算生成样本的重要性权重,从而为训练生成器提供了策略梯度。可以在 [453],[454] 中找到其它的相关工作。在这个有趣的领域需要有更多的工作出现。

    新的散度:研究者提出了一系列用于训练 GAN 的新的积分概率度量(IPM),如 Fisher GAN [455],[456],均值和协方差特征匹配 GAN(McGan)[457] 和 Sobolev GAN [458]。是否还有其它有趣的散度类别?这值得进一步的研究。

    估计不确定性:通常来说,我们拥有的数据越多,估计的不确定性会越小。GAN 不会给出生成训练样本的分布,但 GAN 想要生成和训练样本分布相同的新样本。因此,GAN 既没有似然也没有明确定义的后验分布。目前已经有关于这个方向研究的初步尝试,例如 Bayesian GAN [459]。尽管我们可以利用 GAN 生成数据,但是如何度量训练好的生成器的不确定性呢?这是另一个值得未来研究的有趣问题。

    理论:关于泛化问题,Zhang 等人 [460] 提出了在不同评价指标下的真实分布和学习到的分布之间的泛化界。当用神经距离进行评价时,[460] 中的泛化界表明,只要判别器的集合足够小,无论假设集或生成器集合的大小如何,泛化性都是可以保证的。Arora 等人 [306] 提出了一种新颖的测试方法,使用离散概率的「生日悖论」来估计支撑集大小,并且表明即使图像具有较高的视觉质量,GAN 也会受到模式坍塌的影响。更深入的理论分析非常值得研究。我们如何经验性地测试泛化性?有用的理论应当能够选择模型的类别、容量和架构。这是一个值得未来工作深入研究的有趣问题。

    其它:GAN 领域还有许多其它重要的研究问题,如评估方式(详见 3.4 小节)和模式坍缩(详见 4.2 小节)。

    展开全文
  • 在这篇文章中,我们回顾了针对这一差异的研究工作,并产生了关于DNN的电子对抗实例。我们对这些作品进行了全面的收集、选择、总结、讨论和分析,涵盖了...最后,在文献回顾的基础上,我们提出了进一步的讨论和建议。
  • 自然语言模型综述文献,对初学者和自然语言模型研究中很大帮助
  • 目录自然语言处理发展及应用Summary概念定义流程发展历史研究方法>自然语言处理流程(部分不太理解)基础研究的四个层面>1. 词法分析>...参考文献自然语言处理发展及应用综述_赵京胜 Summ
  • 自然语言处理(NLP)之Word Embedding

    万次阅读 多人点赞 2018-08-03 17:26:16
    最近做完UNIT一个小项目后,结合基于知识图谱的问答,对NLP/NLU方向产生了比较大的兴趣,想深入学习一下,结合一篇综述Recent Trends in Deep Learning Based Natural Language Processing(参考文献[5]为其阅读笔记)...
  • 点击上方,选择星标或置顶,每天给你送干货!阅读大概需要10分钟跟随小博主,每天进步一丢丢整理:机器学习算法与自然语言处理文献综述是什么?文献看了一大堆,怎么梳理,怎么写成文献综述?文献综...
  • 近日,复旦大学邱锡鹏等学者发布了自然语言处理处理中预训练模型PTMs的综述大全,共25页pdf205篇参考文献,从背景知识到当前代表性PTM模型和应用研究挑战等,是绝好的预训练语言模型的文献
  • 来源:专知摘要:深度学习使用多层学习层次的数据表示,并在许多领域得到了最优的结果。最近,各种各样的模型设计和方法在自然语言处理(NLP)蓬勃发展。在本文中,我们回顾了被广...
  • 2.文献综述 下面介绍将NL转换为SPARQL以及将NL转换为SQL的ART应用: (1)AquaLog:语义网的本体独立问答系统。它由一个语言组件组成,用于映射用户查询到查询三元组,这些查询三元组被进一步处理成符合本体的三元...
  • 边缘计算与深度学习综述

    千次阅读 2020-04-23 16:59:31
    边缘计算与深度学习综述摘要背景,度量与框架深度学习的背景深度学习性能的度量DNN推理和训练的可用框架深度学习在边缘侧的应用计算机视觉自然语言处理网络功能IOT虚拟现实和增强现实(VR and AR)边缘侧的快速推理...
  • 文本分类是自然语言处理中最基本、最基本的任务。过去十年,由于深度学习取得了前所未有的成功,这一领域的研究激增。大量的方法、数据集和评价指标已经在文献中提出,提高了全面和更新综述的需要。
  • 21页Visual Transformer综述,共计156篇参考文献!本文将视觉Transformer模型根据不同的任务进行分类(如检测、分类、视频等...Transformer是一种主要基于自注意力机制的深度神经网络,最初应用于自然语言处理领域。受
  • 梯度下降优化算法综述翻译来自塞巴斯蒂安·鲁德文章,他是自然语言处理的博士,AYLIEN的一位研究科学家。他的博客关于机器学习、深度学习、NLP。原文连接查看参考文献:...
  • 自动摘要是自然语言处理领域的一个研究重点,自动摘要的研究和应用受到了计算机科学,语言学,心理学等相关学科的广泛关注。我在阅读多篇关于自动摘要技术的文献后,在本文中浅谈了有关自动摘要技术的研究意义,重点...
  • 由于计算机视觉和自然语言处理的深度学习取得了前所未有的成功,过去几年来该领域的研究大量增加。研究文献中提出了许多方法,数据集和评估指标,呼吁需要进行全面调研综述,以将研究工作集中在这一蓬勃发展的新方向...
  • 文本分类是自然语言处理中最基本的任务。由于深度学习的空前成功,过去十年中该领域的研究激增。已有的文献提出了许多方法,数据集和评估指标,从而需要对这些内容进行全面的总结。本文回顾1961年至2020年的文本分类...
  • 文本分类是自然语言处理中最基本的任务。由于深度学习的空前成功,过去十年中该领域的研究激增。已有的文献提出了许多方法,数据集和评估指标,从而需要对这些内容进行全面的总结。本文回顾1961年至2020年的文本分类...
  • 文本分类是自然语言处理中最基本的任务。由于深度学习的空前成功,过去十年中该领域的研究激增。已有的文献提出了许多方法,数据集和评估指标,从而需要对这些内容进行全面的总结。本文回顾1961年至2020年的文本分类...
  • 1.9 参考文献 16 第2章 c++概览 19 2.1 为什么是c++ 19 2.2 程序设计范型 19 2.3 过程式程序设计 20 2.3.1 变量和算术 21 2.3.2 检测和循环 22 2.3.3 指针和数组 23 2.4 模块程序设计 23 2.4.1 分别编译 24...
  • C++程序设计语言(特别版)--源代码

    热门讨论 2012-04-23 07:33:51
    1.9 参考文献 16 第2章 c++概览 19 2.1 为什么是c++ 19 2.2 程序设计范型 19 2.3 过程式程序设计 20 2.3.1 变量和算术 21 2.3.2 检测和循环 22 2.3.3 指针和数组 23 2.4 模块程序设计 23 2.4.1 分别编译 24...
  • 文献[7]中对智能交通系统的核心技术——汽车牌照识别技术进行了研究,在图像处理技术的基础上,着重研究了车牌区域定位技术,析了日前有代表性的车牌定位方法,介绍了利用粒子图像测速关联PIV(Particle Image ...
  • 1.9 参考文献 16 第2章 c++概览 19 2.1 为什么是c++ 19 2.2 程序设计范型 19 2.3 过程式程序设计 20 2.3.1 变量和算术 21 2.3.2 检测和循环 22 2.3.3 指针和数组 23 2.4 模块程序设计 23 2.4.1 分别编译 24...
  • 文章目录Named Entity Extraction for KnowledgeGraphs: A Literature ...从自然语言文本中挖掘(或提升)知识图需要自然语言处理(NLP)。问题的核心部分是提取文本中的命名实体。本文概述了这一领域的最新进展,包括:命
  • 文章目录Named Entity Extraction for KnowledgeGraphs: A Literature ...从自然语言文本中挖掘(或提升)知识图需要自然语言处理(NLP)。问题的核心部分是提取文本中的命名实体。本文概述了这一领域的最新进展,包括:命
  • deep learning 深度学习

    2017-06-12 10:22:30
    深度学习我的书籍:大数据智能(机器学习和自然语言处理) 首先说明本书是一本非常好的科普性文章,在大数据方便介绍的很清楚,授人以鱼不如授人以渔,每一章...学术会议自然语言处理(nlp)acl网址快速了解综述报告
  • Mac OS之Latex(MacTeX)初体验

    千次阅读 2019-12-09 22:30:03
    由于本学期自然语言处理课程有一项作业是写文献综述,男神刘洋老师要求必须用Latex写,笔者终于不得不再次拾起曾经半途而废的Latex。 一、MacTeX的下载及安装 MacTeX是TeXLive的Mac版,不用纠结名字的微小区别,...

空空如也

空空如也

1 2
收藏数 34
精华内容 13
关键字:

自然语言处理文献综述