其他分享
首页 > 其他分享> > Seq2Seq模型

Seq2Seq模型

作者:互联网

一、原理
对于常用的序列学习问题,一个简单的策略就是使用一个RNN网络将输入序列映射成一个确定大小的向量,然后再用另一个RNN网络将这个向量映射成目标的序列。尽管RNN本质上是有效的,但是由于长序列依赖的问题,RNN网络本身的结构导致难以训练。但是,LSTM网络适合解决该问题。
LSTM网络首先获得LSTM最后一个隐藏层输出的输入序列\((x_1,…,x_T)\)的确切维度的表示v来计算条件概率\(p(y_1,…,y_{T'}|x_1,…,x_T)\)。
在每个句子的最后,使用\(<EOS>\)特殊符号标记句子的结束。如下图所示,LSTM网络计算\(A,B,C,<EOS>\)的表示,然后使用这个表示去计算\(w,x,y,z,<EOS>\)的概率。不在语料库中的单词用标记。

首先,该模型主要用到两个不同的LSTM网络,一个用于输入序列,一个用于输出序列。其次,深层的LSTM效果更优,本论文中用到四层。第三,反转输入序列的词的顺序是很有价值的,比如,除了将序列a,b,c映射成序列α,β,γ,LSTM还应该要将序列c,b,a映射成α,β,γ,在此例中,α,β,γ的翻译是a,b,c。在这种方式下,a会接近α,b也会相当接近β,c也会接近γ。

训练细节:四层LSTM网络,每层有1000个cell和1000维的词嵌入。根据上个例子,如有两种语言a,b,c和α,β,γ,a,b,c作为由LSTM网络组成的encoder的输入,然后会输出一个最终的状态和一个输出值,将状态和输出值、α,β,γ作为由LSTM网络组成的decoder网络中,再将decoder输出的值和真实值α,β,γ作损失值和梯度下降并优化。进一步地,在训练好之后,用训练好的模型进行预测时则不需要使用到标签α,β,γ作为decoder的输入,而且此时才会用到起始符\(<GO>\)和终止符\(<EOS>\)。

参考文献:
https://arxiv.org/pdf/1409.3215.pdf

标签:输出,RNN,模型,网络,Seq2Seq,序列,LSTM,输入
来源: https://www.cnblogs.com/phonard/p/15448674.html