个人学习使用,内容来源于网络,侵权删
1. 基本原理
传统网络的结构:
RNN的结构:
使用场景:
-
语音识别,要按顺序处理每一帧的声音信息,有些结果需要根据上下文进行识别;
-
自然语言处理,要依次读取各个单词,识别某段文字的语义
这些场景都有一个特点,就是都与时间序列有关,且输入的序列数据长度是不固定的。
这就需要有一种能力更强的模型:该模型具有一定的记忆能力,能够按时序依次处理任意长度的信息。这个模型就是循环神经网络(RNN)。
2. RNN模型展开
\(W\)不变,是每个时间点之间的权重矩阵,RNN之所以可以解决序列问题,是因为它可以记住每一时刻的信息,每一时刻的隐藏层不仅由该时刻的输入层决定,还由上一时刻的隐藏层决定,公式如下,其中\(O_t\)代表t时刻的输出, \(S_t\)代表t时刻的隐藏层的值:
\[O_t=g(V\cdot S_t) \]\[S_t=f(U\cdot X_t+W\cdot S_{t-1}) \]以上式子忽略了偏置项,\(f,g\)为激活函数。\(S_t\)的值不仅仅取决于\(X_t\)还取决于\(S_{t-1}\),在整个训练过程中,每一时刻所用的都是同样的\(W\)。
3. LSTM模型
LSTM是RNN的变种,RNN每一个处理单元如下,
而LSTM则是如下,
LSTM计算过程如下,
其中,
\[Z=tanh(W[x_t,h_{t-1}]) \]\[Z^i=\sigma(W_i[x_t,h_{t-1}]) \]\[Z^f=\sigma(W_f[x_t,h_{t-1}]) \]\[Z^o=\sigma(W_o[x_t,h_{t-1}]) \]以上同样忽略了偏置项。
总体过程如上,\(i_t,f_t,o_t\)分别对应\(Z^i,Z^f,Z^o\),如上图所示,LSTM提供门控机制,这三个参数为三个门通过\(\sigma\)激活函数映射到\(0\sim1\)之间,然后决定之前内容\(C_{t-1}\)与如今内容\(\widetilde C_t\)之间的比例,以此达到长期记忆的目的。
4. GRU模型
GRU输入输出的结构与普通的RNN相似,其中的内部思想与LSTM相似。
与LSTM相比,GRU内部少了一个”门控“,参数比LSTM少,但是却也能够达到与LSTM相当的功能。考虑到硬件的计算能力和时间成本,因而很多时候我们也就会选择更加”实用“的GRU。
标签:GRU,RNN,神经网络,LSTM,时刻,sigma From: https://www.cnblogs.com/cqut-zhoutao/p/18034449参考来源:
大话循环神经网络
史上最详细循环神经网络讲解
Understanding LSTM Networks
深度学习知识点全面总结
人人都能看懂的GRU