循环神经网络RNN和LSTM
如文本、语音、股票、时间序列等数据,当前数据内容与前面的数据有关是一种RNN特殊的类型,可以学习长期依赖信息。大部分与RNN模型相同,但它们用了不同的函数来计算隐状态。举例:当你想在网上购买生活用品时,一般都会查看一下其他已购买的用户评价。当你浏览评论时,大脑下意识记住重要的关键词,比如“好看”和“真酷”这样的词汇,而不太会关心“我”、“也”、“是”等字样。
目录
一.RNN介绍
1.什么是序列数据
如文本、语音、股票、时间序列等数据,当前数据内容与前面的数据有关
2.传统神经网络存在的问题
无法训练出具有顺序的数据。模型搭建时没有考虑数据上下之间的关系。
3.提出新的网络:RNN网络

RNN(Recurrent Neural Network)在处理序列输入时具有记忆性,可以保留之前输入的信息并继续作为后续输入的一部分进行计算。
①RNN的特点
引入了隐状态h(hidden state)的概念,隐状态h可以对序列类形的数据提取特征,接着再转换为输出
先对序列类形的数据提取特征

再转化为输出通过输出函数

②RNN注意事项
- RNN结构中输入是x1, x2, .....xn,输出为y1, y2, ...yn,也就是说,输入和输出序列必须要是等长的
- 在计算时,每一步使用的参数U、W、b都是一样的,也就是说每个步骤的参数都是共享的,这是RNN的重要特点
- 下文的LSTM和GRU中的权值则不共享
③RNN循环的由来
其通过共享权重矩阵U、Omega和V的机制,实现了循环。

④RNN网络的局限性
梯度会随着时间的推移不断下降减少,而当梯度值变得非常小时,就不会继续学习,所以存在梯度消失或梯度爆炸问题,导致其难以处理长序列,记忆性不足。
二.LSTM网络(长短时记忆网络)
1.LSTM介绍
是一种RNN特殊的类型,可以学习长期依赖信息。大部分与RNN模型相同,但它们用了不同的函数来计算隐状态。
举例:当你想在网上购买生活用品时,一般都会查看一下其他已购买的用户评价。当你浏览评论时,大脑下意识记住重要的关键词,比如“好看”和“真酷”这样的词汇,而不太会关心“我”、“也”、“是”等字样。如果朋友第二天问你用户评价都说了什么,你不可能会全部记住它,而是说出大脑里记得的主要观点,比如“下次肯定还会来买”,无关紧要的内容自然会从记忆中逐渐消失。
LSTM (长短时记忆网络)或 GRU(门控循环单元)就是如此,它们可以学习只保留相关信息来进行预测,并忘记不相关的数据。简单说,因记忆能力有限,记住重要的,忘记无关紧要的

2.LSTM核心组件
遗忘门(Forget Gate)、输入门(Input Gate)和输出门(Output Gate)。
①遗忘门
功能:决定应丢弃哪些关键词信息。
步骤:将前一个隐藏状态的信息和当前输入的信息同时传递到 sigmoid 函数中去,输出值介于 0 和 1 之间,越接近 0 意味着越应该丢弃,越接近 1 意味着越应该保留。

tanh 函数确保值保持在 -1~1 之间,从而调节了神经网络的输出,相当于给每一层做了一次归一化。
左上角的C是记忆仓库(Cell State)用来筛选并保留关键信息

②输入门
功能:用于更新细胞状态。
步骤:1、首先将前一层隐藏状态的信息和当前输入的信息传递到 sigmoid 函数中去。将值调整到 0~1 之间来决定要更新哪些信息。0 表示不重要,1 表示重要。 2、将前一层隐藏状态的信息和当前输入的信息传递到 tanh 函数中去,创造一个新的侯选值向量。最后将 sigmoid 的输出值与 tanh 的输出值相乘,sigmoid 的输出值将决定 tanh 的输出值中哪些信息是重要且需要保留下来的。
③输出门
功能:用来确定下一个隐藏状态的值。
步骤:1、将前一个隐藏状态和当前输入传递到 sigmoid 函数中,然后将新得到的细胞状态传递给 tanh 函数。 2、将 tanh 的输出与 sigmoid 的输出相乘,以确定隐藏状态应携带的信息。再将隐藏状态作为当前细胞的输出,把新的细胞状态和新的隐藏状态传递到下一个时间步长中去。

3.LSTM的优缺点
优点
-
解决长序列依赖问题LSTM 通过门控机制(输入门、遗忘门、输出门)和细胞状态(cell state),能够有效捕捉长序列中的长期依赖关系,避免了传统 RNN 在处理长文本、时间序列等数据时的信息丢失问题。
-
灵活处理可变长度序列适用于输入 / 输出长度不固定的场景(如机器翻译、语音识别),能自适应不同时序数据的长度变化。
-
缓解梯度问题细胞状态的线性更新机制和门控结构减少了梯度消失或爆炸的风险,使模型在训练长序列时更稳定。
-
广泛的适用性在自然语言处理(文本生成、情感分析)、时间序列预测(股票价格、天气预测)、语音识别等领域表现优异。
缺点
-
计算复杂度高门控机制涉及大量矩阵运算,训练和推理速度较慢,相比 CNN 或简单 RNN 需要更多计算资源。
-
参数规模大包含多个权重矩阵(输入门、遗忘门、输出门),容易过拟合,需要更多数据或正则化手段(如 dropout)。
-
对超参数敏感学习率、隐藏层维度、序列长度等参数对性能影响较大,调参难度较高。
-
难以捕捉极长期依赖虽然比传统 RNN 表现好,但在处理超长序列(如数千步的时序数据)时,仍可能丢失部分远期信息。
-
可解释性差
更多推荐
所有评论(0)