-
seq2seq
2018-09-29 08:12:34 -
Seq2Seq
2018-09-06 14:04:00关于seq2seq,我看过这位博主的文章,并且也去实践过,当时还将他的文章整理成博客笔记。但是,当时对seq2seq的理解确实不是很到位,所以昨天看到这位博主时是很疑惑的。原本以为encoder端的输出直接接一个decoder就...关于seq2seq,我看过这位博主的文章,并且也去实践过,当时还将他的文章整理成博客笔记。但是,当时对seq2seq的理解确实不是很到位,所以昨天看到这位博主时是很疑惑的。原本以为encoder端的输出直接接一个decoder就行,但是这位博主还重复利用了encoder的输出向量,每次都与decoder的输出混合送入分类器预测。而一般的seq2seq只是在开始的阶段参与了计算,后续并没有。此篇博客,是我对作者的整理,仅供自己学习之用。
Seq2Seq简介
seq2seq,顾名思义就是序列对序列,一般应用与机器翻译,自动文摘,而本文正是用自动文摘举例(当时,机器翻译举例也简单)。
基本结构
假设输入为X=(a, b, c, d, e, f),需要的输出为Y=(P, Q, R, S, T),那么一个基本的seq2seq如下,encoder输出的向量参与每一次运算。图来自论文:
可能大家最常见到的是这个图,encoder输出的向量只参与一次运算的这种:代码实现
源码部分,我还没写,先保留这三个连接
[1].https://mp.weixin.qq.com/s/IjX8ZztFdvUuHNEKxYMILw
[2]. https://blog.keras.io/a-ten-minute-introduction-to-sequence-to-sequence-learning-in-keras.html
[3]. Sam Wiseman and Alexander M Rush. Sequence-to-sequence learning as beam-search optimization. In EMNLP, 2016. -
Seq2seq
2018-07-03 09:58:10eq2seq模型是以编码(Encode)和解码(Decode)为代表的架构方式,seq2seq模型是根据输入序列X来生成输出序列Y. 相比传统RNN,可以实现N2M的变长序列输出. 1. EncoderEncoder-Decoder结构先将输入数据编码成一个上...eq2seq模型是以编码(Encode)和解码(Decode)为代表的架构方式,seq2seq模型是根据输入序列X来生成输出序列Y. 相比传统RNN,可以实现N2M的变长序列输出.
1. Encoder
Encoder-Decoder结构先将输入数据编码成一个上下文向量c
向量c可以有不同的形式,如(1)(2)(3).
2. Decoder
- 将c当做之前的初始状态h0输入到Decoder中
- 将c当做每一步的输入
3. Else
Encoder-Decoder,其中Encoder 部分应该是非常容易理解的,就是一个RNNCell(RNN ,GRU,LSTM 等) 结构。 每个 timestep, 我们向 Encoder 中输入一个字/词(一般是表示这个字/词的一个实数向量),直到我们输入这个句子的最后一个字/词 XT ,然后输出整个句子的语义向量 c(一般情况下, c=hXT , XT 是最后一个输入)。
因为 RNN 的特点就是把前面每一步的输入信息都考虑进来了,所以理论上这个 c 就能够把整个句子的信息都包含了,我们可以把 c 当成这个句子的一个语义表示,也就是一个句向量。
在 Decoder 中,我们根据 Encoder 得到的句向量 c, 一步一步地把蕴含在其中的信息分析出来。
- 将c当做之前的初始状态h0输入到Decoder中
-
大话Seq2Seq模型
2020-09-12 15:34:08Seq2Seq模型虽然具有局限性,但是作为入门级别的Nlper,我们应该深入的了解他,如下图 这里encoder和decoder部分我们采用的是传统的RNN,这并不影响我们理解这个模型,你也可以把他看成LSTM或者GRU。 以我爱...Seq2Seq模型虽然具有局限性,但是作为入门级别的Nlper,我们应该深入的了解他,如下图
这里encoder和decoder部分我们采用的是传统的RNN,这并不影响我们理解这个模型,你也可以把他看成LSTM或者GRU。
以我爱计算机为例进行讲解,开始时我们把“我爱计算机”输入到encoder网络中,这里hi为隐藏状态,oi为RNN的输出,这里一定要注意的是RNN不能进行并行处理,虽然我们是一次性的把文字输入到网络中,但是在处理的时候RNN是把之前的一个文字处理完成之后再处理后面的文字。encoder中的RNN处理完成后会生成语义变量C,这里的C有多种,一种是RNN序列最后一个状态,也就是h5,其次也可以是o1,o2,o3,o4,o5的合并,这里最常用的是最后一个单元的状态作为整个句子的语义C,有了C之后就可以在decoder中进行解码操作,同样这里也采用RNN结构,与encoder不同的是这里每一个单元的输出都是下一个单元的部分输入,这里讲得很含蓄,但是事实是我们在decoder中的输入并不是i love computer,而是对应的<start> i love computer<end>,我们对应的预测值是i love computer<end>。这个C也有两种不同的用法,第一种是作为第一时刻的隐状态,也就是图中那样,还有就是作为每一时刻的输入,也就是C对于每一个单词的预测都要有贡献。
总结:
传统Seq2Seq模型有很大的不足,C绝大部分取决于后面的几个单词,会把最前面单词的信息给掩盖掉,而且对于decoder中的预测默认每一个单词贡献是相同的,但是事实却并非如此,因此有了后来的改进模型Seq2Seq+attention。
下节再讲Seq2Seq+attention,欢迎加Q互相讨论:1121974909
-
大白话Seq2Seq-原来Seq这么神奇
2020-04-28 16:48:56以大白话的形式讲解Seq2Seq,从你了解Seq2Seq的整体功能,爱上Seq2Seq. 资料: 视频: -
seq2seq模型和基于注意力机制的seq2seq模型
2020-03-21 13:05:56使用 seq2seq 模型和基于注意力机制的 seq2seq 模型(AttSeq2Seq)模型两种方法,实现 MNIST 数据集分类 -
seq2seq源码
2017-04-01 22:01:47seq2seq源码 -
seq2seq模型
2018-08-02 09:50:12基于深度学习的聊天机器人源代码模型,主要是基于seq2seq模型 -
Transformer与seq2seq
2021-01-06 18:07:55Transformer与seq2seq Transformer模型的架构与seq2seq模型相似,Transformer同样基于编码器-解码器架构,其区别主要在于以下三点: Transformer blocks:将seq2seq模型重的循环网络替换为了Transformer Blocks,该... -
经典Seq2Seq与注意力Seq2Seq模型结构详解
2021-02-10 08:58:11在本文中,我们将分析一个经典的序列对序列(Seq2Seq)模型的结构,并演示使用注意解码器的优点。 这两个概念将为理解本文提出的Transformer奠定基础,因为“注意就是您所需要的一切”。 本文内容: 什么是Seq2Seq模型... -
Seq2Seq模型
2021-01-07 14:33:28seq2seq模型详解 -
seq2seq:PyTorch中注意神经机器翻译的最小Seq2Seq模型-源码
2021-02-04 22:05:29迷你seq2seq 在PyTorch中注意神经机器翻译的最小Seq2Seq模型。 此实现重点在于以下功能: 用于其他项目的模块化结构 最少的代码可读性 充分利用批次和GPU。 此实现依赖于来最大程度地减少数据集管理和预处理部分... -
seq2seq基础理解 什么是 seq2seq?
2018-07-27 20:29:11本文结构: 什么是 seq2seq? Encoder–Decoder 结构?...seq2seq 是一个 Encoder–Decoder 结构的网络,它的输入是一个序列,输出也是一个序列, Encoder 中将一个可变长度的信号序列变为固定长度的向量表... -
seq2seq model
2020-06-12 21:44:14把Seq2Seq模型打包的库。安装: sudo pip install git+https://github.com/farizrahman4u/seq2seq.git Requirements: Keras Recurrent Shop 主要包括的模型: 1. A simple Seq2Seq model: import seq2seq from ... -
Seq2Seq详解
2020-10-14 14:34:30Build Dictionary10.1.1.2 第二步:Word Emebedding10.1.1.3 第三步:Training Seq2Seq Model10.1.1.4 第四步:Inference Using the Seq2Seq Model10.1.2 模型优缺点10.1.3 优化10.1.3.1 Encoder 变成 双向10.1.3 -
seq2seq 入门
2017-06-18 12:14:22什么是 seq2seq? Encoder–Decoder 结构? seq2seq 结构? 什么是 seq2seq?seq2seq 是一个 Encoder–Decoder 结构的网络,它的输入是一个序列,输出也是一个序列, Encoder 中将一个可变长度的信号序列变为固定... -
Seq2Seq学习
2020-03-23 19:24:10什么是Seq2Seq Seq2Seq是一种能够根据给定的序列,生成另一个序列的一种方法。 Seq2Seq主要基于RNN结构,有编码器和解码器两部分。 主要应用场景:机器翻译、对话系统、图片描述等。 ... -
seq2seq实例代码.rar
2020-07-25 18:19:24tensorflow2.0之seq2seq+attention模型和实例 -
seq2seq—pytorch实现
2018-11-30 10:54:28pytorch实现Sequence to Sequence Learning论文结构,seq2seq, -
pytorch-seq2seq-example:基于实用pytorch和更多额外功能的完全批处理的seq2seq示例-源码
2021-02-03 18:48:02pytorch-seq2seq-example:基于实用pytorch和更多额外功能的完全批处理的seq2seq示例
-
迷你 Vue 原理.png
-
机器学习可视化软件机器学习可视化软件
-
Amoeba 实现 MySQL 高可用、负载均衡和读写分离
-
mysql-5.7.32-winx64.zip
-
FFmpeg4.3系列之16:WebRTC之小白入门与视频聊天的实战
-
实现 MySQL 读写分离的利器 mysql-proxy
-
智慧校园理念及建设方案.pptx
-
MySQL 事务和锁
-
MySQL 高可用(DRBD + heartbeat)
-
redis-6.0.6-windows.zip
-
HP_M1130_M1210_MFP_Full_Solution-v20180815-10158769.rar
-
最新中文停用词.txt
-
opencv.zip
-
2019年-华启学院中级通信工程师综合能力真题及答案(完整版).pdf
-
常见的抽奖-根据指定概率抽奖(改进)
-
EaUS Video Editor(视频剪辑软件)官方中文版V1.6.8.53
-
智慧路灯杆云盒网关的功能和应用
-
PowerBI重要外部工具详解
-
计算机常见复试问题.pdf
-
Liunx 优化思路与实操步骤