老饼讲解-深度学习 机器学习 神经网络 深度学习
RNN入门教程

【应用】Seq2Seq问题与RNN-Encoder-Decoder模型

作者 : 老饼 发表日期 : 2024-04-05 19:00:26 更新日期 : 2024-04-13 05:03:06
本站原创文章,转载请说明来自《老饼讲解-深度学习》www.bbbdata.com



Encoder-Decoder是RNN解决seq2seq问题的常用方式

本文先介绍什么是seq2seq问题、什么是Encoder-Decoder模型

最后,介绍RNN如何通过Encoder-Decoder来解决seq2seq问题





     01. Seq2Seq问题与Encoder-Decoder模型    




本节介绍什么是seq2seq问题以及什么是Encoder-Decoder模型




      关于seq2seq和Encoder-Decoder    


什么是seq2seq
对于"输入一个不限长度的序列,输出另一个不限长度的序列"的模型,被称为seq2seq模型

  例如中英翻译模型,输入的中文是不定长的,而输出的英文也是不定长的
什么是Encoder-Decoder模型
Encoder-Decoder的思想就是把输入信息先转换为一组编码信息,再把编码信息转换为输出信息
 
Encoder-Decoder模型是解决Seq2Seq问题的一种常用方法,
先将N个输入转换为编码,需要注意的是,编码C需要承载所有输入的信息(包括序列信息)
然后再使用Decoder将编码信息C按顺序解码出M个输出,从而解决Seq2Seq问题

1. Encoder-Decoder的优点
 这样做的好处是,它相当于把seq2seq任务拆成了两部分,
前部分Encoder只负责把输入seq转换成固定长度的code,
后部分的Decoder只负责把code转换成输出的seq,使用整个任务简单化

2.Encoder-Decoder的缺点
 这样做的缺点是,中间部分的c是固定长度的,而c的意义是承载输入序列的信息,
如果输入序列的很长(信息很多),信息远远超过c的承载的时候,
那么信息的损失就会非常严重,这时候输出的效果就不佳







     02. RNN-Encoder-Decoder模型(NvM)    




本节介绍RNN-Encoder-Decoder模型,它是RNN解决seq2seq问题的常用方法




      RNN神经网络Encoder-Decoder-NvM结构    


RNN-Encoder-Decoder模型介绍
 RNN-NVM模型只需把RNN-Nv1模型作为Encoder,把RNN-1vM模型作为Dncoder,就可以解决NvM的seq2seq问题
 RNN-NVM的具体结构如下
 
 
这仅仅是RNN的一种NvM的结构形式,还有其它很多类似的变种,
 例如在Nv1中抛弃最后的输出层,把隐层直接作为1vM的输入,等等
在2014年GRU神经网络的一文《Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation》中
就使用了RNN-Encoder-Decoder模型,解决NvM的seq2seq问题











 End 








联系老饼