【第七章:时间序列模型】2.时间序列统计模型与神经网络模型-(3)神经网络预测时间序列模型: 从RNN,LSTM到nbeats模型

第七章:时间序列模型

第二部分:时间序列统计模型与神经网络模型

第三节:神经网络预测时间序列模型: 从RNN,LSTM到nbeats模型


时间序列预测是机器学习与深度学习领域中的核心任务之一。与传统的统计模型(如ARIMA)相比,神经网络模型 在非线性特征建模、复杂模式捕捉、长期依赖关系处理等方面表现更强大。本节将系统讲解神经网络时间序列预测模型的发展脉络------从最早的 RNN(循环神经网络) ,到应对梯度问题的 LSTM(长短期记忆网络) ,再到突破性地实现非循环结构的 N-BEATS(Neural basis expansion analysis for interpretable time series forecasting) 模型。


一、RNN:循环神经网络的起点

1. 基本思想

RNN(Recurrent Neural Network)是一类能够处理序列数据的神经网络。其核心思想是:

当前时刻的输出不仅取决于当前输入,还取决于之前时刻的隐含状态。

这使得RNN能够对"时间上下文"进行建模,非常适合用于时间序列、语音、文本等序列任务。

2. 网络结构

RNN 的核心是一个循环结构:

其中:

  • :当前输入;

  • :上一个时刻的隐藏状态;

  • f:激活函数(通常为tanh或ReLU)。

RNN在时间上"展开"后,本质是一个参数共享的深层网络。

3. 问题:梯度消失与梯度爆炸

RNN 虽然能捕捉时间依赖,但在长序列任务上常遇到梯度消失或爆炸问题,导致模型难以学习长期依赖关系。

这时,改进版本 LSTM 诞生。


二、LSTM:长短期记忆网络

1. 背景与动机

为了解决 RNN 的长期依赖问题,Hochreiter 和 Schmidhuber 于 1997 年提出了 LSTM。它通过引入门机制来控制信息的流动与遗忘。

2. LSTM的内部结构

LSTM引入了三个核心"门":

  • 遗忘门(Forget Gate):决定遗忘哪些信息;

  • 输入门(Input Gate):决定当前输入的哪些信息被保留;

  • 输出门(Output Gate):控制当前状态输出多少信息。

核心计算公式如下:

其中 表示单元状态(cell state),用于在长时间跨度上传递信息。

3. LSTM的优势

  • 能够捕捉长期依赖关系;

  • 在梯度反向传播中稳定;

  • 被广泛用于时间序列预测、语音识别、机器翻译等任务。

4. 变体

  • GRU(Gated Recurrent Unit):LSTM的轻量化版本,计算更高效;

  • Bi-LSTM:双向结构,更适合需要上下文信息的任务。


三、N-BEATS:非循环的深度时间序列预测模型

1. 背景与突破

尽管 RNN/LSTM 在时间序列上表现良好,但它们仍存在以下问题:

  • 训练速度慢;

  • 依赖顺序计算,难以并行;

  • 不易解释。

为此,Facebook Research 在 2020 年提出了 N-BEATS 模型 ,一种基于全连接层的前馈神经网络,完全摒弃了循环结构,却能在预测性能上超越传统 LSTM/ARIMA 等模型。


2. N-BEATS 模型结构

N-BEATS 的核心由多个 Block(块) 组成,每个 Block 包含:

  1. 全连接层(通常为4层);

  2. 一个基函数展开层

  3. 输出分为两部分:

    • backcast:重构输入序列;

    • forecast:预测未来值。

这种"逐层去噪"的结构,使模型逐步修正残差,提高预测精度。

其结构可用公式表示为:


3. 可解释性与扩展性

N-BEATS 的显著优点在于:

  • 无需特征工程:直接输入原始时间序列;

  • 强可解释性:可以通过基函数分解趋势、季节性;

  • 易于并行化:前馈结构加快训练速度;

  • 性能卓越:在M4、M5等时间序列竞赛中取得SOTA成绩。


四、模型对比与总结

模型 核心结构 优势 劣势 典型应用
RNN 循环结构 能建模时序依赖 容易梯度消失 短序列预测
LSTM 门控循环单元 捕捉长期依赖,稳定 计算复杂 股票预测、流量预测
N-BEATS 前馈网络 + 残差块 并行、可解释、强性能 需要较多训练数据 电力、零售、气象预测

五、代码实现思路(PyTorch示例)

python 复制代码
import torch
import torch.nn as nn

class NBeatsBlock(nn.Module):
    def __init__(self, input_size, hidden_size, theta_size):
        super().__init__()
        self.fc = nn.Sequential(
            nn.Linear(input_size, hidden_size),
            nn.ReLU(),
            nn.Linear(hidden_size, hidden_size),
            nn.ReLU(),
            nn.Linear(hidden_size, theta_size)
        )

    def forward(self, x):
        theta = self.fc(x)
        backcast = theta[:, :x.size(1)]
        forecast = theta[:, x.size(1):]
        return backcast, forecast

class NBeatsModel(nn.Module):
    def __init__(self, input_size, hidden_size, theta_size, num_blocks):
        super().__init__()
        self.blocks = nn.ModuleList([
            NBeatsBlock(input_size, hidden_size, theta_size) for _ in range(num_blocks)
        ])

    def forward(self, x):
        forecast = torch.zeros_like(x)
        for block in self.blocks:
            backcast, block_forecast = block(x)
            x = x - backcast
            forecast += block_forecast
        return forecast

六、结语

神经网络时间序列模型的发展,体现了从循环到非循环、从黑箱到可解释、从局部依赖到全局建模 的进化趋势。

在工业界应用中,LSTM 仍是稳定的选择,但 N-BEATS、Temporal Fusion Transformer(TFT)等新架构正逐步成为主流。

它们的共同目标是------

"让机器像人一样理解时间的节奏,并在未来的波动中看到趋势。"

相关推荐
:mnong1 小时前
辅助学习神经网络
人工智能·神经网络·学习
岁月的眸3 小时前
【基于循环神经网络(RNN/LSTM/GRU)算法做电池剩余寿命的思路和代码示例】
rnn·gru·lstm
2503_946971863 小时前
【BruteForce/Pruning】2026年度物理层暴力破解与神经网络剪枝基准索引 (Benchmark Index)
人工智能·神经网络·算法·数据集·剪枝·网络架构·系统运维
不惑_4 小时前
通俗理解经典CNN架构:VGGNet
人工智能·神经网络·cnn
叫我:松哥5 小时前
基于大数据和深度学习的智能空气质量监测与预测平台,采用Spark数据预处理,利用TensorFlow构建LSTM深度学习模型
大数据·python·深度学习·机器学习·spark·flask·lstm
生成论实验室19 小时前
生成论之基:“阴阳”作为元规则的重构与证成——基于《易经》与《道德经》的古典重诠与现代显象
人工智能·科技·神经网络·算法·架构
Java后端的Ai之路19 小时前
【人工智能领域】- 卷积神经网络(CNN)深度解析
人工智能·神经网络·cnn
Salt_072821 小时前
DAY 58 经典时序预测模型 1
人工智能·python·深度学习·神经网络·机器学习
Niuguangshuo1 天前
理解MCMC、Metropolis-Hastings和Gibbs采样:从随机游走到贝叶斯推断
人工智能·神经网络·机器学习
田里的水稻1 天前
E2E_基于端到端(E2E)的ViT神经网络模仿目标机械臂的示教动作一
人工智能·深度学习·神经网络