RNN 循环神经网络简介
RNN
RNN的主要用来处理序列数据。 在传统的神经网络模型中,是从输入层到隐含层再到输出层, 层与层之间是全连接的,每层之间的节点是无连接的。但是 这种普通的神经网络对于很多问题却无能无力。例如,你要 预测句子的下一个单词是什么,一般需要用到前面的单词, 因为一个句子中前后单词并不是独立的。
RNN之所以称为循环神经网路,即一个序列当前的输出与前 面的输出也有关。 具体的表现形式为网络会对前面的信息进行记忆并应用于当 前输出的计算中,即隐藏层之间的节点不再无连接而是有连 接的,并且隐藏层的输入不仅包括输入层的输出还包括上一 时刻隐藏层的输出。
RNN图示

LSTM 网络
Long Short Term 网络—— 一般就叫做 LSTM —— 是一种 RNN 特殊的类型,可以学习长期依赖信息。 在很多问题,LSTM 都取得相当巨大的成功,并得到 了广泛的使用,它是RNN事实上的标准。
LSTM 的窍门在于拥有一个固定权值为1的自连接,以及一个 线性激活函数,因此其局部偏导是中为1。 这样的话,误差就能在时间步中传递,而不会消失或爆炸。
LSTM 通过门对通过的信息进行控制:门是一种让信息选择 式通过的方法。 LSTM通过门可以让信息不通过、完全通过、通过一部份。
GRU 门限循环单元。 与LSTM相比,GRU结构更加简单,它有一个更新门,更新 门决定了内部状态与输入state状态的融合比例,简单的说, GRU与LSTM网络相比,建构简单,计算少,效果相当。
Keras中的实现
Keras支持RNN各种变体:
- layers.LSTM
- layers.GRU
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 YuKiFuHaNeの博客!






