从RNN讲到LSTM,再讲到Transformer

从RNN讲到Transformer

1990年,RNN雏形与BP网络结合出现,但是由于梯度消失和梯度爆炸的问题,训练比较困难。1997年,LSTM和双向RNN同年被提出来,解决了这个问题,并开始被广泛使用也出现了很多变体。pytorch tutorial的intermediate部分就是复现RNN相关网络,在pytorch框架上实现RNN网络比较简单,跟着教程走就行,但是有必要在这里也记录一下理论学习(理论学习资料:油管StatQuest with Josh Starmer的三个视频:RNNLSTMTransformer,当然也可以读李沐的动手学深度学习然后完成课后练习,这样可以更深入地巩固理论和实践知识,我有时间也要看一下并练习!!!)。

一、RNN(Recurrent Neural Network)

首先,在RNN被提出来之前,我们已经有很多神经网络可以很好地训练图像数据和语言数据等,对于这类数据输入时固定的,比如固定为一张图片,一句话等,如果我们还希望能在时序数据上也训练得比较好,能完美满足我的预测任务。

那为什么我要单独指出时序数据这种类型呢?
因为时间序列信息是连续输入的,不同于其他数据类型的固定状态。比如说,我要预测明天的天气,那我可以用过去五天的天气来进行预测,也可以用过去50天的天气来预测,时序数据预测模型必须满足我可以任意改历史数据数量,只要输出明天的预测值即可,只不过预测值可能更准确或者更模糊。另外,由于时间的连续性,我要预测明天的天气,就必须知道今天的天气,在今天的天气的基础上再继续预测明天的天气。诸如此类的差异性,让我们明显感觉到,我们需要一种新的网络针对性地完成时间序列数据集上的任务,现存的网络已经行不通了!

于是RNN诞生了
故名思意,循环神经网络中有循环结构,但是为了更好地理解,这里将循环结构铺平展开,展开后的网络结构如下:
循环神经网络结构
便于理解,这里就举一个比较简单的例子——用前天的数据预测明天的数据。对上述图像进行概括如下:

  1. 首先,用前天数据预测昨天的数据,放进网络计算 y 1 = w 1 ∗ x 1 + b 1 y_1=w_1*x_1+b_1 y1=w1x1+b1,这时如果我们的预测目标是昨天的预测值,则我们可以直接用 y 1 y_1 y1输出,再把它扔进一个网络 p r e d y e s
### LSTM 文献综述与深度学习研究进展 #### 关于 LSTM 的概述 长短时记忆网络(Long Short-Term Memory, LSTM)是一种特殊的递归神经网络(RNN),能够有效解决传统 RNN 中存在的梯度消失和梯度爆炸问题[^1]。LSTM 通过引入门控机制,允许其在网络中保留长期依赖关系的信息。 #### LSTM 在时间序列分类中的应用 在时间序列分类任务中,尤其是人类活动识别领域,LSTM 展现出了强大的性能。一项针对人类活动识别的研究指出,在构建深度学习模型的过程中,LSTM 被广泛应用于捕捉时间维度上的特征变化[^2]。具体而言,图像中的第6层和第7层被设计为 LSTM 层,用于处理复杂的动态数据模式。 #### 多模态学习中的 LSTM 应用 除了单一的时间序列分析外,LSTM 还常与其他技术结合,形成多模态学习框架的一部分。例如,在协同学习场景下,LSTM 可以作为核心组件之一,帮助实现跨模态的知识迁移和融合[^3]。这种能力使得 LSTM 不仅适用于单一时序数据分析,还能够在更广泛的多源异构数据环境中发挥作用。 #### 实际案例代码展示 以下是基于 Keras 构建的一个简单 LSTM 模型示例: ```python from tensorflow.keras.models import Sequential from tensorflow.keras.layers import LSTM, Dense def build_lstm_model(input_shape): model = Sequential() model.add(LSTM(50, activation='relu', input_shape=input_shape)) model.add(Dense(1)) model.compile(optimizer='adam', loss='mse') return model input_shape = (10, 1) # 假设输入形状为 (时间步数, 特征数量) model = build_lstm_model(input_shape) print(model.summary()) ``` 此代码片段展示了如何定义并编译一个基本的 LSTM 网络架构,适合初学者快速入门。 --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值