数据科学和机器学习(第 26 部分):时间序列预测的终极之战 LSTM 对比 GRU 神经网络(基础篇)
「LSTM 与 GRU 在 MT5 预测里的定位」
做时间序列预测时,递归类神经网络绕不开两个名字:长-短期记忆(LSTM)和门控递归单元(GRU)。两者都能处理带时间依赖的行情序列,但在 MetaTrader 5 的 EA 环境里,结构复杂度和训练开销差别会直接影响回测节奏。 原文作者 Omega J Msigwa 在 2025 年 3 月 28 日发布的系列第 26 部分,截至发布日页面浏览量 1 409,说明这类模型对比在量化交易者中确有刚需。 对本小节而言,先建立认知即可:LSTM 靠遗忘门、输入门、输出门控制记忆流,GRU 用更新门和重置门把结构压得更薄。后续会在 MT5 中用同一父类派生两个子类做对照训练,外汇与贵金属品种波动具有高杠杆高风险,模型输出只作概率参考,不代表方向必现。
LSTM 为何能补上简单 RNN 的短板
长-短期记忆(LSTM)是一类面向序列任务设计的递归神经网络,核心能力是抓取并利用数据里的长期依赖。普通 RNN 在反向传播时梯度会随步数回退呈指数衰减,长序列下梯度小到无法驱动权重更新,这种现象叫梯度迷失,是它记不住长期形态的根因。 与之相对的是梯度膨胀:反向传播中梯度指数级放大,造成数值不稳定和大范围错误权重更新,虽比迷失少见,但足以让训练直接崩掉。两类问题叠加,令简单 RNN 训练慢、算力贵、超参敏感。 更本质的弱点是记忆容量有限,简单 RNN 难以建模复杂时间依赖;在需要跨多根 K 线理解上下文的任务里,它给出的信号往往滞后或失真。外汇与贵金属波动受宏观事件驱动,序列长依赖明显,这类模型直接上实盘属高风险,先用 MT5 做离线回测验证再谈。
◍ 拆开LSTM单元看六个门怎么算
想在MT5里用LSTM做价格序列预测,先得弄清一个单元内部到底跑了几道算式。它不是一个黑箱,而是六个依次作用的子结构,每个都带独立权重和偏置。 遗忘门把上一隐藏状态 h_{t-1} 和当前输入 x_t 送进 sigmoid,输出 f_t∈(0,1)。这个标量向量逐元素乘在旧单元状态 C_{t-1} 上:接近0就丢,接近1就留。它决定上一根K线带来的记忆有多少能活到这一步。 输入门 i_t 同样走 sigmoid,管“新信息进不进”;候选记忆 C~_t 走 tanh,把潜在更新压到[-1,1]。两者相乘后加到“已被遗忘门筛过的旧状态”上,得到新单元状态 C_t。这一步就是记忆的写操作。 输出门 o_t 再过一个 sigmoid,决定 C_t 的哪些维度对外可见;隐藏状态 h_t 等于 o_t 乘 tanh(C_t)。h_t 既是本步输出,也喂给下一步的遗忘门、输入门和输出门——所以序列依赖是靠 h 在时间点之间传的。 六个式子各自带一套权重 W 和偏置 b(原文称乖离),训练本质就是反向调这六组参数。外汇与贵金属杠杆高、跳空频繁,LSTM对这类非平稳序列过拟合倾向明显,实盘前务必在MT5用分时段样本交叉验证。
「GRU 与 LSTM 的取舍点」
门控递归单元(GRU)属于递归神经网络的一个分支,在部分场景下比长-短期记忆(LSTM)更实用。GRU 的记忆占用更少、运算更快,但当序列长度拉得较长时,LSTM 的精度通常更占优。 两者都是为缓解简单 RNN 的短期记忆短板而引入,核心手段是在单元内设置门控机制,以此保留长期依赖。 从数值计算角度看,简单 RNN 在反向传播时容易出现梯度迷失,GRU 和 LSTM 通过门结构缓解了这一问题。交易者在 MT5 里接 AIGC 序列模型时,可先拿短周期贵金属 1 分钟序列试 GRU,若样本窗口超过 500 根 K 线再切 LSTM 验证误差。外汇与贵金属杠杆高,模型仅作概率参考,实盘须控仓。
GRU 单元里两道门怎么算隐藏状态
GRU 把循环网络的记忆压缩进一个隐藏状态,靠更新门与重置门两套 sigmoid 门控决定信息流向。更新门输出 z_t 在 0~1 之间,值越接近 1,前一时刻隐藏状态 h_{t-1} 被保留的比例越高,新候选状态占比越低;它实质是在旧信息结转与新信息并入之间做连续加权,而不是硬切换。 重置门 r_t 同样过 sigmoid,用来决定 h_{t-1} 的哪些维度要在算候选激活前被清零。r_t 接近 0 时,模型倾向于忘掉对应历史通道,只让当前输入 x_t 驱动候选激活 h~_t,从而丢掉与当下无关的依赖。 候选激活 h~_t = tanh(W_h x_t + r_t ⊙ (U_h h_{t-1})),其中 ⊙ 是逐元素乘;重置门先把历史按维度屏蔽,再和输入线性组合后过 tanh 得到潜在新状态。最后 h_t = (1 - z_t) ⊙ h_{t-1} + z_t ⊙ h~_t,更新门直接对旧状态与候选状态做像素级插值。 在 MT5 里若用 ONNX 跑轻量 GRU 做贵金属波动过滤,可把隐藏维度设到 16~32 观察过拟合;外汇与贵金属杠杆品种波动跳变频繁,GRU 遗忘门若调钝,历史噪声会拖累信号,属高风险验证项。