理解循环神经网络(RNN)及其重要结构LSTM
循环神经网络(recurrent neural network,RNN)是专门用于处理序列数据的深度学习模型,其广泛应用在自然语言处理、语音识别、情感分析、机器翻译等领域。本博文原创,转载需注明出处。
RNN的网络结构
在循环神经网络中,一个非常重要的概率就是时刻,因为序列是按照时刻输入的。循环神经网络会对每个时刻的输入结合当前模型的状态给出一个输出。其标准的网络结构为:
其中x为输入序列向量,h为输出向量,s代表网络隐层的状态。输入与隐层之间通过参数矩阵u连接,隐层与输出层之间通过参数矩阵v连接,不同时刻的隐层之间通过参数矩阵w连接。
上图中,左边是RNN网络的经典结构,主体结构s的输入有输入层x,还有一个循环的边来提供当前的状态,同时s的状态会传递到下一步。右边是RNN网络展开的结构层次,可以看到循环神经网络在每一时刻会有一个输入Xt,当前状态也会有一个输出ht,但是循环神经网络当前的状态St是由上一时刻的状态St-1和当前输入Xt决定的。循环神经网络要求每一时刻都有一个输入,但不一定每一时刻都有输出。
RNN的前向传播
RNN网络有个特点就是参数共享,即对于每一时刻,参数U,V,W都没变化,使用的是同一组参数。
为了更加直观地理解RNN是如何计算的,下面展示一个循环神经网络的前向传播的具