RNN、LSTM、GRU、多层LSTM、Bi-LSTM

有些时候,主要考虑的是哪些输入,有时候,考虑的是(输入,输出)之间的模型;

一、RNN

RNN、LSTM、GRU、多层LSTM、Bi-LSTM_第1张图片

f,g 就是普通的激活函数,可能是tanh;

二、LSTM

RNN、LSTM、GRU、多层LSTM、Bi-LSTM_第2张图片

RNN、LSTM、GRU、多层LSTM、Bi-LSTM_第3张图片

  此时,Ht~f(Xt, Ct-1, ht-1)

在这里引入了一个新的变量Ct-1,它是什么意思呢?

这里的f如何确定呢

GRU

RNN、LSTM、GRU、多层LSTM、Bi-LSTM_第4张图片

Rt*H(t-1):可以重置之前的信息,在Rt=0的矩阵位置进行丢弃,Rt=1的位置进行保留;

三、多层RNN/LSTM

多层RNN中,第一层的输入是Ht1 ~ (Xt, Ht-1),后面层的输入不再是Xt,而是下一层的隐藏层输出。也就是说,第1个神经元输出后有两个去处,一个是传递到当前时刻的下一个RNN/LSTM神经元作为输入,另一个是传回给下一个时刻的自己,作为ht+1(1); Ct(1)则只传回给下一个时刻的自己,作为Ct+1(1)

RNN、LSTM、GRU、多层LSTM、Bi-LSTM_第5张图片

四、Bi-RNN(双向RNN)

因为时刻t的输出,不仅取决于之前时刻的信息,还取决于未来的时刻,所以有了双向RNN。比如要预测一句话中间丢失的一个单词,有时只看上文是不行的,需要查看上下文。双向RNN很简单,就是两个互相叠加的RNN。下图为双向RNN的结构图。

RNN、LSTM、GRU、多层LSTM、Bi-LSTM_第6张图片

每个时刻有一个输入,隐藏层有两个节点(向量),一个st进行正向计算,另一个St'进行反向计算,输出层由这两个值决定。

计算公式:

RNN、LSTM、GRU、多层LSTM、Bi-LSTM_第7张图片

从式子中可以看出,正向计算和反向计算的权重不共享,即一个单层的双向RNN一共有6个权重矩阵:正向UVW,反向U' V' W';三个权重向量:b b' c。

五、Bi-LSTM+attention机制 + 文本分类

attention,注意力机制,就想我们人类对某些重要信息更加看重一样,Attention可以对信息进行权重的分配,最后进行带权求和。因此Attention方法可解释性强,效果更好,候选也出现了各种形式的attention操作。

文本分类中的Attention结构

RNN、LSTM、GRU、多层LSTM、Bi-LSTM_第8张图片

Attention公式:RNN、LSTM、GRU、多层LSTM、Bi-LSTM_第9张图片

整体网络结构:

RNN、LSTM、GRU、多层LSTM、Bi-LSTM_第10张图片

假设一个RNN的time_step确定为L,则output:每个time_step都可以输出当前时序t的隐状态hi(t);但整体RNN的输出oi(t)是在最后一个time_step = L时获取,才是完整的最终结果;

我们可以将output根据分类任务或者回归任务的不同,分别进一步处理。比如,传给cross_entropy&softmax进行分类....... 或者获取每个time_step对应的隐状态hi(t),做seq2seq网络等。

 

 

你可能感兴趣的:(NLP)