【Seq2Seq】相关理论基础与RNN的相应变体
文章目录
- 1. 发展历程
- 2. 基础理解
- 2.1 基础的神经网络
- 2.2 RNN网络的相应变体
- 2.2.1 RNN变体 N V 1
- 2.2.2 RNN变体 (1VN)Decode的变体
- 2.2.3 RNN变体 (NVN)
- 2.2.4 RNN变体(NVM) Seq2Seq
- 3.Seq2Seq基础理论
- 3.1 Seq2Seq的相应组成部分
- 3.2 Encoder部分
- 3.3 Decoder解码器
- 3.3.1 解码器1
- 3.3.2 解码器2
- 3.4 第一篇论文简介
- 3.4.1 Encoder部分
- 3.4.2 Decoder部分
- 3.5 第二篇论文
- 4. Seq2Seq存在的问题
- 4.1 Encoder-Decoder局限性
- 4.2 Attention解决的问题
1. 发展历程
Seq2Seq在2014年顶会正式被提出,其中在同一年有两篇文章都用到了序列到序列,编码器解码器的方式实现机器翻译。其中GPU也在2014年被提出。
在2015年,针对Seq2Seq的一些问题,提出了注意力Attention机制,已经逐步开始爆发。
在2017年,谷歌发表了一篇Attention is All you need,将注意力机制推到了顶峰,其中也有学者用Self-Attention来替代cnn和Rnn
2. 基础理解
2.1 基础的神经网络
传统的单层神经网络,就是传入一个输出,对应的传出相应的输出。
相对于传统的神经网络,经典的RNN网络如下所示,就是每一个输入都是依赖于上一层次的隐藏层状态和当前的输入。
2.2 RNN网络的相应变体
2.2.1 RNN变体 N V 1
传统的NV1使用的还是比较频繁的,基本都用于对于文本的分类的任务,对于一个序列数据的多个的一个输入,最终得到一个输出的结果的一个数据。
首先有一个隐藏层的h0数据,相应的输入x1~x5,最终得到一个y。
当前层h5依赖于上一层的h5和当前的输入x5。将最终结果接上一个softmax,完成相应的分类任务。
2.2.2 RNN变体 (1VN)Decode的变体
1VN是表示一个输入,N个输出的结果,比如输入一个当前数据x,得到多个输出y1~y5。
这种的应用经常用于,看图说话等任务,比如输入一个图片数据x,输入就是一段的文字。
相应的1VN 变体还有一种情况,就是将输入,对应的输入到相应的隐藏层的状态当中,相对于上面的只利用一次的x的方式,当前的方式,可以更好的利用x的数据。
一个输入x输入多次。之前的Seq2Seq的作者就是基础这个基础上完成相应的任务。
2.2.3 RNN变体 (NVN)
理解好了上面的模型,当前的模型也类似,对于的相应的N个的输入结果,会输出相应的N个结果,适用于11对应的任务。
不是很适合于相应的不对称的任务。
2.2.4 RNN变体(NVM) Seq2Seq
Seq2Seq是相应的RNN的一种变体,编码器和解码器模型
可以将当前的模型理解为两个的RNN网络,decode和encode都是理解为不同的RNN网络。
Encode针对每个输入,进行计算,最终得到一个语义编码向量C。
将C输入到Decode中,得到不同的编码结果。
3.Seq2Seq基础理论
3.1 Seq2Seq的相应组成部分
Seq2seq模型可简单理解为由三部分组成: Encoder、 Decoder 和连接两者的State Vector
Seq2Seq有两种不同的变体,如下两个图所示,基本的两种Decode的变体,和上文说的两种的1VN的变体类似。
第一种的变体,就是将中间向量C作为decode解码器中的,每个隐藏层的输入,得到结果y。
比如,当前的中间结果y2的结果输入,包含y1以及encode得到的结果c,两者结果的评价拼接,输入。
第二种的相应的decode的变体,相应于第一种的变体,更简单点。将encoder得到的最终的中间向量c最为decoder的初始向量输入到rnn网络中,c仅仅参与第一层的网络,后面的网络并不参与计算。
3.2 Encoder部分
Seq2Seq主要用于对于机器翻译的任务,我们希望通过给定句子《X,Y》,通过模型完成将句子X翻译成句子Y的任务,其中X和y是由不同数量的单词组成。
首先,我们的Encoder会对输入的句子X进行相应的编码,经过相应的函数计算得到中间向量C
C向量的得到,可以通过多种的方法得到:
- 1.C = h5,将最终的结果h5 赋值给c
- 2.在h5的基础上,再添加一个函数q的运算得到C
- 3.将h1~h5都堆叠起来,添加一个函数,得到结果C
主要通过Encoder,将相应的数据都凝结成精华C,C包含了前面的所有向量的数据。
3.3 Decoder解码器
3.3.1 解码器1
得到中间语义向量C后,使用Decoder进行解码。
Decoder根据中间状态向量 C和已经生成的历史信息y1, y2…yi-1 去生成t时刻的单词yi
上图并为画出,相应在h‘1时刻其实还有一个起始的触发词,如EOS。还有终止词汇n
3.3.2 解码器2
如果将C当作Decoder的每-时刻输入,则是可以得到Seq2Seq模型的另- -种模型
3.4 第一篇论文简介
3.4.1 Encoder部分
该框架由这篇论文提出: Cho et al.(2014) Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation。
这篇论文主要是用GRU完成对于机器翻译任务,但是这里主要是用RNN来讲解
其中Encoder的中的softmax函数中的c是偏置,不要与语义向量C混淆。Encoder部分是典型的RNN网络。
通过Tanh得到最终的C
3.4.2 Decoder部分
decoder的ht,依赖于上一层的ht-1,y,C,还需要有偏置的计算b。
其中还需要有一个起始信号与终止信号,start与end信号。
3.5 第二篇论文
该框架由这篇论文提出: Sutskever et al.(2014) Sequence to Sequence Learning with NeuralNetworks。这个框架也是最常用的-种,结构图如下:
这篇论文主要用LSTM完成,为了简便,用RNN简介,
解码Decoder仅仅依赖于ht-1和yt-1,并没有多次依赖C
将C作为初始状态,但是不用于后面的时刻,用EOS用于起始与终止。其中只有h0 = C
4. Seq2Seq存在的问题
4.1 Encoder-Decoder局限性
从下图中可以看出Encoder和Decoder的唯- -联系只有语义编码C,即将整个输入序列的信息编码成-一个固定大小的状态向量再解码,相当于将信息”有损压缩”。
很明显这样做有两个缺点:
➢中间语义向量无法完全表达整个输入序列的信息。
➢随着输入信息长度的增加,由于向量长度固定,先前编码好的信息会被后来的信息覆盖,.
丢失很多信息。
从下图中可以明显可以发现在生成y1、y2、 y3时,语义编码C对它们所产生的贡献都是一样的。
例如翻译: Cat chase mouse,模型逐字生成:“猫” "捉”、 “老鼠”。在翻译mouse单词时,每一-个英语单词对"老鼠”的贡献都是相同的。
如果引入了Attention模型,那么mouse对于它的影响应该是最大的。
4.2 Attention解决的问题
Attention: 为了解决上面两个问题,引入了Attention模型。
A ttention模型的特点:
➢是Decoder不再将整个输入序列编码为固定长度的中间语义向量C,而是根据当前生成的新单词计算新的C(i),使得每个时刻输入不同的C ;
➢这样就解决了单词信息丢失的问题。引入了Attention的Encoder-Decoder模型如下图:
本次的分享就差不多结束了,自然语言处理的学习还真的还有很长的路呢。
【Seq2Seq】相关理论基础与RNN的相应变体相关推荐
- 分布式系统开发的一些相关理论基础——CAP、ACID、BASE
本文主要讲述分布式系统开发的一些相关理论基础. 一.ACID 事务的四个特征: 1.Atomic原子性 事务必须是一个原子的操作序列单元,事务中包含的各项操作在一次执行过程中,要么全部执行成功,要么全 ...
- 相关与因果的相爱相杀——新书《为什么:因果关系的新科学》解读(上)
<为什么:因果关系的新科学>(The Book of Why: The New Science of Cause and Effect)是今年3月刚出版的新书,作者是一位传奇人物,81岁的 ...
- 灰色模型相关---理论基础
大学专业课丢了好多年,慢慢一点回忆吧 [b]灰色模型理论以及灰色预测法[/b] 先看看啥叫灰色系统,需要一些控制论和模糊数学的知识基础 [color=blue](以下内容引自网络或者相关教材)[/co ...
- 用户画像相关理论基础 -- 看这一篇就够啦(总结篇)
用户画像基础 什么是用户画像 如何正确理解用户画像 用户画像如何生成 用户画像的标签维度(分类) 标签类型 -- 从标签主题的角度 标签类型 -- 从标签生成的角度 标签类型 -- 从数据提取的角度 ...
- 第六讲-循环神经网络(RNN)及变体LSTM
1.卷积神经网络(CNN)与循环神经网络(RNN)的简单对比: CNN:借助卷积核(kernel)提取特征后,送入后续网络(如全连接网络Dense)进行分类.目标检测等操作.CNN借助卷积核从空间维度 ...
- SIM卡的操作系统cos
随着 Ic卡从简单的同步卡发展到异步卡,从简单的 EPROM卡发展到内带微处理器的智能卡(又称CPU卡),对IC卡的各种要求越来越高.而卡本身所需要的各种管理工作也越来越复杂,因此就迫切地需要有一种工 ...
- 智能卡操作系统COS概述(可以顺带了解下)
转自:https://blog.csdn.net/tongdh/article/details/17301459 随着IC卡从简单的同步卡发展到异步卡,从简单的EPROM卡发展到内带微处理器的智能卡( ...
- 智能卡操作系统COS概述
随着IC卡从简单的同步卡发展到异步卡,从简单的EPROM卡发展到内带微处理器的智能卡(又称CPU卡),对IC卡的各种要求越来越高.而卡本身所需要的各种管理工作也越来越复杂,因此就迫切地需要有一种工具来 ...
- 智能卡操作系统—COS概述
随着IC卡从简单的同步卡发展到异步卡,从简单的EPROM卡发展到内带微处理器的智能卡(又称CPU卡),对IC卡的各种要求越来越高.而卡本身所需要的各种管理工作也越来越复杂,因此就迫切地需要有一种工具来 ...
最新文章
- 架构设计复杂度的6个来源
- 关于WeX5的初步学习
- 面试:讲一讲Spring中的循环依赖
- ubuntu下安装lamp环境
- mysql为datetime类型的字段设置默认值current_timestamp,引发 Invalid default value for 错误...
- Python之深入解析Vulture如何一键找出项目中所有无效的代码
- 你应该学习的 20 个 Python 代码段
- IOS --- OC与Swift混编(转)
- 太全面了,RF接口自动化框架项目实战
- 我的世界服务器租服_我的世界中国版开服教程 网易国服怎么租赁服务器
- 树莓派简易快速安装OpenCV4
- 矩阵的分解:满秩分解和奇异值分解
- 计算机组成原理编码键盘实验报告,计算机组成原理实验报告–杨睿.doc
- 2的次幂表示(递归求解)
- 理解深度学习中的正则化
- 位深度怎么调_吉他大神是怎么炼成的?
- Mui框架的遇到的问题记录
- 戴尔服务器开启虚拟机,Windows 服务器2019中的受防护虚拟机增强功能
- 算法和设计模式(面经)
- 有哪些广告联盟值得推荐?