本文结构:

  • 什么是 seq2seq?
  • Encoder–Decoder 结构?
  • seq2seq 结构?

什么是 seq2seq?

seq2seq 是一个 Encoder–Decoder 结构的网络,它的输入是一个序列,输出也是一个序列, Encoder 中将一个可变长度的信号序列变为固定长度的向量表达,Decoder 将这个固定长度的向量变成可变长度的目标的信号序列。

这个结构最重要的地方在于输入序列和输出序列的长度是可变的,可以用于翻译,聊天机器人,句法分析,文本摘要等。

下面是写过的 seq2seq 的应用:

RNN与机器翻译
http://www.jianshu.com/p/23b46605857e
如何自动生成文本摘要
http://www.jianshu.com/p/abc7e13abc21
自己动手写个聊天机器人吧
http://www.jianshu.com/p/d0f4a751012b


Encoder–Decoder 结构?

Cho 在 2014 年提出了 Encoder–Decoder 结构,即由两个 RNN 组成,
https://arxiv.org/pdf/1406.1078.pdf

(其中的 RNNCell 可以用 RNN ,GRU,LSTM 等结构)

在每个时刻, Encoder 中输入一个字/词,隐藏层就会根据这个公式而改变,

到最后一个字/词 XT 时 ,隐藏层输出 c ,因为 RNN 的特点就是把前面每一步的输入信息都考虑进来了,所以 c 相当于把整个句子的信息都包含了,可以看成整个句子的一个语义表示。

Decoder 在 t 时刻的隐藏层状态 ht 由 ht−1,yt−1,c 决定:

yt 是由 ht,yt−1,c 决定:

f 和 g 都是激活函数,其中 g 函数一般是 softmax。

模型最终是要最大化下面这个对数似然条件概率:

其中每个 (xn, yn) 表示一对输入输出的序列, θ 为模型的参数。


seq2seq 结构?

Sutskever 在 2014 年也发表了论文:
https://arxiv.org/pdf/1409.3215.pdf

这个模型结构更简单,

因为 Decoder 在 t 时刻 yt 是由 ht,yt−1 决定,而没有 c:

论文中的 Encoder 和 Decoder 都用的 LSTM 结构,注意每句话的末尾要有 “” 标志。 Encoder 最后一个时刻的状态 [cXT,hXT] 就和第一篇论文中说的中间语义向量 c 一样,它将作为 Decoder 的初始状态,在 Decoder 中,每个时刻的输出会作为下一个时刻的输入,直到 Decoder 在某个时刻预测输出特殊符号 结束。

LSTM 的目的是估计条件概率 p(y1, … , yT′ |x1, … , xT ) ,
它先通过最后一个隐藏层获得输入序列 (x1, … , xT ) 的固定长度的向量表达 v,
然后用 LSTM-LM 公式计算输出序列 y1, … , yT′ 的概率,
在这个公式中,初始状态就是 v,

而且用了 4 层的 LSTM,而不是一层:论文中的实验结果表明深层的要比单层的效果好
下面是个 3 层的例子

计算公式如下:

为了便于理解,单层的表示如下:

并且对输入序列做了一个翻转,即不是把 a, b, c 映射到 α, β, γ, 而是把 c, b, a 映射到 α, β, γ, 这样的结果是相应的 a 会更接近 α,并且更利于 SGD 建立输入输出间的关系。


参考:
Learning Phrase Representations using RNN Encoder–Decoder
for Statistical Machine Translation
https://arxiv.org/pdf/1406.1078.pdf

Sequence to Sequence Learning
with Neural Networks
https://arxiv.org/pdf/1409.3215.pdf

Generating Sequences With
Recurrent Neural Networks
https://arxiv.org/pdf/1308.0850.pdf


推荐阅读
历史技术博文链接汇总
也许可以找到你想要的

        <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/markdown_views-ea0013b516.css"></div>

seq2seq基础理解 什么是 seq2seq?相关推荐

  1. Seq2Seq 粗浅理解

    Seq2Seq 粗浅理解 1.Seq2Seq的理论知识 1.1 简单介绍 1.2 Seq2Seq的结构 1.2.1 Seq2Seq的结构图 Encoder阶段(编码阶段) Decoder阶段(编码阶段 ...

  2. seq2seq模型_Pytorch学习记录-Seq2Seq模型对比

    Pytorch学习记录-torchtext和Pytorch的实例4 0. PyTorch Seq2Seq项目介绍 在完成基本的torchtext之后,找到了这个教程,<基于Pytorch和tor ...

  3. # vue.js 之 对vue.js基础理解

    vue.js 之 对vue.js基础理解 Vue构造器 1 . Vue.js是一个构造函数,编程中称之为构造器 2 . 每一个new Vue() 都是一个Vue构造函数的实例,这个过程叫做实例化 3 ...

  4. PCA与2DPCA及2D-2DPCA零基础理解(下)

    有小伙伴催了好久的这篇文章,我也是一拖再拖,PCA与2DPCA及2D-2DPCA零基础理解(上)已经发布了两年了,这几天由于疫情的原因,我专门找出时间来写这篇博文.以前感觉:怎样确定哪张人脸是属于哪个 ...

  5. 关于红外调制基础理解

    关于红外调制基础理解 (2011-10-31 20:01:33)转载▼ 标签: 杂谈 分类: 智能协议无线 要是自己做红外遥控器的话应该怎么做?自己定义一个协议或套用现成协议,但是不管什么协议,对于红 ...

  6. 【转】零基础理解卷积神经网络

    转自:https://zhuanlan.zhihu.com/p/32472241 本文译自A Beginner's Guide To Understanding Convolutional Neura ...

  7. NMT实战理解Attention、Seq2Seq

    最近在看NMT相关的研究,论文很多,每隔几个月就会有新的论文发出来,提出新的模型或者改进,作为小白,我觉得还是先搞懂一些基础理念,试着去实现最简单的模型,练练手. 本次以Pytorch的Transla ...

  8. Attention的本质:从Encoder-Decoder(Seq2Seq)理解

    目录 1. 前言 2. Encoder-Decoder(Seq2Seq)框架 3. Attention原理 3.1 Soft Attention介绍 4. Attention机制的本质思想 5. 总结 ...

  9. Js函数function基础理解

    正文:我们知道,在js中,函数实际上是一个对象,每个函数都是Function类型的实例,并且都与其他引用类型一样具有属性和方法.因此,函数名实际上是指向函数对象的指针,不与某个函数绑定.在常见的两种定 ...

最新文章

  1. 如果检测指定的Windows服务是否启动
  2. Docker私有仓库管理,删除本地仓库中的镜像
  3. qt中sendevent_Qt中postEvent和sendEvent函数
  4. 标准正态均一性检验 matlab程序,多种均一性检验方法比较研究
  5. VS中展开和折叠代码,还有其他快捷操作
  6. numpy中的方差、协方差、相关系数
  7. spring---FactoryBean与BeanFactory的区别
  8. 人脸识别“抓”错了人,他在监狱待了10天
  9. [DAX] SUM函数 | SUMX函数
  10. 小目标 | 4周学会用邮箱管理时间和工作流
  11. mysql cbrt函数_PostgreSQL学习笔记5之函数和操作符一
  12. JDBC---DAO层实现
  13. 四分之一A4纸大小的相纸打印该怎么选择
  14. 卟啉基聚酰亚胺(PPBPIs);交联型卟啉基聚酰亚胺的合成(PPBPI-CRs)齐岳生物供应卟啉产品
  15. cpu2017的526.blender编译出错原因
  16. 有史以来准备最充分的主网 - IOST Olympus v1.0正式上线
  17. 【学习笔记】面向对象和封装
  18. 用Python写一个量化交易策略
  19. 吉林大学软件学院——UMl作业3
  20. 递归问题之老鼠出迷宫

热门文章

  1. CSDN上大牛推荐书籍收集中
  2. Hibernate 3 深度解析
  3. 思科无线控器升级流程
  4. 利用计算机软件模拟光栅衍射实验,光栅衍射实验地MATLAB仿真.doc
  5. 内存管理-alloc_pages()函数分配内存
  6. PING某个IP地址网络中断提示报警
  7. Allan方差计算(python实现源码)
  8. win10系统修改启动项
  9. Java发送企业微信应用消息
  10. C4D也能做3D动画模型?看完建模大神的作品,我也跪了