专栏名称: 机器学习初学者
号主黄博Github全球排名前90,3.6万Star!致力于为初学者提供学习路线和基础资料,公众号可以当作随身小抄,文章很全,建议收藏!点击菜单可以进入学习!
目录
相关文章推荐
英国大家谈  ·  视频号平台开放广告投放啦! ·  20 小时前  
英国大家谈  ·  视频号平台开放广告投放啦! ·  3 天前  
51好读  ›  专栏  ›  机器学习初学者

【深度学习】突破LSTM!时间序列预测 !!

机器学习初学者  · 公众号  ·  · 2024-11-15 12:00

正文

今儿再来和大家聊聊 LSTM的问题,原理给家理清楚后,后面讲解一个完整的时间序列案例: 用LSTM预测未来一周的天气变化

今天的内容包括以下几个大块:

1. 背景与原理 :LSTM(长短期记忆网络)如何捕捉时间序列数据的特征以及用于天气预测的基本原理。

2. 数据预处理和虚拟数据集生成 :准备一个合理的虚拟天气数据集,并进行数据处理。

3. LSTM模型构建与训练 :在PyTorch中构建LSTM模型,设置损失函数和优化器。

4. 预测与可视化分析 :用LSTM模型进行预测,并用图形展示结果和模型性能分析。

5. 模型优化与调参建议 :提出模型优化方向和详细调参流程。

接下来,我们来详细的拆解每一个步骤。

老规矩 如果 大家伙觉得近期文章还不错!欢迎大家 点个赞、转个发 ,文末赠送 《机器学习学习小册》

文末可取本文PDF版本~

1. 基本原理

简单来说,LSTM 是 RNN 的一种,它通过引入“记忆单元”来捕捉长时间的依赖关系,使其在处理长期依赖问题时非常有效。对于天气数据的预测,LSTM特别适用,因为天气数据是高度时序依赖的。

例如,某一天的温度和湿度可能会受到前几天数据的影响,这些“依赖关系”是LSTM所擅长捕捉的。

LSTM 用于解决普通RNN在处理长序列时常见的梯度消失和梯度爆炸问题。其核心特点是引入了“记忆单元”(cell state)和三个“门”机制(遗忘门、输入门、输出门)来控制信息的流动。

基本结构

LSTM单元的主要结构包括:

  • 记忆单元(Cell State) :用于存储长期的信息。记忆单元在时间上连接,不同时间步的数据可以选择性地被保留或丢弃,这使得LSTM可以“记住”长期的信息。
  • 隐藏状态(Hidden State) :与普通RNN的隐藏状态类似,用于存储短期信息,但在LSTM中,隐藏状态还依赖于记忆单元的状态。

三个“门”机制

LSTM中的三个门分别用于控制信息的“遗忘”“更新”和“输出”:

1. 遗忘门(Forget Gate)

决定上一个时间步的记忆信息 是否被遗忘。遗忘门是一个0到1之间的系数(通过激活函数sigmoid生成),控制哪些信息从记忆单元中移除,哪些保留下来。

数学公式:

其中:

  • 是遗忘门的输出(0到1之间)。
  • 是权重矩阵, 是偏置项。
  • 是上一个时间步的隐藏状态, 是当前时间步的输入。

2. 输入门(Input Gate)

决定当前输入信息是否写入记忆单元中,用于更新记忆内容。输入门同样通过sigmoid函数生成一个0到1的值,表示当前输入数据的重要性。

数学公式为:

  • 是输入门的输出(0到1之间)。
  • 是权重矩阵, 是偏置项。

同时,我们会计算一个候选记忆状态(Candidate Memory Cell),用于提取输入信息的主要特征,并将其加入到记忆单元中:

  • 是候选记忆状态,表示当前输入信息的特征。
  • 这里使用的是tanh激活函数,将数据压缩到-1到1之间。

3. 输出门(Output Gate)

决定当前记忆单元中的信息输出到隐藏状态的程度,用于产生当前时刻的隐藏状态 ,并将其传递给下一个时间步和最终输出层。

数学公式:

  • 是输出门的输出(0到1之间)。
  • 分别是权重矩阵和偏置项。

然后,将更新后的记忆单元状态与输出门的控制相结合,得到新的隐藏状态:

记忆单元更新

在以上三个门的作用下,记忆单元状态 会被不断更新。具体步骤如下:

  • 首先,先将上一个时间步的记忆单元状态 乘以遗忘门 ,从而决定哪些信息需要保留,哪些需要遗忘。
  • 然后,将输入门 和候选记忆状态 的乘积相加,这部分决定当前输入的信息能否被写入记忆单元。

数学公式:

  • 其中






请到「今天看啥」查看全文