循环神经网络RNN及LSTM

细节:

01) LSTM遗忘门偏置项初始化为什么比较大

参考:https://zhuanlan.zhihu.com/p/113109644

 

一、循环神经网络RNN

RNN综述 https://juejin.im/entry/5b97e36cf265da0aa81be239

RNN中为什么要采用tanh而不是ReLu作为激活函数?  https://blog.csdn.net/behboyhiex/article/details/80819530 

LSTM该不该使用RELU? https://blog.csdn.net/xygl2009/article/details/78855795

从RNN的结构特征可以容易看出它最擅长解决与时间序列相关的问题。

循环神经网络每一个时刻都有一个输入xi,然后根据上一时刻的状态h(i-1)和基于当前输入xi计算的当前状态hi,并输出ot。
RNN的展开在模型训练有重要意义,从下图可以看到,RNN对长度为N的训练展开后,可以视为一个有N个中间层的前馈神经网络,这个前馈神经网络没有循环链接,因此可以直接使用反向传播算法训练,而不需要任何特别的优化算法。这样的训练方法称为"沿时间反向传播"(Back-Propagation Through Time),是训练RNN最常见的方法。

RNN展开图:

更清晰如图:

 

 

image

 

 

参考 https://cloud.tencent.com/developer/article/2150061,https://www.zhihu.com/question/41949741 ,GRU: https://zhuanlan.zhihu.com/p/32481747

图 4:使用单层全连接神经网络作为循环体的 RNN 结构图,图中黄色的 tanh 小方框表示一个使用 tanh 作为激活函数的全连接层。

https://juejin.im/entry/5b97e36cf265da0aa81be239

 图3为RNN 的前向传播计算过程:

二、LSTM

LSTM综述 https://www.jianshu.com/p/9dc9f41f0b29

LSTM单元示意图:

各个门的定义示意:

LSTM单元细节:

 

 

LSTM激活函数的选择

1.遗忘门的激活函数

遗忘门决定细胞状态中需要丢弃的信息。它使用Sigmoid激活函数,将输入值映射到0到1之间。输出值接近0表示遗忘信息,接近1表示保留信息。Sigmoid函数的平滑特性和输出范围非常适合门控机制。

2.输入门的激活函数

输入门负责决定哪些新信息需要添加到细胞状态中。它结合了Sigmoid函数和Tanh函数。Sigmoid函数用于选择性地通过信息,而Tanh函数生成新的候选记忆值,其输出范围为-1到1,有助于数据的归一化和梯度的稳定。

3.输出门的激活函数

输出门决定LSTM单元的输出内容。它使用Sigmoid函数来选择性地通过信息,并结合Tanh函数对细胞状态进行非线性变换,最终生成输出值。

 

综上:激活函数的选择原因:Sigmoid和Tanh函数是LSTM的主要激活函数,因为它们的饱和特性适合门控机制。Sigmoid函数的输出范围(0到1)符合门控的物理意义,而Tanh函数的输出范围(-1到1)与特征分布的零中心特性一致。此外,Tanh函数在输入接近0时具有较大的梯度,有助于模型更快收敛。

【注意在路由门控中,一般选择softmax函数,这样具有归一化作用,与实际物理意义一致】

 

三、GRU

image

 

四、随时间反向传播算法BPTT

https://www.cnblogs.com/wacc/p/5341670.html

 

五、循环神经网络激活函数

https://blog.csdn.net/xygl2009/article/details/78855795

https://blog.csdn.net/behboyhiex/article/details/80819530

posted @ 2018-08-16 17:10  chease  阅读(661)  评论(0)    收藏  举报