首先介绍一下 encoder-decoder 框架

中文叫做编码-解码器,它一个最抽象的模式可以用下图来展现出来:

这个框架模式可以看做是RNN的一个变种:N vs M,叫做Encoder-Decoder模型,也可以称之为Seq2Seq模型。

原始的N vs N RNN要求序列等长,然而我们遇到的大部分问题序列都是不等长的,如机器翻译中,源语言和目标语言的句子往往并没有相同的长度。

对于文本领域来讲,这个框架可以直观的这么去解释:它可以当做是一个句子(文章)通过处理生成另一个句子(文章)的通用框架。假设给定输入句子Source,想要通过encoder-decoder 生成目标句子Target。Source和Target可以是同一种语言,也可以是两种不同的语言,当然也就对应着不同的任务,比如机器翻译,比如文章生成摘要。

对于Source和Target 分别由各自的单词序列构成:

这个框架最为核心的一点就是中间语义向量C。

C的获得有多种方式,最为简单的就是把编码器的最后一层的隐层状态直接复制为C,或者可以对这个隐层状态进行一个变换再赋值为C,还可以对编码器部分(或者所有)隐层状态进行一个变换然后赋值为C。

对于解码器来说,处理中间语义向量C的方法也有不同方法。C可以直接被当做解码器首个分支的输入h0,也可以当做解码器所有分支的输入.

参考了这篇博文-写的很厉害-介绍而RNN和及其变种-简单命了-完全图解RNN、RNN变体、Seq2Seq、Attention机制

这个encoder-decoder模型最为常见的一个使用就是机器翻译的实际应用,我会写一篇关于此应用的,由此引出attention机制,并对这个机制进行一个详细解释

转载于:https://www.cnblogs.com/lzida9223/p/10536084.html

RNN-GRU-LSTM变体详解相关推荐

  1. ResNet残差网络及变体详解(符代码实现)

    本文通过分析深度网络模型的缺点引出ResNet残差网络,并介绍了几种变体,最后用代码实现ResNet18. 文章目录 前言 模型退化 残差结构 ResNet网络结构 Pre Activation Re ...

  2. 拉普拉斯矩阵(Laplacian matrix)及其变体详解

    拉普拉斯矩阵(Laplacian matrix) 也叫做导纳矩阵.基尔霍夫矩阵或离散拉普拉斯算子,是图论中用于表示图的一种重要矩阵. 定义 给定一个具有 n n n个顶点的简单图 G = ( V , ...

  3. [深度学习]理解RNN, GRU, LSTM 网络

    Recurrent Neural Networks(RNN) 人类并不是每时每刻都从一片空白的大脑开始他们的思考.在你阅读这篇文章时候,你都是基于自己已经拥有的对先前所见词的理解来推断当前词的真实含义 ...

  4. LSTM反向传播详解(完结篇)Part3/3代码实现

    1.前记   LSTM系列的前面两篇文章<LSTM反向传播详解Part1><LSTM反向传播详解Part2>将LSTM的理论梳理了一遍,本文主要着重用代码实现LSTM,其实也是 ...

  5. 【FFmpeg】结构体详解(二):AVStream、AVPacket、AVOutputFormat

    FFmpeg结构体详解 7.AVStream 8.AVPacket 9.AVOutputFormat 7.AVStream AVStream 是存储每一个视频/音频流信息的结构体. 重要的变量如下所示 ...

  6. 【FFmpeg】结构体详解(一):AVCodec、AVCodecContext、AVCodecParserContext、AVFrame、AVFormatContext 、AVIOContext

    FFmpeg结构体详解 一.FFmpeg中最关键的结构体之间的关系 1.解协议(http,rtsp,rtmp,mms) 2.解封装(flv,avi,rmvb,mp4) 3.解码(h264,mpeg2, ...

  7. 【直播】陈安东,但扬:CNN模型搭建、训练以及LSTM模型思路详解

    CNN模型搭建.训练以及LSTM模型思路详解 目前 Datawhale第24期组队学习 正在如火如荼的进行中.为了大家更好的学习"零基础入门语音识别(食物声音识别)"的课程设计者 ...

  8. Tomcat 8熵池阻塞变慢详解

    Tomcat 8熵池阻塞变慢详解 Tomcat 8启动很慢,且日志上无任何错误,在日志中查看到如下信息: Log4j:[2015-10-29 15:47:11] INFO ReadProperty:1 ...

  9. 计算机科学类专升本复习之“C语言结构体”详解(初稿)

    C语言结构体详解,C语言struct用法详解 前面所学到的"数组":它是一组具有"相同类型"的数据的集合. 但是在实际的编程中,我们往往还需要 一组" ...

最新文章

  1. 初等数论--整除--欧几里得算法/辗转相除法/更相减损术
  2. activiti配置实现用户多实例
  3. javaWeb服务详解(含源代码,测试通过,注释) ——Emp的Dao层
  4. java 线程 spring_java中spring里实现多线程
  5. 轻量级 HTTP(s) 代理 TinyProxy
  6. turtle模块还能这样玩?(一条条金龙鱼、雨景)
  7. 支付业务与技术架构学习总结(6)——对账系统的设计
  8. string 与stringbuilder的区别
  9. 如何实现一个php框架系列文章【2】实现类的自动加载
  10. Visual Studio 代码风格约束
  11. 尝试一下sql server2016里面的json功能
  12. Oracle 11g及PLSQL可视化界面的安装与使用(内附软件)
  13. 给“网吧”做管理系统
  14. android graphview使用与感受
  15. Word怎么显示目录
  16. 解决assets目录下的图片在布署到公网后不显示问题
  17. 天才小毒妃 第914章 无论如何要带她走
  18. unity 和安卓互相交互
  19. 元器件封装生成工具LP Wizard
  20. 8-四平方和定理(拉格朗日定理)

热门文章

  1. (五)流比特币价格的AI预测和异常检测
  2. (二)为AI模型训练准备影像
  3. ILSpy 5.0 发布,.NET 反编译工具
  4. VS Code 的 python 扩展发布,绘图功能更强大
  5. Django 报错 ‘polls‘ is not a registered namespace
  6. 普中科技51单片机_【笔记】普中科技-51单片机-静态数码管显示
  7. springcloud服务熔断和服务降级的自我理解
  8. java list 取两条_java list集合中有多条数据随机两条一组
  9. android9开发者模式 s8,Android 9.0或加速Galaxy S8/9电池消耗 谨慎更新
  10. 生日在java中怎么写_如何用java写代码:输入自己的生日,距离今天已过多少天,或者还有...