TensorFlow系列专题(十一):RNN的应用及注意力模型

  • 时间:
  • 浏览:4
  • 来源:大发5分6合APP下载_大发5分6合APP官网

嘴笨 采用编码器-解码器 (Encoder-Decoder) 形态的模型在机器翻译、语音识别以及文本摘要等诸多应用中均取得了非常不错的效果,但并肩也处于着过低之处。编码器将输入的序列编码成了1个多多多 固定长度的向量,再由解码器将其解码得到输出序列,你你这俩固定长度的向量所具有的表征能力是有限的,然而解码器又受限于你你这俩固定长度的向量。如何让,当输入序列较长时,编码器很难将所有的重要信息都编码到你你这俩定长的向量中,从而使得模型的效果大打折扣。

最简单的编码最好的辦法 是直接把网络最后1个多多多 时刻的情形赋值给,要都上能使用1个多多多 函数来做变换,函数接收的参数都上能是,要都上能是从到的所有后面 情形。在得到后面 向量如果 ,接下来要做的而是 解码。一种常用的解码最好的辦法 如图5(左)所示,模型在解码过程中将编码得到的向量作为解码器的初始情形,并将每1个多多多 时间步的输出作为下1个多多多 时间步的输入,直至解码完成。“EOS”是输入和输出序列始于了的标志。图5右侧所示的是另一种解码的最好的辦法 ,该最好的辦法 将编码得到的向量作为解码器模型每1个多多多 “时间步”的输入。

为了处理你你这俩问题报告 ,亲戚朋友引入了注意力机制(Attention),你你这俩引入了Attention机制的神经网络模型又称为Attention-based model。本节亲戚朋友要介绍的Soft Attention Model是一种最为常见,使用也较多的注意力模型。为了处理传统的Encoder-Decoder模型中单个定长的编码向量无法保留较长的输入序列中的所有有用信息的问题报告 ,Attention-based model引入多个编码向量,在解码器中1个多多多 输出对应1个多多多 编码向量,如图6所示。

在4-tag字标注法中,有六个标签,分别是:B、M、E和S。其中B代表你你这俩字是1个多多多 词的首字,M代表你你这俩字是1个多多多 词的后面 主次(1个多多多 词可能性由多个字组成,除了首尾,后面 的字都标为M),E代表你你这俩字是1个多多多 词的最后1个多多多 字,而S代表这是1个多多多 单字,不构成词。在类似于于分词你你这俩序列标注的问题报告 中,每1个多多多 “时间步”都对应1个多多多 输入和输出。对于你你这俩问题报告 ,亲戚朋友采用“同步的序列到序列的模式”,如图3所示:

在下一章里,亲戚朋友将使用循环神经网络实现好多个完全的项目,在学会使用TensorFlow搭建循环神经网络模型的并肩,加深对循环神经网络的理解。

图2 “序列到类别模式”的循环神经网络示意图



循环神经网络在每1个多多多 “时间步”就有 1个多多多 输出,但对于1个多多多 简单的分类问题报告 ,亲戚朋友不需用太大的输出,1个多多多 常用且简单的处理最好的辦法 是只保留最后1个多多多 “时间步”的输出,如图2所示:



机器翻译

以上而是 传统的Soft Attention Model,除此之外还有有些其它形式的Attention-based model,有适用于自然语言处理领域的,就有 适用于图像领域的。Google在2017年发表的一篇论文《Attention is All You Need》[3],试图摆脱CNN和RNN,你都上能用纯粹的Attention来实现Encoder-Decoder模型的任务,如何让取得了非常不错的效果。

图1 实现文本分类的循环神经网络示意图



文本分类



不管是使用传统的CRF算法还是使用循环神经网络来训练分词模型,亲戚朋友都需用先对训练数据进行标注。以4-tag字标注法为例,假设亲戚朋友有一段训练样本“北京市是中国的首都”,标注后的数据形式如下:

文本分类目前是自然语言处理(Natural LanguageProcessing,NLP)领域中最常见的问题报告 之一,类似于于做垃圾邮件检测、用户评论的感情说说的句子极性分析等。序列到类别的模式适用于文本分类问题报告 ,在文本分类问题报告 中,亲戚朋友输入到循环神经网络中的是一段文本,长度为n,神经网络的输出要能1个多多多 类别,长度为1。



    ●  文本分类    ●  序列标注    ●  机器翻译 ●  Attention-based model ●  RNN系列总结 ●  循环神经网络的应用

目前循环神经网络可能性被应用在了而是 领域,诸如语音识别(ASR)、语音合成(TTS)、聊天机器人、机器翻译等,近两年在自然语言处理的分词、词性标注等工作的研究中,而是 乏循环神经网络的身影。在本节中,亲戚朋友将介绍好多个较为典型的循环神经网络的应用,以此来了解循环神经网络是如何与亲戚朋友实际的应用场景所结合。

图8 Attention计算过程示意图

原文发布时间为:2018-11-26

“异步的序列到序列模式”的循环神经网络而是 亲戚朋友常说的Sequenceto Sequence model,又称为编码器-解码器(Encoder-Decoder)模型。固然称之为编码器-解码器模型,是可能性亲戚朋友将网络分成了两主次:编码器主次和解码器主次。如图4所示,编码器模型对输入的序列数据进行编码,得到后面 向量:



分词是自然语言处理中最基础也是最重要的1个多多多 环节,随着淬硬层 学习的发展,不少人始于了了尝试将淬硬层 学习应用到你你这俩领域,近两年里也取得了一定的成果。嘴笨 目前在分词、词性标注等任务中普遍使用的还是CRF、HMM等传统算法,如何让淬硬层 学习所取得的成果可能性被太大的人所认可,如何让不断地在自然语言处理的任务中崭露头角。



根据应用场景和需求的不同,亲戚朋友大致都上能将循环神经网络的任务分为两类:一类是序列到类别的模式,另一类是序列到序列的模式。其中,序列到序列的问题报告 又都上能进一步的划分为:“同步的序列到序列的模式”和“异步的序列到序列的模式”。接下来亲戚朋友会通过1个多多多 案例来进一步的了解你这俩种模式。

到这里,本章内容就完全始于了了。在你你这俩章里,亲戚朋友从最基础的简单形态的循环神经网络始于了了介绍,介绍了循环神经网络的计算过程以及如何使用TensorFlow去实现,又介绍了几种常用的循环神经网络形态;在第四节里,亲戚朋友介绍了循环神经网络所面临的问题报告 ——长期依赖问题报告 ,以及相应的处理最好的辦法 ;如果 ,亲戚朋友介绍了一种基于门控制的循环神经网络,这是目前在循环神经网络里使用较多的一种网络形态,你这俩种网络形态通过在前后1个多多多 网络情形之间增加线性的依赖关系,在一定程度上处理了梯度消失和梯度爆炸的问题报告 ;在第六节里,亲戚朋友介绍了循环神经网络的有些应用,并借此介绍了应用在不同任务中时网络形态的不同;最后,亲戚朋友介绍了对传统Encoder-Decoder模型的一种改进:Attention-based model。希望进一步了解循环神经网络相关应用的读者,推荐参考本书GitHub项目中埋点的相关资源。

目录:

图3 “同步的序列到序列模式”的循环神经网络示意图



更具体的Sequence to Sequence模型,都上能阅读Bengio等人在2014年发表的论文[1],以及Google在2014年的一篇论文[2]。

亲戚朋友以第1个多多多 编码向量的计算为例,首先用解码器的初始情形分别和编码器中每个时间步的输出计算类似于于度,得到输出,再通过1个多多多 softmax运算将转加进去概率值,最后由公式计算得到编码向量。接下来再利用解码器中神经网络的输出计算编码向量,以此类推,直到解码过程始于了。

本文来自云栖社区合作最好的辦法 最好的辦法 伙伴“磐创AI”,了解相关信息都上能关注“磐创AI”。

图5 一种不同的解码器模型示意图

图4 编码器主次示意图

序列标注

用于机器翻译的循环神经网络是一种“异步的序列到序列模式”的网络形态,同样是序列到序列的模式,与适用于序列标注的“同步的序列到序列模式”的不同之处于于,“异步的序列到序列模式”的循环神经网络对于输入和输出的序列长度没有限制。在序列标注问题报告 中,每1个多多多 “时间步”就有 1个多多多 输入和1个多多多 对应的输出,如何让输入和输出的序列长度相同,然而在机器翻译问题报告 中,亲戚朋友输入的序列长度和输出的序列长度不一定等长。

假设亲戚朋友要实现1个多多多 外卖行业的用户评论的感情说说的句子极性分类,如图1所示,亲戚朋友输入到神经网络中的是一段用户对外卖商品的评论。