RNN知识点复习

循环神经网络

循环神经网络作为一种新型的网络结构,在处理序列数据问题上则不存在上面的两个缺点。在每一个时间步中,循环神经网络会传递一个激活值到下一个时间步中,用于下一时间步的计算。如下图所示:
在这里插入图片描述

循环神经网络的前向传播:

下图是循环神经网络结构图:
在这里插入图片描述在这里插入图片描述在这里插入图片描述

穿越时间反向传播

在这里插入图片描述在这里插入图片描述

GRU单元

门控循环单元(Gated Recurrent Unit, GRU)改变了RNN的隐藏层,使其能够更好地捕捉深层次连接,并改善了梯度消失的问题。
在这里插入图片描述
简化的GRU 单元:
γu表示更新门,趋近于1时,表示更新,趋近于0时,就不更新。相当于在传统RNN单元中,增加了一个γu,而γu也对应一组参数,专门用来学习 该不该更新 这样一个模型。。
在这里插入图片描述
完整的GRU 单元:
完整的GRU单元除了更新门(学习什么时候该更新)之外,还存在另外一个门(相关门,控制当前时刻与上个时刻的相关度,趋近于0,说明与上个时刻无关,趋于1,说明与上个时刻相关,相当于学习了一个判断当前时刻和上个时刻相关度的模型),以决定每个时间步的候选值,公式如下:
在这里插入图片描述

LSTM

GRU能够让我们在序列中学习到更深的联系,长短期记忆(long short-term memory, LSTM)对捕捉序列中更深层次的联系要比GRU更加有效。
在这里插入图片描述
其中,在实际使用时,几个门值不仅仅取决于a<t−1>和x< t >,还可能会取决于上一个记忆细胞的值c<t−1>,这也叫做偷窥孔连接。

LSTM结构:

在这里插入图片描述

GRU对比LSTM:

GRU:更简单,效果也不错。。
LSTM:有三个门,所以应用更广泛,实践中,LSTM应用的更多

双向RNN

双向RNN(bidirectional RNNs)模型能够让我们在序列的某处,不仅可以获取之前的信息,还可以获取未来的信息。
对于下图的单向RNN的例子中,无论我们的RNN单元是基本的RNN单元,还是GRU,或者LSTM单元,对于例子中第三个单词”Teddy”很难判断是否是人名,仅仅使用前面的两个单词是不够的,需要后面的信息来进行判断,但是单向RNN就无法实现获取未来的信息。
在这里插入图片描述
而双向RNN则可以解决单向RNN存在的弊端。在BRNN中,不仅有从左向右的前向连接层,还存在一个从右向左的反向连接层。

在这里插入图片描述

BRNN应用

NLP中,如机器翻译,通常是完整的句子,所以用双向RNN,效果更好;
但是语音识别,如果用双向RNN,就必须等一句话说完,才能开始处理,这样效率就会很低,所以语音识别领域一般会用更复杂的模型。。

深层RNNs

与深层的基本神经网络结构相似,深层RNNs模型具有多层的循环结构,但不同的是,在传统的神经网络中,我们可能会拥有很多层,几十层上百层,但是对与RNN来说,三层的网络结构就已经很多了,因为RNN存在时间的维度,所以其结构已经足够的庞大。如下图所示:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41332469/article/details/90488652