RNN学习笔记(一)

2021-02-25  本文已影响0人  南国_
1.RNN

 RNN是用来处理时序数据的一种网络结构,输入序列之间不再相互独立的。例如输入一句话:“今天天气不错”,每个元素之间都有依赖关系
 在RNN中,当前时刻的输出不仅包括当前时刻的输入还包括上一时刻的输出。也就是说,它的输出就依赖于当前的输入和记忆。
\color{red}{RNN的本质是:像人一样拥有记忆的能力。}

RNN的网络结构如下:

RNN网络结构.png

每个时刻的输出公式:

每个时刻的输出.png
\color{red}{总结:}
  递归神经网络之所以能拥有记忆能力,主要是通过W将以往的输入状态进行总结,并作为下次输入的辅助。可以这样理解隐状态:\color{green}{s=f(现有的输入 + 过去记忆总结)}
  RNN在时间维度上,算是深度模型。也可以增加隐层,成为和其他网络一样的结构深度上的深度模型。
2.RNN与HMM的区别
RNN与HMM的区别.png
3.语言模型
 通过一个单词,预测下一个单词,最终合成符合常理的一句话。 语音模型.png
4.RNN中的梯度问题

 RNN中使用的参数更新算法仍然是BPTT算法(BPTT:在时间维度上的BP算法),所以也会存在梯度消失和梯度爆炸的情况。

RNN中梯度问题的解决方案:

5.双向RNN

 Bidirectional RNN(双向RNN),假设当前时刻t的输出不仅和之前的序列有关,还与之后的序列有关,这种RNN结构成为双向RNN。例如:预测一个语句中缺失的词语,那么需要根据上下文进行预测。

双向RNN.png

h_{t} = \left [\overrightarrow{h_{t}}, \overleftarrow{h_{t}} \right ] \therefore y^{\left ( t \right )}=g\left ( w_{hw} h_{t} +c\right )

双向RNN应用实例效果.png
上一篇 下一篇

猜你喜欢

热点阅读