欢迎光临散文网 会员登陆 & 注册

62 序列到序列学习(seq2seq)【动手学深度学习v2】

2023-01-04 20:46 作者:_-JIA-_-  | 我要投稿

Seq2Seq(把一个句子运用到另一个句子)

最早是用来做机器翻译的。



是一个encoder和decoder的架构

encoder是给一个句子,比如Hello Word,然后要翻译成法语的句子

Hello word 之后给信息压到这个地方,然后就去输出一个法语的内容


Hello word 之后给信息压到这个地方,然后就去输出一个法语的内容


编码器是一个RNN,读取输入句子

可以是双向

解码器使用另外一个RNN来输出


双向可以做encoder,不能做decoder


把最后那个时刻的隐层状态传给解码器,这个状态包括了整个源码句子的信息,这个东西可以是双向的,双向的不能做语言模型,但双向可以做翻译,decoder要预测,encoder不需要

双向RNN用来encoder里面


encoder可以看到整个句子,所以可以正向看一下,反向看一下,双向RNN经常会用在Encoder里面


给定隐藏状态,之后给定一个输出

上一层的翻译做下一层的输出,得到整个原句子的输出

这样子对长度是可以变换的

所以我们可以看到不管原句子多长还是什么多长都可以


decoder一直往前走,走到看到句子的结束


变长到变长


隐藏状态过来,给原句子的隐层状态之后给一个输出开始翻译,把上一个刻的翻译是下一刻的输入


编码器解码器细节

最后一层的RNN最后那个时刻的状态输出了

句子的embedding的输出弄起来,encoder最后一层的东西回到下一层,跟输入放在一起


编码器不需要全连接层

编码器没有输出的RNN

编码器最后时间步的隐状态

用作解码器的最初隐状态


训练

训练时解码器使用目标句子作为输入


预测的句子

衡量生成序列的好坏的BLEU


所有的n-gram

n-gram

unigram一个词

bytegram两个词

unigram的精度考虑我们预测训练里面所有的unigram

每个是否再这里出现了

4个出现了,一个出现了5


p2-bytegram

AB,BB,BC,CD

3/4


P3-1/3


P4 -- 0


有了这些东西之后,算这些东西

预测的长度和真实的长度


BLEU是越大越好


长匹配有高权重


n越大给你的权重也会变的越大


两个句子的匹配


【总结】

seq2seq从一个句子生成另一个句子

编码器和解码器都是RNN

将编码器最后时间隐状态来初始解码器隐状态来完成信息传递

常用BLEU来衡量生成序列的好坏



62 序列到序列学习(seq2seq)【动手学深度学习v2】的评论 (共 条)

分享到微博请遵守国家法律