Seq2seq学习记录(三)

参考文章:【神经网络】学习笔记十四——Seq2Seq模型_昔我往矣wood的博客-CSDN博客

Seq2Seq 模型详解_seq2seq模型-CSDN博客

一、seq2seq模型

seq2seq即序列到序列模型,为Encoder-Deconder结构,是将输入序列通过特定方法生成另一个序列的模型,输入和输出的序列可以不等长,解决了RNN中要求序列等长的问题。

二、模型结构

2.1 RNN结构

RNN中,每个单元接受两个数入,当前单元的输入信息Xt和上一层的隐藏层状态H(t-1)。RNN之所以比较适合用来做文本等序列数据的原因,正是因为隐藏层具有记忆性,可以根据不同的输入和输出来调整RNN的结构。

2.2 seq2seq模型

该模型由编码器、语义向量C和解码器三部分构成,C负责连接编码器和解码器。

此时的编码器和解码器都对应一个RNN,通常是LSTM和GRU。

Eecoder:负责将输入的语句压缩成指定长度的向量

Decoder:将语义向量C解码并输出语句。

三、Seq2Seq训练原理

普通的RNN训练,就是学习概率分布,然后预测,比如输入前t个时刻数据,预测输出t时刻的数据。一般在输出层(即预测结果层使用softmax函数),得到概率分布,概率最大的就为预测结果。

解码Decoder阶段,每次都要参照中间向量C(Attention会用到),C并不是只作为初始状态参与。

LSTM虽然具有记忆性,但是当Encoder输入的序列过长时,解码阶段的LSTM无法对过早输入的序列解码,因此提出了Attention。每次进行预测时,都会把所有输入序列的隐藏层信息都看一遍,决定当前预测的词和输入序列的哪些词最相关,从而提高预测的质量。

四、Attention机制的计算原理

Attention机制表示在解码Decoder阶段,有三个输入,S(i-1)为解码上一阶段的隐藏状态,yi为上一阶段的预测输入,Ci为本次预测所对应的编码阶段上下文向量。Si为本次解码的新状态,由三者的非线性函数得出。

S(i-1)为解码阶段上一个状态的隐藏状态和预测输出值,C(i)是编码每个时刻输出的加权平均和。

aij是输入i对应的状态h(j)的权重大小。

eij求解公式如下:

五、数据进行处理和训练的流程

以人机对话为例

1-假设存在一个拥有10000个对答的训练样本,我们统计得到1000个互异的字和每个字出现的次数。

2-我们将得到的这1000个字按照数量按照从多到少排序,得到一个0-999的字典表。

3-我们根据字典表,对这些问答句进行one-hot编码。

4-由于编码难度较大且0多,我们用Enbedding进行降维得到特征矩阵。

5-将特征矩阵作为输入,预测得到数量为1000的分类器,哪个概率最大,预测所得就是那个字。

?:向量C一般作为解码器的初始状态h0,也可以每一步都参与运算。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值