复习一下RNN吧

经典的RNN结构:

由图可得,一输入一输出,因此成为输入序列和输出序列具有相同的时间长度

2)我们为其加上时序性

时间信息作为一个坐标信息加入

则展开,我们可得

RNN中的“权值共享”:任意时刻 t\in \{1,2,...,T\} ,所有的权值(包括 W_{ih} , b_{ih} , W_{hh} , b_{hh} , W_{ho} , b_{ho} )都相等

3)Sequence to Sequence模型

本质:是一个encoder和decoder的过程,不断地将前一个时刻 t-1 的输出作为后一个时刻 t 的输入

encode端:编码器encoder把所有的输入序列都编码成一个统一的语义向量context(不断地将前一个时刻 t-1 的输出作为后一个时刻 t 的输入)

例如:

与RNN的区别:Seq2Seq结构不再要求输入和输出序列有相同的时间长度!

decode端:

由上图可得,输入经过RNN,最后经过sigmoid 或 argmax获得其当前标签(index),经过int2str后将其输出的字符作为输入送入第二时间序列(下一状态)

4)Attention注意力机制

解决问题:1)当输入信息过大时(句子过长),一个context存储不下,会造成精度下降

                   2)每次只用到编码器最后一个隐藏层状态,信息利用率很低

1)encoder把所有的输入序列都编码成一个统一的语义向量context,其中encoder的隐藏层状态 h_t 代表对不同时刻输入 x_t 的编码结果,会使得context装不下,因此这里引用了多次分别输入(类似于多特征图融合FPN)

细节如下:

     

                        祝好~!

猜你喜欢

转载自blog.csdn.net/weixin_38740463/article/details/89045996