跟李沐学AI:序列到序列seq2seq

机器翻译

给定一个源语言的句子,自动翻译成目标语言

两个句子可以有不同的长度

例子:机器翻译

Seq2Seq

是一个encoder和decoder的架构。编码器是一个RNN,读取输入句子(可以是双向RNN或LSTM、GRU的模型)。随后将最后一个隐状态传给解码器,解码器使用另一个RNN进行输出。

 编码器是一个没有输出的RNN。编码器最后时间步的隐状态作为解码器的初始隐状态。

训练与推理

训练时解码器使用目标句子targets作为输入进行训练。推理时只能用上一时刻的输出作为输入。

衡量生成序列好坏的BLEU

 seq2seq需要一次性预测一个句子而不是预测一个词。因此不能使用困惑度proplexity作为衡量指标。

p_n是预测中所有n-gram的精度,即从uni-gram、bi-gram...n-gram的精度。例子:

标签序列label:ABCDEF和预测序列ABBCD。其中p_{uni-gram}=4/5。因为预测序列有5个uni-gram字符,而有4个字符在label中出现,故p_{uni-gram}=4/5。同理p_2=3/4p_3=1/3p_4=0

获取p_n后即可计算BLEU:

 预测长度len_{pred}不能过短,果断产生负数,产生惩罚。同时长匹配有高权重:p_n中的n越大p_n^{1/2^n}越大(p_n<1)。

总结

Seq2Seq从一个句子生成另外一个句子。

Seq2Seq的编码器和解码器都是RNN。

将编码器最后时间的hidden state作为解码器的初始hidden stae来完成信息传递。

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值