版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本课件包括演示文稿、示例、代码、题库、视频和声音等内容,北风网和讲师拥有完全知识产权;只限于善意学习者在本课程使用,不得在课程范围外向任何第三方散播。任何其他人或者机构不得盗版、复制、仿造其中的创意和内容,我们保留一切通过法律手段追究违反者的权利。 课程详情请咨询 微信公众号:北风教育 官方网址:,法律声明,上海育创网络科技有限公司,人工智能之深度学习,Seq2Seq 主讲人:aopu,课上课下“九字”真言 认真听,善摘录,勤思考 多温故,乐实践,再发散 四不原则 不懒散惰性,不迟到早退 不请假旷课,不拖延作业 一点注意事项 违反“四不原则”,不包就业和推荐就业,课程要求,严格是大爱,寄语,什
2、么是Seq2Seq Seq2Seq应用场景 Seq2Seq结构及原理 Seq2Seq案例 Seq2Seq实战,课程内容,Seq2Seq技术,全称Sequence to Sequence,它被提出于2014年,最早由两篇文章独立地阐述了它主要思想,分别是Google Brain团队的Sequence to Sequence Learning with Neural Networks和Yoshua Bengio团队的Learning Phrase Representation using RNN Encoder-Decoder for Statistical Machine Translation
3、。这两篇文章不谋而合地提出了相似的解决思路,Seq2Seq由此产生。,什么是什么是Seq2Seq网络,Encoder-Decoder 这种结构的,其中 Encoder 是一个RNNCell(RNN ,GRU,LSTM 等) 结构。每个 timestep, 我们向 Encoder 中输入一个字/词(一般是表示这个字/词的一个实数向量),直到我们输入这个句子的最后一个字/词 XT ,然后输出整个句子的语义向量 c(一般情况下, c=hXT , XT 是最后一个输入)。因为 RNN 的特点就是把前面每一步的输入信息都考虑进来了,所以理论上这个 c 就能够把整个句子的信息都包含了,我们可以把 c 当成
4、这个句子的一个语义表示,也就是一个句向量。在 Decoder 中,我们根据 Encoder 得到的句向量 c, 一步一步地把蕴含在其中的信息分析出来。,什么是什么是Seq2Seq网络,在 Encoder 中我们得到了一个涵盖了整个句子信息的实数向量 c ,现在我们一步一步的从 c 中抽取信息。首先给 Decoder 输入一个启动信号 y0(如特殊符号), 然后Decoder 根据 h,y0,c ,就能够计算出 y1 的概率分布了,同理,根据 h,y1,c 可以计算y2 的概率分布以此类推直到预测到结束的特殊标志 ,才结束预测。 中间语义 c 不仅仅只作用于 decoder 的第 1 个时刻 ,
5、而是每个时刻都有 c 输入,什么是什么是Seq2Seq网络,中间语义c不仅仅只作用于 decoder 的第 1 个时刻 ,而是每个时刻都有c输入 (,在机器翻译:输入(hello) - 输出 (你好)。输入是1个英文单词,输出为2个汉字。在对话机器中:我们提(输入)一个问题,机器会自动生成(输出)回答。在以往的很多模型中,我们一般都说输入特征矩阵,每个样本对应矩阵中的某一行。就是说,无论是第一个样本还是最后一个样本,他们都有一样的特征维度。,什么是什么是Seq2Seq网络,在Seq2Seq模型中采用了这种Encoder-Decoder架构, Encoder 最后输出的中间语义只作用于 Deco
6、der 的第一个时刻,这样子模型理解起来其实要比Encoder-Decoder 更容易一些。,什么是什么是Seq2Seq网络,下图展示的是一个邮件对话的应用场景,图中的 Encoder 和 Decoder 都只展示了一层的普通的 LSTMCell。从上面的结构中,我们可以看到,整个模型结构还是非常简单的。 EncoderCell 最后一个时刻的状态 cXT,hXT 就是上面说的中间语义向量 c ,它将作为 DecoderCell 的初始状态。然后在 DecoderCell 中,每个时刻的输出将会作为下一个时刻的输入。以此类推,直到 DecoderCell 某个时刻预测输出特殊符号 结束。,什么
7、是什么是Seq2Seq网络,在原论文中,下面的Encoder 和 Decoder 都是 4 层的 LSTM,但是原理其实和 1 层 LSTM 是一样的。原文有个小技巧,将源句子顺序颠倒后再输入 Encoder 中,比如源句子为“A B C”,那么输入 Encoder 的顺序为 “C B A”,经过这样的处理后,取得了很大的提升,而且这样的处理使得模型能够很好地处理长句子。,什么是什么是Seq2Seq网络,机器翻译 自动对话机器人 文档摘要自动生成 图片描述自动生成,Seq2Seq应用场景,诗词生成 生成代码补全 故事风格改写 等等,Seq2Seq应用场景,总而言之,Seq2Seq应用场景,包括
8、了经典的机器翻译、文本摘要和对话生成等,也包括了一些非常有趣的应用,比如:根据公式图片生成 latex 代码,生成 commit message 等。自然语言生成(NLG)是一个非常有意思,也非常有前途的研究领域,简单地说,就是解决一个条件概率 p(output| context)的建模问题,即根据 context 来生成 output,这里的 context 可以非常零活多样,大家都是利用深度学习模型对这个条件概率进行建模,同时加上大量的训练数据和丰富的想象力,可以实现很多有趣的工作。Seq2Seq 是一个简单易用的框架,开源的实现也非常多,但并不意味着直接生搬硬套就可以了,需要具体问题具体
9、分析。此外,对于生成内容的控制,即 decoding 部分的研究也是一个非常有意思的方向,比如:如何控制生成文本的长度,控制生成文本的多样性,控制生成文本的信息量大小,控制生成文本的情感等等。,Seq2Seq应用场景总结,最基础的Seq2Seq模型包含了三个部分,即Encoder、Decoder以及连接两者的中间状态向量,Encoder通过学习输入,将其编码成一个固定大小的状态向量c,继而将c传给Decoder,Decoder再通过对状态向量c的学习来进行输出。下图中,图中每一个box代表了一个RNN单元,通常是LSTM或者GRU。,Seq2Seq结构及原理,Encoder-Decoder框架
10、可以这么直观地去理解:可以把它看作适合处理由一个句子(或篇章)生成另外一个句子(或篇章)的通用处理模型。对于句子对,我们的目标是给定输入句子X,期待通过Encoder-Decoder框架来生成目标句子Y。X和Y可以是同一种语言,也可以是两种不同的语言。而X和Y分别由各自的单词序列构成:,Seq2Seq结构及原理,Encoder顾名思义就是对输入句子X进行编码,将输入句子通过非线性变换转化为中间语义表示C: 对于解码器Decoder来说,其任务是根据句子X的中间语义表示C和之前已经生成的历史信息y1,y2.yi-1来生成i时刻要生成的单词yi:每个yi都依次这么产生,那么看起来就是整个系统根据输
11、入句子X生成了目标句子Y。,Seq2Seq结构及原理,举例:Encoder-Decoder自动生成对联,且已知上联,机器自动生成下联。 假设我们已经拿到了上联,例如:“风云三尺剑”,如何让机器自动生成下联? 很明显,这个问题直接可以由Encoder-Decoder框架来进行下联自动生成。这种场景是典型的Encoder-Decoder框架应用问题。我们所需要做的就是配置好Encoder-Decoder框架的具体模型,比如Encoder和Decoder都采用RNN模型来做,下图用Encoder-Decoder框架做对联下联自动生成的架构图。,Seq2Seq举例理解结构及原理,只需要找到大量的对联数
12、据对这个模型进行训练,那么即可利用这个模型,输入上联,机器自动产生下联了。,Seq2Seq举例理解结构及原理,Encoder-Decoder框架加上Attention应该会显著提升产生下联的质量,原因还是因为它是要求严格对仗的,所以在生成下联某个字的时候,找到对应上联相应字作为生成的重点参考信息无疑是非常重要的。比如看到上联的“三”字,Attention模型使得下联产生对应字“一”的时候重点参考上联的“三”这个字,应该知道对应的应该是一个数字型汉字。加上Attention模型的示意如下图。,Seq2Seq举例理解结构及原理,加入Attention机制:,Seq2Seq举例理解结构及原理,目标函
13、数:,Seq2Seq理解结构及原理,Seq2Seq解决问题的主要思路是通过深度神经网络模型(常用的是LSTM)将一个作为输入的序列映射为一个作为输出的序列,这一过程由编码(encoder)输入与解码(decoder)输出两个环节组成。,什么是什么是Seq2Seq网络,上图中,使用x=x1,x2,xn代表输入的语句,y=y1, y2, , yn代表输出的语句,yt代表当前输出词。 即输出的yt不仅依赖之前的输出y1, y2, , yt1,还依赖输入语句x,模型再怎么变化都是在上文公式的约束之下。,Seq2Seq理解结构及原理,Seq2Seq理解结构及原理,Seq2Seq结构及原理,模式一:普通作
14、弊 basic encoder-decoder 编码时RNN每个时刻除了自己上一时刻的隐层状态编码外,还有当前时刻的输入字符,而解码时则没有这种输入。那么,一种比较直接的方式是把编码端得到的编码向量做为解码模型的每时刻输入特征。,Seq2Seq结构及原理,模式二: 学霸模式 encoder-decoder with feedback 编码端则是对课本的理解所整理的课堂笔记。解码端的隐层神经网络则是我们的大脑,而每一时刻的输出则是考试时要写在卷子上的答案。在上面最简单的解码模型中,可以考虑成是考试时一边写答案一边翻看课堂笔记。如果这是一般作弊学生的做法,学霸则不需要翻书,他们有一个强大的大脑神经
15、网络,可以记住自己的课堂笔记。解码时只需要回顾一下自己前面写过什么,然后依次认真的把答案写在答卷上,就是下面这种模型,Seq2Seq结构及原理,模式三:学弱作弊 encoder-decoder with peek 很多学弱,他们不只需要作弊,而且翻看笔记的时候还需要回顾自己上一时刻写在答卷上的答案。,Seq2Seq结构及原理,模式四:学渣作弊 encoder-decoder with attention 然而学渣渣也是存在的,他们不只需要作弊,不只需要回顾自己上一时刻卸载答卷上的答案,还需要老师在课本上画出重点才能整理出自己的课题笔记(这就是一种注意力机制Attention,记笔记的时候一定要
16、根据考题画出重点啊!),Seq2Seq结构及原理,结果对比,Seq2Seq with attention,LSTM模型虽然具有记忆性,但是当Encoder阶段输入序列过长时,解码阶段的LSTM也无法很好地针对最早的输入序列解码。基于此,Attention注意力分配的机制被提出,就是为了解决这个问题。在Decoder阶段每一步解码,都能够有一个输入,对输入序列所有隐藏层的信息h_1,h_2,h_Tx进行加权求和。打个比方就是每次在预测下一个词时都会把所有输入序列的隐藏层信息都看一遍,决定预测当前词时和输入序列的那些词最相关。 Attention机制代表了在解码Decoder阶段,每次都会输入一个
17、Context上下文的向量Ci, 隐藏层的新状态Si根据上一步的状态Si-1, Yi, Ci 三者的一个非线性函数得出。 Context向量在解码的每一步都会重新计算,根据一个MLP模型计算出输出序列i对每个输入序列j的隐含层的对应权重aij,并对所有隐含层加权平均。文章中说的Alignment Model就是代表这种把输入序列位置j和输出序列位置i建立关系的模型。,Seq2Seq with attention,Context向量在解码的每一步都会重新计算,根据一个MLP模型计算出输出序列i对每个输入序列j的隐含层的对应权重aij,并对所有隐含层加权平均。文章中说的Alignment Mode
18、l就是代表这种把输入序列位置j和输出序列位置i建立关系的模型。 aij 即可以理解为encoder编码输出序列的第i步,对输入序列第j步分配的注意力权重。 eij为一个简单的MLP模型激活的输出;aij的计算是对eij做softmax归一化后的结果。,eij为一个简单的MLP模型激活的输出;aij的计算是对eij做softmax归一化后的结果。,Seq2Seq with attention,eij为一个简单的MLP模型激活的输出;aij的计算是对eij做softmax归一化后的结果。,Seq2Seq with attention decoder,eij为一个简单的MLP模型激活的输出;aij的
19、计算是对eij做softmax归一化后的结果。,Seq2Seq with attention decoder,eij为一个简单的MLP模型激活的输出;aij的计算是对eij做softmax归一化后的结果。,Seq2Seq with attention decoder,eij为一个简单的MLP模型激活的输出;aij的计算是对eij做softmax归一化后的结果。,Seq2Seq with attention decoder,eij为一个简单的MLP模型激活的输出;aij的计算是对eij做softmax归一化后的结果。,attention Decoder的流程图如上图所示,与参考论文中不同的一点是
20、,我把hidden_state之后Dense_layer之前的maxout layer去掉了,因为看到google Seq2Seq的实现中也没有maxout layer,与朋友讨论的结果是可能maxout layer会增加更多的计算量。还有就是最后的softmax直接变成argmax了。 上图中拿掉右边方框内的的Attention机制就是一个基本的decoder,基本的decoder与encoder的交互仅在decoder初始的hidden_state上,如将encoder中反向RNN最终的输出状态h0作为decoder的初始state s0。这样对于decoder而言,只能看到源信息的一个总
21、体概要,对于翻译任务,从人的角度来思考, 我们知道这段话的大意, 仅靠大意来进行翻译, 所以我们只能意译。为了翻译的更精准, 我们在知道大意的前提下进行翻译, 还会逐词去匹配, 比如“今天天气真好”翻译完今天之后, 注意力就会在“天气”上,考虑应该将“天气”翻译成什么词。 Attention 机制也就是注意力机制,也称为对齐模型(alignment model), 在翻译阶段, 准备生成每个新的词的时候, 这个机制可以将注意力集中在输入的某个或某几个词上,重点关注这几个词, 可以想象成是将他们与待生成的新词进行对齐,使得翻译更精准。,Seq2Seq with attention decoder
22、,eij为一个简单的MLP模型激活的输出;aij的计算是对eij做softmax归一化后的结果。,Seq2Seq with attention decoder,eij为一个简单的MLP模型激活的输出;aij的计算是对eij做softmax归一化后的结果。,Seq2Seq with attention decoder,eij为一个简单的MLP模型激活的输出;aij的计算是对eij做softmax归一化后的结果。,Seq2Seq with attention decoder,eij为一个简单的MLP模型激活的输出;aij的计算是对eij做softmax归一化后的结果。,Seq2Seq+attent
23、ion手写公式,eij为一个简单的MLP模型激活的输出;aij的计算是对eij做softmax归一化后的结果。,Seq2Seq+attention手写公式,eij为一个简单的MLP模型激活的输出;aij的计算是对eij做softmax归一化后的结果。,Seq2Seq+attention手写公式,eij为一个简单的MLP模型激活的输出;aij的计算是对eij做softmax归一化后的结果。,Seq2Seq+attention手写公式,eij为一个简单的MLP模型激活的输出;aij的计算是对eij做softmax归一化后的结果。,Seq2Seq+attention手写公式,eij为一个简单的MLP
24、模型激活的输出;aij的计算是对eij做softmax归一化后的结果。,观察所有输入的东西,可见是 所有encoder的输出 和 decoder的每个state 一起作为输入,搅和在一起,然后target/output就是一个类似score的东西。,Seq2Seq+attention代码,eij为一个简单的MLP模型激活的输出;aij的计算是对eij做softmax归一化后的结果。,def attention(self, prev_state, enc_outputs): #param prev_state: the decoder hidden state at time i-1 #para
25、m enc_outputs: the encoder outputs, a length T list. e_i = c_i = for output in enc_outputs: atten_hidden = tf.tanh(tf.add(tf.matmul(prev_state, self.attention_W), tf.matmul(output, self.attention_U) e_i_j = tf.matmul(atten_hidden, self.attention_V) e_i.append(e_i_j) e_i = tf.concat(e_i, axis=1) alph
26、a_i = tf.nn.softmax(e_i) alpha_i = tf.split(alpha_i, self.num_steps, 1) for alpha_i_j, output in zip(alpha_i, enc_outputs): c_i_j = tf.multiply(alpha_i_j, output) c_i.append(c_i_j) c_i = tf.reshape(tf.concat(c_i, axis=1), -1, self.num_steps, self.hidden_dim * 2) c_i = tf.reduce_sum(c_i, 1) return c_i,Seq2Seq+attention代码,eij为一个简单的MLP模型激活的输出;aij的计算是对eij做softmax归一化后的结果。,#对应的decode def decode(self, cell, init_state, encoder_outputs, loop_function=None): outputs = prev = None state = init_state for i, inp in enumerate(self.decoder_inputs_emb):#decoder_in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保安党员积分制管理制度(3篇)
- 全民临帖活动策划方案(3篇)
- 古代关于守信的管理制度(3篇)
- 商场石材活动策划方案(3篇)
- 圆形吊篮施工方案(3篇)
- 夏日舞会活动方案策划(3篇)
- 2026年哈尔滨传媒职业学院单招职业适应性考试题库附答案详解(培优)
- 2026年四川工程职业技术学院单招职业技能考试题库及答案详解一套
- 2026年嘉兴南湖学院单招职业倾向性考试题库及完整答案详解
- 丝袜代言活动方案策划(3篇)
- 大小微模型赋能先进制造:实践与思考
- 2026年春季学期学校少先队工作计划及分批入队实施方案
- 2026年春季外研版四年级下册英语全册教案【表格式】(单元整体教学设计)
- 2026年工地复工复产方案(5篇)课件
- 《身心健康很重要》-2025-2026学年统编版(新教材)小学道德与法治二年级下册
- 2026年婚庆同性婚礼场地选择调研
- 尿潴留的护理研究进展
- 2025版《煤矿安全规程》学习辅导课件(地质防治水部分解读)
- 2025年国家电网公司招聘考试题目试卷含答案
- 《酒店会议服务与管理》全套教学课件
- 贵州教育出版社小学四年级信息技术下册教案 全册
评论
0/150
提交评论