sequence to sequence模型是一类End-to-End的算法框架,也就是从序列到序列的转换模型框架,应用在机器翻译,自动应答等场景。

Seq2Seq一般是通过Encoder-Decoder(编码-解码)框架实现,Encoder和Decoder部分可以是任意的文字,语音,图像,视频数据,模型可以采用CNN、RNN、LSTM、GRU、BLSTM等等。所以基于Encoder-Decoder,我们可以设计出各种各样的应用算法。

与Seq2Seq框架相对的还有一个CTC,CTC主要是利用序列局部的信息,查找与序列相对的另外一个具有一对一对应关系(强相关,具有唯一性)的序列,比较适用于语音识别、OCR等场景。

而Seq2Seq更善于利用更长范围的序列全局的信息,并且综合序列上下文判断,推断出与序列相对应的另一种表述序列(非强相关,不具有唯一性),比较适用于机器翻译、文章主旨提取等场景。

从范围上来说,CTC是狭义的,Seq2Seq是广义的,从结果上来说,CTC是强制的一对一对应关系,Seq2Seq是具有弱约束的多对多对应关系。

经典的Encoder-Decoder框架:

左侧Encoder编码将输入序列转化成一个固定长度的向量编码,右侧Decoder解码将之前生成的固定向量再转化成输出序列,编解码部分可以采用CNN、RNN、LSTM、GRU、BLSTM等实现。

Encoder-Decoder模型可以预测任意的序列对应关系,但同时也有一个很大的问题就是从编码到解码的准确率很大程度上依赖于一个固定长度的语义向量c,输入序列到语义向量c的压缩过程中存在信息的丢失,并且在稍微长一点的序列上,前边的输入信息很容易被后边的输入信息覆盖,也就是说编码后的语义向量c已经存在偏差了,解码准确率自然会受到影响。其次在解码的时候,每个时刻的输出在解码过程中用到的上下文向量是相同的,没有做区分,也就是说预测结果中每一个词的的时候所使用的预测向量都是相同的, 这也会给解码带来问题。

为了解决这样的问题,在Seq2Seq模型加入了注意力机制(attention mechanism),在预测每个时刻的输出时用到的上下文是跟当前输出有关系的上下文,而不是统一只用相同的一个。这样在预测结果中的每个词汇的时候,每个语义向量c中的元素具有不同的权重,可以更有针对性的预测结果。

图示如下,增加了一个“注意力范围”,表示接下来输出词时候要重点关注输入序列中的哪些部分,然后根据关注的区域来产生下一个输出:

attention模型最大的不同在于Encoder将输入编码成一个向量的序列,而在解码的时候,每一步都会选择性的从向量序列中挑选一个子集进行输出预测,这样,在产生每一个输出的时候,都能找到当前输入对应的应该重点关注的序列信息,也就是说,每一个输出单词在计算的时候,参考的语义编码向量c都是不一样的,所以说它们的注意力焦点是不一样的。

转载于:https://www.cnblogs.com/mtcnn/p/9411685.html

sequence to sequence模型相关推荐

  1. Attentive Sequence to Sequence Networks

    转载自  Attentive Sequence to Sequence Networks Attentive Sequence to Sequence Networks 1.Encoder-Decod ...

  2. NLP经典论文:Sequence to Sequence、Encoder-Decoder 、GRU 笔记

    NLP经典论文:Sequence to Sequence.Encoder-Decoder.GRU 笔记 论文 介绍 特点 模型结构 整体结构 输入 输出 整体流程 流程维度 GRU 模型结构 GRU单 ...

  3. Towards Two-Dimensional Sequence to Sequence Model和Two-Way Neural Machine Translation两篇论文简单分析

    第一篇是:发布于2018年Towards Two-Dimensional Sequence to Sequence Model in NeuralMachine Translation 第二篇是:与第 ...

  4. 《Sequence to Sequence Learning with Neural Networks》阅读笔记

    Abstract DNNs 可用于各种复杂的学习任务并取得很好的效果,但是 DNNs 不能用于序列到序列的映射.这篇论文提出了一种端到端(end-to-end)的神经网络模型,来学习这种映射关系.作者 ...

  5. Sequence to Sequence Learning with Neural Networks论文翻译

    Sequence to Sequence Learningwith Neural Networks论文翻译 摘要 深度神经网络是在困难的学习任务中取得卓越性能的强大模型.尽管拥有大量的标记训练集,DN ...

  6. Coursera 吴恩达DeepLearning.AI 第五课 sequence model 序列模型 第二周 Operations on word vectors - v2

    只做了计分部分 Operations on word vectors Welcome to your first assignment of this week! Because word embed ...

  7. SeqTrack: Sequence to Sequence Learning for Visual Object Tracking

    摘要 在本文中,我们提出了一种新的序列到序列学习框架的视觉跟踪,称为SeqTrack.它将视觉跟踪转换为一个序列生成问题,它以自回归的方式预测对象边界盒.这与之前的Siamese跟踪器和transfo ...

  8. oracle复制sequence,oracle sequence语句重置方介绍

    在开发过程中,可能会用到oracle sequence语句,本文以oracle sequence语句如何重置进行介绍,需要的朋友可以参考下 Oracle重置sequence语句1 Sql代码 DECL ...

  9. Convolutional Sequence to Sequence Learning笔记

    摘要:序列到序列学习的流形方法映射输入序列到一个变长输出序列通过循环神经网络.我们引入一个完全依赖于卷积神经网络的架构.和循环模型相比,所有元素计算可以并行化更好利用GPU并且当非线性的两固定并不依赖 ...

  10. Sequence to Sequence – Video to Text 论文翻译

    序列到序列–视频到文本 摘要 现实世界的视频往往具有复杂的动态性:生成开放域视频描述的方法应该对时间结构敏感,并且允许可变长度的输入(帧序列)和输出(字序列).为了解决这个问题,我们提出了一种新的端到 ...

最新文章

  1. java程序无法启动_由于Java程序,Tomcat无法启动
  2. 【Paper】2021_Observer-Based Controllers for Incrementally Quadratic Nonlinear Systems With Disturbanc
  3. 一致性哈希算法与Java实现
  4. vue import组件的使用
  5. uniapp防抖操作
  6. 信息学奥赛一本通(1246:膨胀的木棍)
  7. ObjectDataSource与GridView配合使用经验总结系列二:分页
  8. qtplaintextedit如何删除内容_数据库中的数据如何进行批量修改
  9. python之路---15 装饰器
  10. 自动化测试unittest测试框架实例
  11. CityMaker SDK与三维GIS城市
  12. Oracle函数登录验证,Oracle密码验证函数与Create Profile
  13. SI4438系列模块调试
  14. android viewpager实现画廊效果,ViewPager实现2D、3D画廊效果
  15. 机械革命bios升级_¥1500买6年前神舟老战神,3内存+4硬盘升级潜力强,鲁大师15万!...
  16. 项目组织对ERP软件实施的影响
  17. 小米云服务器怎么更新文件,小米云服务使用手册
  18. 网上查的资料怎么打印?
  19. jQuery入门(一)--jQuery中的选择器
  20. 网络笔记(29) 容器网络:来去自由的日子,不买公寓去合租

热门文章

  1. javascript oo实现
  2. 关于大型网站技术演进的思考(十二)--网站静态化处理—缓存(4)
  3. Python教程大纲
  4. 1、Python基本对象类型----数字
  5. 使用new调用构造器创建对象并统一添加属性的代码运行过程
  6. 2015过年之前计划
  7. zTree保持展开单一路径之简易实现
  8. 遇到网络问题,要逐段排查
  9. xEasyApp之后端的介绍
  10. Python 之操作so动态库