一、RNN(循环神经网络)
在这里附上一个很好的笔记
零基础入门深度学习(5) - 循环神经网络
RNN(循环神经网络)的结构特点在于其循环单元的设计,这种设计允许网络在处理序列数据时保持对之前信息的记忆。下面详细解释RNN的结构:
- 循环单元:RNN的循环单元是网络的核心,它通常是一个简单的神经网络层,比如一个tanh层。这个单元的输入包括当前时刻的输入 ( x_t ) 和上一时刻的隐藏状态 ( h_{t-1} ),然后它输出当前时刻的隐藏状态 ( h_t )。
- 隐藏状态:隐藏状态 ( h_t ) 是一个向量,它捕获了到当前时刻为止的序列信息。这个状态被传递到下一个时刻,成为下一时刻循环单元的输入之一。
- 输出:每个时刻的隐藏状态可以用于生成输出 ( y_t ),这个输出可以是序列的一个预测,比如下一个词的概率分布。在实际应用中,输出层通常是一个全连接层,它将隐藏状态映射到输出空间。
- 参数共享:在RNN中,循环单元的参数在所有时刻是共享的。这意味着无论序列有多长,处理每个时刻的单元都是使用相同的权重。这种参数共享使得RNN能够扩展到不同长度的序列。
- 序列处理:RNN按顺序处理序列的每个元素。对于每个时刻 ( t ),网络的输入是当前元素的表示 ( x_t ),然后网络更新隐藏状态 ( h_t ) 并生成输出 ( y_t )。
- 灵活性:RNN的结构使其能够处理不同长度的输入序列,这使得它非常适合于语言模型、时间序列预测和其他需要处理可变长度数据的任务。
然而,传统的RNN存在一些问题,比如在训练过程中可能出现的梯度消失或梯度爆炸问题,这使得它们难以学习长距离依赖。为了解决这个问题,研究者们提出了更复杂的循环单元结构,如LSTM(长短时记忆网络)和GRU(门控循环单元),这些结构通过引入门控机制来更好地捕捉长距离依赖。
总的来说,RNN的结构使其成为处理序列数据的强大工具,而其变体如LSTM和GRU则进一步增强了其在复杂序列建模任务中的能力。
二、LSTM(长短期记忆递归神经网络)
这里递上两个我参考的文章和笔记
零基础入门深度学习(6) - 长短时记忆网络(LSTM)
LSTM - 长短期记忆递归神经网络 来自知乎作者:Mark
LSTM(长短时记忆网络,Long Short-Term Memory)是一种特殊的RNN(循环神经网络)架构,它能够学习长